ARM GAS /tmp/ccEimIdZ.s page 1
1 .cpu cortex-m7
2 .eabi_attribute 28, 1
3 .eabi_attribute 20, 1
4 .eabi_attribute 21, 1
5 .eabi_attribute 23, 3
6 .eabi_attribute 24, 1
7 .eabi_attribute 25, 1
8 .eabi_attribute 26, 1
9 .eabi_attribute 30, 1
10 .eabi_attribute 34, 1
11 .eabi_attribute 18, 4
12 .file "stm32h7xx_hal_i2c.c"
13 .text
14 .Ltext0:
15 .cfi_sections .debug_frame
16 .section .text.I2C_Flush_TXDR,"ax",%progbits
17 .align 1
18 .arch armv7e-m
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu fpv5-d16
24 I2C_Flush_TXDR:
25 .LVL0:
26 .LFB204:
27 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c"
1:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ******************************************************************************
3:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @file stm32h7xx_hal_i2c.c
4:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @author MCD Application Team
5:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver.
6:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
8:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Initialization and de-initialization functions
9:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + IO operation functions
10:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Peripheral State and Errors functions
11:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
12:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
13:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==============================================================================
14:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### How to use this driver #####
15:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==============================================================================
16:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
17:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
18:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
19:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
20:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
21:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
22:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the @ref HAL_I2C_MspInit() API:
23:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
24:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) I2C pins configuration
25:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
26:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
27:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
28:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
29:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
30:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
31:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive stream o
ARM GAS /tmp/ccEimIdZ.s page 2
32:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
33:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
34:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx stream or channel depends on Instance
35:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
36:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
37:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the DMA Tx or Rx stream or channel depends on Instance
38:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
39:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
40:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
41:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
42:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the @ref HAL_I2C_Init(), configures also the low le
43:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized @ref HAL_I2C_MspInit(&hi2c) API.
44:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
45:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function @ref HAL_I2C_IsDevic
46:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
47:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
48:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
49:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO operation ***
50:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =================================
51:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
52:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Tran
53:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Recei
54:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Transm
55:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Receive
56:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
57:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
58:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =====================================
59:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
60:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using @ref HAL_I2C_
61:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using @ref HAL_I2C
62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO operation ***
65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===================================
66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_
68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user
69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback(
70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_R
71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca
72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback(
73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Tr
74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user
75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback()
76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Rec
77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can
78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback()
79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
81:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I
82:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can
83:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback()
84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro.
85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
ARM GAS /tmp/ccEimIdZ.s page 3
89:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==========================================================
90:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** when a direction change during transfer
93:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
94:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
95:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Option field values are defined through @ref I2C_XFEROPTIONS and are listed below:
96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfa
97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and data to transfer without a final stop condition
99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and data to transfer without a final stop condition, an then permit a c
101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** several times (like @ref HAL_I2C_Master_Seq_Transmit_IT() then @ref HAL
102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or @ref HAL_I2C_Master_Seq_Transmit_DMA() then @ref HAL_I2C_Master_Seq_
103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re
110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** interface several times (link with option I2C_FIRST_AND_NEXT_FRAME).
111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one using HAL_I2C_Master_Seq_T
112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_AND_NEXT_FRAME then
113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_AND_NEXT_FRAME th
114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_AND_NEXT_FRAME the
115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit o
116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c
118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** interface.
119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_FRAME then I2C_OTHE
121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_FRAME then I2C_OT
122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_FRAME then I2C_OTH
123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to
124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Differents sequential I2C interfaces are listed below:
126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using @ref
127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Transmit_DMA()
128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_MasterTxCpltCallback() is e
129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback(
130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using @ref
131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Receive_DMA()
132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_MasterRxCpltCallback() is exec
133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback(
134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using @ref HAL_I2C_Mas
135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can
136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback()
137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using @ref HAL_I2C_EnableListen
138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) When address slave I2C match, @ref HAL_I2C_AddrCallback() is executed and user can
139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code to check the Address Match Code and the transmission direction request
140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At Listen mode end @ref HAL_I2C_ListenCpltCallback() is executed and user can
141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ListenCpltCallback()
142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using @ref
143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Transmit_DMA()
144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_SlaveTxCpltCallback() is ex
145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback()
ARM GAS /tmp/ccEimIdZ.s page 4
146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using @ref H
147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Receive_DMA()
148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_SlaveRxCpltCallback() is execu
149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback()
150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user ca
151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro.
153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =======================================
157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address
159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_IT()
160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca
161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback()
162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address
163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_IT()
164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can
165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback()
166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO operation ***
170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==============================
171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Master_Transmit_DMA()
174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user
175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback(
176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Master_Receive_DMA()
178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca
179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback(
180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Slave_Transmit_DMA()
182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user
183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback()
184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Slave_Receive_DMA()
186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can
187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback()
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I
191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can
192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback()
193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro.
194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =================================
198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_DMA()
201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca
202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback()
ARM GAS /tmp/ccEimIdZ.s page 5
203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_DMA()
205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can
206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback()
207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** I2C HAL driver macros list ***
212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ==================================
213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE: Enable the I2C peripheral
217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE: Disable the I2C peripheral
218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Callback registration ***
225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================
226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use Functions @ref HAL_I2C_RegisterCallback() or @ref HAL_I2C_RegisterAddrCallback()
230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to register an interrupt callback.
231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Function @ref HAL_I2C_RegisterCallback() allows to register following callbacks:
233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and a pointer to the user callback function.
246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_RegisterAdd
248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use function @ref HAL_I2C_UnRegisterCallback to reset a callback to the default
250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** weak function.
251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the Callback ID.
253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function allows to reset following callbacks:
254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
ARM GAS /tmp/ccEimIdZ.s page 6
260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_UnRegisterAddrCallba
267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** By default, after the @ref HAL_I2C_Init() and when the state is @ref HAL_I2C_STATE_RESET
269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** examples @ref HAL_I2C_MasterTxCpltCallback(), @ref HAL_I2C_MasterRxCpltCallback().
271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** reset to the legacy weak functions in the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit() only when
273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit()
275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Callbacks can be registered/unregistered in @ref HAL_I2C_STATE_READY state only.
278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** in @ref HAL_I2C_STATE_READY or @ref HAL_I2C_STATE_RESET state,
280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using @ref HAL_I2C_RegisterCallback() before calling @ref HAL_I2C_DeInit()
283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or @ref HAL_I2C_Init() function.
284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** are set to the corresponding weak functions.
288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ******************************************************************************
294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @attention
295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
© Copyright (c) 2017 STMicroelectronics.
297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * All rights reserved.
298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This software component is licensed by ST under BSD 3-Clause license,
300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the "License"; You may not use this file except in compliance with the
301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * License. You may obtain a copy of the License at:
302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * opensource.org/licenses/BSD-3-Clause
303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ******************************************************************************
305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #include "stm32h7xx_hal.h"
309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup STM32H7xx_HAL_Driver
311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C I2C
315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver
316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
ARM GAS /tmp/ccEimIdZ.s page 7
317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SlaveAddr_SHIFT 7U
340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SlaveAddr_MSK 0x06U
341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | (uint32_
344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (
346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (
347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (
348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (
349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (
350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (
351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /* Bit field can be combinated with @ref I2C_
355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /* Bit field can be combinated with @ref I2C_
356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /* Bit field can be combinated with @ref I2C_
357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /* Bit definition to manage addition of globa
359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /* Bit definition to manage only STOP eveneme
360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /* Bit definition to manage only Reload of NB
361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/
369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
ARM GAS /tmp/ccEimIdZ.s page 8
374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */
384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */
393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1
394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16
395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3
399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin
400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_
408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to treat different error callback */
414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c);
415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to flush TXDR register */
417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to Convert Specific options */
423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
ARM GAS /tmp/ccEimIdZ.s page 9
431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialization and Configuration functions
436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the selected configuration:
449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Clock Timing
450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 1
451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Dual Addressing mode
453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2
454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2 Mask
455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) General call mode
456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Nostretch mode
457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** of the selected I2Cx peripheral.
460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL)
476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
ARM GAS /tmp/ccEimIdZ.s page 10
488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the I2C Callback settings */
497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
ARM GAS /tmp/ccEimIdZ.s page 11
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10);
549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddr
559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL)
585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 12
602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register a User I2C Callback
656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak predefined callback
657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
ARM GAS /tmp/ccEimIdZ.s page 13
659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL)
680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
ARM GAS /tmp/ccEimIdZ.s page 14
716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
ARM GAS /tmp/ccEimIdZ.s page 15
773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */
777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Unregister an I2C Callback
783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
ARM GAS /tmp/ccEimIdZ.s page 16
830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID)
869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default :
879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break;
885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 17
887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */
897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL)
914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */
937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
ARM GAS /tmp/ccEimIdZ.s page 18
944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */
962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */
965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR;
966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */
969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status;
971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Data transfers functions
981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### IO operation functions #####
985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfers.
989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) There are two modes of transfer:
991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The status of all data processing is returned by the same function
993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** after finishing transfer.
994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The end of the data processing will be indicated through the
997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using DMA mode.
999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Blocking mode functions are :
ARM GAS /tmp/ccEimIdZ.s page 19
1001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
1002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
1003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
1004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
1005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
1006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
1007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
1008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
1010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
1011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
1012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
1013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
1014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
1015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
1016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
1017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
1018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
1019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
1020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
1021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
1022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
1023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
1025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
1026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
1027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
1028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
1029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
1030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
1031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
1032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
1033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
1034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
1035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
1037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
1038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
1039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
1040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
1041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
1042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
1043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
1044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
1045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
1046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
1047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
1049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
1050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
1054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/ccEimIdZ.s page 20
1058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 21
1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/ccEimIdZ.s page 22
1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
ARM GAS /tmp/ccEimIdZ.s page 23
1229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
ARM GAS /tmp/ccEimIdZ.s page 24
1286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui
1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
1332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
ARM GAS /tmp/ccEimIdZ.s page 25
1343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
1347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */
1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Normal use case for Transmitter mode */
1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */
1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */
1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 26
1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */
ARM GAS /tmp/ccEimIdZ.s page 27
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */
1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 28
1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */
1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 29
1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT
1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 30
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
ARM GAS /tmp/ccEimIdZ.s page 31
1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 32
1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
1770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
1781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS /tmp/ccEimIdZ.s page 33
1799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
1828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
1831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
1834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
1841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 34
1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
1865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
1877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
1899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
1910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 35
1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
1929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
1931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
1932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 36
1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
1971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
1984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
1986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
1998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 37
2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
2067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size
2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 38
2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
2102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
ARM GAS /tmp/ccEimIdZ.s page 39
2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
ARM GAS /tmp/ccEimIdZ.s page 40
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
2205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
ARM GAS /tmp/ccEimIdZ.s page 41
2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS /tmp/ccEimIdZ.s page 42
2312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
2367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS /tmp/ccEimIdZ.s page 43
2369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U);
2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
2407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
ARM GAS /tmp/ccEimIdZ.s page 44
2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
2472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
2475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */
2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
ARM GAS /tmp/ccEimIdZ.s page 45
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
2484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST
2503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U);
2512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
ARM GAS /tmp/ccEimIdZ.s page 46
2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres
2541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
ARM GAS /tmp/ccEimIdZ.s page 47
2597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
2609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre
2632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd
2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 48
2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX
ARM GAS /tmp/ccEimIdZ.s page 49
2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address
2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
2730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
ARM GAS /tmp/ccEimIdZ.s page 50
2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
2794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
2804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
ARM GAS /tmp/ccEimIdZ.s page 51
2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address.
2866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
2868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
2873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be read
2874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
2876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 52
2882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
2927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
ARM GAS /tmp/ccEimIdZ.s page 53
2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE
2967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
2977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/ccEimIdZ.s page 54
2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
2999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This function is used with Memory devices
3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Trials Number of trials
3014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
3015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
3022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp1;
3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2;
3025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do
3040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Start */
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick();
3047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
3052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 55
3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
3056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
3076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Device is ready */
3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
3106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */
ARM GAS /tmp/ccEimIdZ.s page 56
3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_Trials == Trials)
3111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Trials */
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Trials++;
3127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (I2C_Trials < Trials);
3129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte
3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 57
3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
ARM GAS /tmp/ccEimIdZ.s page 58
3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA.
3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
ARM GAS /tmp/ccEimIdZ.s page 59
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
ARM GAS /tmp/ccEimIdZ.s page 60
3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
3372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter
ARM GAS /tmp/ccEimIdZ.s page 61
3395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
ARM GAS /tmp/ccEimIdZ.s page 62
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA
3479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
ARM GAS /tmp/ccEimIdZ.s page 63
3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene
3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST
3528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 64
3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */
3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
3618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
ARM GAS /tmp/ccEimIdZ.s page 65
3623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */
3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_
3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 66
3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
3711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
3725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
ARM GAS /tmp/ccEimIdZ.s page 67
3737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
3793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 68
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
3807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
3810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
ARM GAS /tmp/ccEimIdZ.s page 69
3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */
3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0;
3870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
3872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
3887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
3904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS /tmp/ccEimIdZ.s page 70
3908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
3914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
3918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
3919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
3922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
3934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
ARM GAS /tmp/ccEimIdZ.s page 71
3965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT)
3985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
3987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
3999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer
4014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent
4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 72
4022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
4026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */
4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 73
4079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */
4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
4114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 74
4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0;
4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */
4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */
4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT)
4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
4189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS /tmp/ccEimIdZ.s page 75
4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the Address Match interrupt */
4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C
4215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp;
4221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
4224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
4230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the Address Match interrupt */
4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY;
4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt.
4244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
4247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS /tmp/ccEimIdZ.s page 76
4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
4259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
4262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe
4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */
4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong usage of abort function */
4293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
4303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
ARM GAS /tmp/ccEimIdZ.s page 77
4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
4320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E
4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
4341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */
4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ER
4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
4350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */
4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
4353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E
4357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */
4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
4362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 78
4364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
4366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_
4369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
4407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
4418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 79
4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Address Match callback.
4439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection);
4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode);
4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Listen Complete callback.
4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
4470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
4475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
ARM GAS /tmp/ccEimIdZ.s page 80
4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
4502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C error callback.
4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
4518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C abort callback.
4523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
4526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c);
4531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
4534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
ARM GAS /tmp/ccEimIdZ.s page 81
4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
4542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
4543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *
4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim
4545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===============================================================================
4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..]
4549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the data flow.
4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim
4553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C handle state.
4558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL state
4561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c)
4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */
4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->State;
4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for I2C module
4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL mode
4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c)
4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode;
4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C error code.
4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval I2C Error Code
4584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c)
4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode;
4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
ARM GAS /tmp/ccEimIdZ.s page 82
4592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @}
4596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
4599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{
4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_
4619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
4624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
ARM GAS /tmp/ccEimIdZ.s page 83
4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
4652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I
4657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
4659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
4661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, hi2c->XferOptions, I2C_NO_S
4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
4677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
4691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2
4697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
4704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
ARM GAS /tmp/ccEimIdZ.s page 84
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
4707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
4718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_
4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
4731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3
4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */
4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_
4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */
4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
4760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_
ARM GAS /tmp/ccEimIdZ.s page 85
4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
4766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/
4767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* Sam
4771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
4774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
4776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
4784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
4796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
4803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
4812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
ARM GAS /tmp/ccEimIdZ.s page 86
4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
4825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
4833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources,
4835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
4837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if all Datas have already been sent */
4839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */
4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
4841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
4844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
4847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
4874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
4876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
ARM GAS /tmp/ccEimIdZ.s page 87
4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
4879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin
4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
4884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC
4889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */
4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
4898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_
4905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC interrupt */
4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
4908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
4910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Recover Slave address */
4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
4913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
4926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
ARM GAS /tmp/ccEimIdZ.s page 88
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */
4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */
4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
4947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_I
4966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
4973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 89
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2
4992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
5009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint
5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */
5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_
5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
5029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC
5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */
5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
5035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */
5036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
5044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U)
5046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U;
ARM GAS /tmp/ccEimIdZ.s page 90
5048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U)
5058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U;
5060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (treatdmanack == 1U)
5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* S
5067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
5070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
5072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
5092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpstate = hi2c->State;
5100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
5104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 91
5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN
5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C
5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
5130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/ccEimIdZ.s page 92
5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
5197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
5199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address
5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
5204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16
5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
5210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
ARM GAS /tmp/ccEimIdZ.s page 93
5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */
5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */
5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TC flag is set */
5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Address complete process callback.
5250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode;
5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code;
5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code;
5260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(ITFlags);
5263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
5271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
5274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((slaveaddrcode & SlaveAddr_MSK) == ((ownadd1code >> SlaveAddr_SHIFT) & SlaveAddr_MSK))
ARM GAS /tmp/ccEimIdZ.s page 94
5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++;
5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
5280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Address Event counter */
5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
5283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
5301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
5317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */
5326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 95
5333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Else clear address flag only */
5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */
5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
5373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
5376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
ARM GAS /tmp/ccEimIdZ.s page 96
5390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
5393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
5446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 97
5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
5460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master complete process.
5472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg;
5481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
5484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
5503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 98
5504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
5509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set acknowledge error code */
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Fetch Last receive data if any */
5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET))
5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
5523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
5530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
5555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 99
5561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
5569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
5579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
5604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave complete process.
5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
ARM GAS /tmp/ccEimIdZ.s page 100
5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
5624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
5627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
5646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmatx);
5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
5668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmarx);
5672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
ARM GAS /tmp/ccEimIdZ.s page 101
5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
5684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
5709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
5715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */
5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Tranfer */
5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 102
5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
5751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
5768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Listen complete process.
5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
ARM GAS /tmp/ccEimIdZ.s page 103
5789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++;
5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
5797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all Interrupts*/
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
5808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */
5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C interrupts error process.
5825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
5827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate;
5833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set new error code */
5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */
5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
5845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
ARM GAS /tmp/ccEimIdZ.s page 104
5846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts */
5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
5858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If state is an abort treatment on goind, don't change state */
5860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This change will be do later */
5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || (tmppreviousstat
5872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
5874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
5879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */
5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
5889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || (tmppreviou
5901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
ARM GAS /tmp/ccEimIdZ.s page 105
5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
5912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */
5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
5921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
5931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Error callback treatment.
5936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 106
5960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else
5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
5968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
5974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
5975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
28 .loc 1 5978 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 0
31 @ frame_needed = 0, uses_anonymous_args = 0
32 @ link register save eliminated.
5979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a pending TXIS flag is set */
5980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
33 .loc 1 5981 3 view .LVU1
34 .loc 1 5981 7 is_stmt 0 view .LVU2
35 0000 0368 ldr r3, [r0]
36 0002 9A69 ldr r2, [r3, #24]
37 .loc 1 5981 6 view .LVU3
38 0004 12F0020F tst r2, #2
39 0008 01D0 beq .L2
5982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
40 .loc 1 5983 5 is_stmt 1 view .LVU4
41 .loc 1 5983 26 is_stmt 0 view .LVU5
42 000a 0022 movs r2, #0
43 000c 9A62 str r2, [r3, #40]
44 .L2:
5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register if not empty */
5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
45 .loc 1 5987 3 is_stmt 1 view .LVU6
46 .loc 1 5987 7 is_stmt 0 view .LVU7
47 000e 0368 ldr r3, [r0]
48 0010 9A69 ldr r2, [r3, #24]
49 .loc 1 5987 6 view .LVU8
50 0012 12F0010F tst r2, #1
51 0016 03D1 bne .L1
5988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
52 .loc 1 5989 5 is_stmt 1 view .LVU9
53 0018 9A69 ldr r2, [r3, #24]
54 001a 42F00102 orr r2, r2, #1
ARM GAS /tmp/ccEimIdZ.s page 107
55 001e 9A61 str r2, [r3, #24]
56 .L1:
5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
57 .loc 1 5991 1 is_stmt 0 view .LVU10
58 0020 7047 bx lr
59 .cfi_endproc
60 .LFE204:
62 .section .text.I2C_TransferConfig,"ax",%progbits
63 .align 1
64 .syntax unified
65 .thumb
66 .thumb_func
67 .fpu fpv5-d16
69 I2C_TransferConfig:
70 .LVL1:
71 .LFB216:
5992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
5995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
5998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */
6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */
6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */
6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, h
6029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
ARM GAS /tmp/ccEimIdZ.s page 108
6032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
6052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */
6057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */
6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 109
6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, h
6104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) && \
6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
6128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle
ARM GAS /tmp/ccEimIdZ.s page 110
6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U)
6156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U;
6158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U)
6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U;
6166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a FIFO error is detected, if true normal use case, so no specific action to perform *
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (!((HAL_DMA_GetError(hdma) == HAL_DMA_ERROR_FE)) && (treatdmaerror != 0U))
6171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Acknowledge */
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle.
6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset AbortCpltCallback */
6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 111
6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout.
6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
6208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET).
6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
6211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
6237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
6240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
6241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a NACK is detected */
6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
ARM GAS /tmp/ccEimIdZ.s page 112
6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
6277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
6283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a NACK is detected */
6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
6312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
ARM GAS /tmp/ccEimIdZ.s page 113
6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a NACK is detected */
6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */
6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
6326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an RXNE is pending */
6328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return HAL_OK */
6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
6334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication.
6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration
ARM GAS /tmp/ccEimIdZ.s page 114
6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value
6375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status
6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_
6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
6380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP Flag is reset */
6382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */
6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACKF Flag */
6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */
6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */
6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK;
6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
6430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
ARM GAS /tmp/ccEimIdZ.s page 115
6431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
6432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
6435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
6437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values:
6439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
6442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
6443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
72 .loc 1 6446 1 is_stmt 1 view -0
73 .cfi_startproc
74 @ args = 4, pretend = 0, frame = 0
75 @ frame_needed = 0, uses_anonymous_args = 0
76 @ link register save eliminated.
77 .loc 1 6446 1 is_stmt 0 view .LVU12
78 0000 30B4 push {r4, r5}
79 .LCFI0:
80 .cfi_def_cfa_offset 8
81 .cfi_offset 4, -8
82 .cfi_offset 5, -4
83 0002 029D ldr r5, [sp, #8]
6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
6448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
84 .loc 1 6448 3 is_stmt 1 view .LVU13
6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
85 .loc 1 6449 3 view .LVU14
6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
86 .loc 1 6450 3 view .LVU15
6451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* update CR2 register */
6453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEN
87 .loc 1 6453 3 view .LVU16
88 0004 0468 ldr r4, [r0]
89 0006 6068 ldr r0, [r4, #4]
90 .LVL2:
91 .loc 1 6453 3 is_stmt 0 view .LVU17
92 0008 4FEA555C lsr ip, r5, #21
93 000c 0CF4806C and ip, ip, #1024
94 0010 4CF07F7C orr ip, ip, #66846720
95 0014 4CF4583C orr ip, ip, #221184
96 0018 4CF47F7C orr ip, ip, #1020
97 001c 4CF0030C orr ip, ip, #3
98 0020 20EA0C00 bic r0, r0, ip
99 0024 C1F30901 ubfx r1, r1, #0, #10
100 .LVL3:
101 .loc 1 6453 3 view .LVU18
102 0028 41EA0241 orr r1, r1, r2, lsl #16
103 002c 1943 orrs r1, r1, r3
104 002e 2943 orrs r1, r1, r5
105 0030 0143 orrs r1, r1, r0
ARM GAS /tmp/ccEimIdZ.s page 116
106 0032 6160 str r1, [r4, #4]
6454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_
6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
107 .loc 1 6455 1 view .LVU19
108 0034 30BC pop {r4, r5}
109 .LCFI1:
110 .cfi_restore 5
111 .cfi_restore 4
112 .cfi_def_cfa_offset 0
113 .LVL4:
114 .loc 1 6455 1 view .LVU20
115 0036 7047 bx lr
116 .cfi_endproc
117 .LFE216:
119 .section .text.I2C_Enable_IRQ,"ax",%progbits
120 .align 1
121 .syntax unified
122 .thumb
123 .thumb_func
124 .fpu fpv5-d16
126 I2C_Enable_IRQ:
127 .LVL5:
128 .LFB217:
6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
6462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
129 .loc 1 6465 1 is_stmt 1 view -0
130 .cfi_startproc
131 @ args = 0, pretend = 0, frame = 0
132 @ frame_needed = 0, uses_anonymous_args = 0
133 @ link register save eliminated.
6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U;
134 .loc 1 6466 3 view .LVU22
6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \
135 .loc 1 6468 3 view .LVU23
136 .loc 1 6468 12 is_stmt 0 view .LVU24
137 0000 436B ldr r3, [r0, #52]
138 .loc 1 6468 6 view .LVU25
139 0002 1A4A ldr r2, .L21
140 0004 9342 cmp r3, r2
141 0006 15D0 beq .L7
142 .loc 1 6468 45 discriminator 1 view .LVU26
143 0008 194A ldr r2, .L21+4
144 000a 9342 cmp r3, r2
145 000c 12D0 beq .L7
6469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
6472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 117
6473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
6478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
6490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
146 .loc 1 6497 5 is_stmt 1 view .LVU27
147 .loc 1 6497 8 is_stmt 0 view .LVU28
148 000e 11F4004F tst r1, #32768
149 0012 29D1 bne .L17
6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
150 .loc 1 6466 12 view .LVU29
151 0014 0023 movs r3, #0
152 .L13:
153 .LVL6:
6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */
6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
154 .loc 1 6503 5 is_stmt 1 view .LVU30
155 .loc 1 6503 8 is_stmt 0 view .LVU31
156 0016 11F0010F tst r1, #1
157 001a 01D0 beq .L14
6504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
6506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
158 .loc 1 6506 7 is_stmt 1 view .LVU32
159 .loc 1 6506 14 is_stmt 0 view .LVU33
160 001c 43F0F203 orr r3, r3, #242
161 .LVL7:
162 .L14:
6507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
163 .loc 1 6509 5 is_stmt 1 view .LVU34
164 .loc 1 6509 8 is_stmt 0 view .LVU35
ARM GAS /tmp/ccEimIdZ.s page 118
165 0020 11F0020F tst r1, #2
166 0024 01D0 beq .L15
6510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
6512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
167 .loc 1 6512 7 is_stmt 1 view .LVU36
168 .loc 1 6512 14 is_stmt 0 view .LVU37
169 0026 43F0F403 orr r3, r3, #244
170 .LVL8:
171 .L15:
6513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
172 .loc 1 6515 5 is_stmt 1 view .LVU38
173 .loc 1 6515 8 is_stmt 0 view .LVU39
174 002a 2029 cmp r1, #32
175 002c 0CD1 bne .L12
6516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
6518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
176 .loc 1 6518 7 is_stmt 1 view .LVU40
177 .loc 1 6518 14 is_stmt 0 view .LVU41
178 002e 43F02003 orr r3, r3, #32
179 .LVL9:
180 .loc 1 6518 14 view .LVU42
181 0032 09E0 b .L12
182 .LVL10:
183 .L7:
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
184 .loc 1 6471 5 is_stmt 1 view .LVU43
6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
185 .loc 1 6471 8 is_stmt 0 view .LVU44
186 0034 11F4004F tst r1, #32768
187 0038 0BD1 bne .L16
6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
188 .loc 1 6466 12 view .LVU45
189 003a 0023 movs r3, #0
190 .L9:
191 .LVL11:
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
192 .loc 1 6477 5 is_stmt 1 view .LVU46
6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
193 .loc 1 6477 8 is_stmt 0 view .LVU47
194 003c 1029 cmp r1, #16
195 003e 0AD0 beq .L18
196 .L10:
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
197 .loc 1 6483 5 is_stmt 1 view .LVU48
6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
198 .loc 1 6483 8 is_stmt 0 view .LVU49
199 0040 2029 cmp r1, #32
200 0042 0BD0 beq .L19
201 .L11:
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
202 .loc 1 6489 5 is_stmt 1 view .LVU50
6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
203 .loc 1 6489 8 is_stmt 0 view .LVU51
ARM GAS /tmp/ccEimIdZ.s page 119
204 0044 4029 cmp r1, #64
205 0046 0CD0 beq .L20
206 .L12:
6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable interrupts only at the end */
6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all interrupts requested done */
6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
207 .loc 1 6525 3 is_stmt 1 view .LVU52
208 0048 0168 ldr r1, [r0]
209 .LVL12:
210 .loc 1 6525 3 is_stmt 0 view .LVU53
211 004a 0A68 ldr r2, [r1]
212 004c 1343 orrs r3, r3, r2
213 .LVL13:
214 .loc 1 6525 3 view .LVU54
215 004e 0B60 str r3, [r1]
6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
216 .loc 1 6526 1 view .LVU55
217 0050 7047 bx lr
218 .LVL14:
219 .L16:
6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
220 .loc 1 6474 14 view .LVU56
221 0052 B823 movs r3, #184
222 0054 F2E7 b .L9
223 .LVL15:
224 .L18:
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
225 .loc 1 6480 7 is_stmt 1 view .LVU57
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
226 .loc 1 6480 14 is_stmt 0 view .LVU58
227 0056 43F09003 orr r3, r3, #144
228 .LVL16:
6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
229 .loc 1 6480 14 view .LVU59
230 005a F1E7 b .L10
231 .L19:
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
232 .loc 1 6486 7 is_stmt 1 view .LVU60
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
233 .loc 1 6486 14 is_stmt 0 view .LVU61
234 005c 43F06003 orr r3, r3, #96
235 .LVL17:
6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
236 .loc 1 6486 14 view .LVU62
237 0060 F0E7 b .L11
238 .L20:
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
239 .loc 1 6492 7 is_stmt 1 view .LVU63
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
240 .loc 1 6492 14 is_stmt 0 view .LVU64
241 0062 43F04003 orr r3, r3, #64
242 .LVL18:
6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 120
243 .loc 1 6492 14 view .LVU65
244 0066 EFE7 b .L12
245 .LVL19:
246 .L17:
6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
247 .loc 1 6500 14 view .LVU66
248 0068 B823 movs r3, #184
249 006a D4E7 b .L13
250 .L22:
251 .align 2
252 .L21:
253 006c 00000000 .word I2C_Master_ISR_DMA
254 0070 00000000 .word I2C_Slave_ISR_DMA
255 .cfi_endproc
256 .LFE217:
258 .section .text.I2C_Disable_IRQ,"ax",%progbits
259 .align 1
260 .syntax unified
261 .thumb
262 .thumb_func
263 .fpu fpv5-d16
265 I2C_Disable_IRQ:
266 .LVL20:
267 .LFB218:
6527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
6530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C.
6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
6533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
268 .loc 1 6536 1 is_stmt 1 view -0
269 .cfi_startproc
270 @ args = 0, pretend = 0, frame = 0
271 @ frame_needed = 0, uses_anonymous_args = 0
272 @ link register save eliminated.
6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U;
273 .loc 1 6537 3 view .LVU68
6538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
274 .loc 1 6539 3 view .LVU69
275 .loc 1 6539 6 is_stmt 0 view .LVU70
276 0000 11F0010F tst r1, #1
277 0004 09D0 beq .L30
6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
278 .loc 1 6542 5 is_stmt 1 view .LVU71
279 .LVL21:
6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
280 .loc 1 6544 5 view .LVU72
281 .loc 1 6544 24 is_stmt 0 view .LVU73
282 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
ARM GAS /tmp/ccEimIdZ.s page 121
283 .loc 1 6544 8 view .LVU74
284 000a 03F02803 and r3, r3, #40
285 000e 282B cmp r3, #40
286 0010 01D0 beq .L33
6545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
287 .loc 1 6547 14 view .LVU75
288 0012 F223 movs r3, #242
289 0014 02E0 b .L24
290 .L33:
6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
291 .loc 1 6542 12 view .LVU76
292 0016 4223 movs r3, #66
293 0018 00E0 b .L24
294 .LVL22:
295 .L30:
6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
296 .loc 1 6537 12 view .LVU77
297 001a 0023 movs r3, #0
298 .LVL23:
299 .L24:
6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
300 .loc 1 6551 3 is_stmt 1 view .LVU78
301 .loc 1 6551 6 is_stmt 0 view .LVU79
302 001c 11F0020F tst r1, #2
303 0020 09D0 beq .L25
6552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
304 .loc 1 6554 5 is_stmt 1 view .LVU80
305 .loc 1 6554 12 is_stmt 0 view .LVU81
306 0022 43F0440C orr ip, r3, #68
307 .LVL24:
6555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
308 .loc 1 6556 5 is_stmt 1 view .LVU82
309 .loc 1 6556 24 is_stmt 0 view .LVU83
310 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
311 .loc 1 6556 8 view .LVU84
312 002a 02F02802 and r2, r2, #40
313 002e 282A cmp r2, #40
314 0030 10D0 beq .L32
6557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
315 .loc 1 6559 7 is_stmt 1 view .LVU85
316 .loc 1 6559 14 is_stmt 0 view .LVU86
317 0032 43F0F403 orr r3, r3, #244
318 .LVL25:
319 .L25:
6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 122
6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
320 .loc 1 6563 3 is_stmt 1 view .LVU87
321 .loc 1 6563 6 is_stmt 0 view .LVU88
322 0036 11F4004F tst r1, #32768
323 003a 0DD1 bne .L34
324 .L26:
6564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
325 .loc 1 6569 3 is_stmt 1 view .LVU89
326 .loc 1 6569 6 is_stmt 0 view .LVU90
327 003c 1029 cmp r1, #16
328 003e 0ED0 beq .L35
329 .L27:
6570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
330 .loc 1 6575 3 is_stmt 1 view .LVU91
331 .loc 1 6575 6 is_stmt 0 view .LVU92
332 0040 2029 cmp r1, #32
333 0042 0FD0 beq .L36
334 .L28:
6576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
335 .loc 1 6581 3 is_stmt 1 view .LVU93
336 .loc 1 6581 6 is_stmt 0 view .LVU94
337 0044 4029 cmp r1, #64
338 0046 10D0 beq .L37
339 .L29:
6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */
6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable interrupts only at the end */
6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
6589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all disable interrupts request are not done */
6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
340 .loc 1 6590 3 is_stmt 1 view .LVU95
341 0048 0168 ldr r1, [r0]
342 .LVL26:
343 .loc 1 6590 3 is_stmt 0 view .LVU96
344 004a 0A68 ldr r2, [r1]
345 004c 22EA0303 bic r3, r2, r3
346 .LVL27:
347 .loc 1 6590 3 view .LVU97
348 0050 0B60 str r3, [r1]
ARM GAS /tmp/ccEimIdZ.s page 123
6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
349 .loc 1 6591 1 view .LVU98
350 0052 7047 bx lr
351 .LVL28:
352 .L32:
6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
353 .loc 1 6554 12 view .LVU99
354 0054 6346 mov r3, ip
355 0056 EEE7 b .L25
356 .LVL29:
357 .L34:
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
358 .loc 1 6566 5 is_stmt 1 view .LVU100
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
359 .loc 1 6566 12 is_stmt 0 view .LVU101
360 0058 43F0B803 orr r3, r3, #184
361 .LVL30:
6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
362 .loc 1 6566 12 view .LVU102
363 005c EEE7 b .L26
364 .L35:
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
365 .loc 1 6572 5 is_stmt 1 view .LVU103
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
366 .loc 1 6572 12 is_stmt 0 view .LVU104
367 005e 43F09003 orr r3, r3, #144
368 .LVL31:
6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
369 .loc 1 6572 12 view .LVU105
370 0062 EDE7 b .L27
371 .L36:
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
372 .loc 1 6578 5 is_stmt 1 view .LVU106
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
373 .loc 1 6578 12 is_stmt 0 view .LVU107
374 0064 43F02003 orr r3, r3, #32
375 .LVL32:
6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
376 .loc 1 6578 12 view .LVU108
377 0068 ECE7 b .L28
378 .L37:
6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
379 .loc 1 6584 5 is_stmt 1 view .LVU109
6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
380 .loc 1 6584 12 is_stmt 0 view .LVU110
381 006a 43F04003 orr r3, r3, #64
382 .LVL33:
6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
383 .loc 1 6584 12 view .LVU111
384 006e EBE7 b .L29
385 .cfi_endproc
386 .LFE218:
388 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
389 .align 1
390 .syntax unified
391 .thumb
392 .thumb_func
ARM GAS /tmp/ccEimIdZ.s page 124
393 .fpu fpv5-d16
395 I2C_ConvertOtherXferOptions:
396 .LVL34:
397 .LFB219:
6592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functionnal XferOptions.
6595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle.
6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None
6597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */
6598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
398 .loc 1 6599 1 is_stmt 1 view -0
399 .cfi_startproc
400 @ args = 0, pretend = 0, frame = 0
401 @ frame_needed = 0, uses_anonymous_args = 0
402 @ link register save eliminated.
6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
6601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
403 .loc 1 6603 3 view .LVU113
404 .loc 1 6603 11 is_stmt 0 view .LVU114
405 0000 C36A ldr r3, [r0, #44]
406 .loc 1 6603 6 view .LVU115
407 0002 AA2B cmp r3, #170
408 0004 04D0 beq .L41
6604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
6608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
6610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
6611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
409 .loc 1 6611 8 is_stmt 1 view .LVU116
410 .loc 1 6611 16 is_stmt 0 view .LVU117
411 0006 C36A ldr r3, [r0, #44]
412 .loc 1 6611 11 view .LVU118
413 0008 B3F52A4F cmp r3, #43520
414 000c 03D0 beq .L42
415 .L38:
6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else
6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
416 .loc 1 6619 1 view .LVU119
417 000e 7047 bx lr
418 .L41:
6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
419 .loc 1 6605 5 is_stmt 1 view .LVU120
6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
420 .loc 1 6605 23 is_stmt 0 view .LVU121
ARM GAS /tmp/ccEimIdZ.s page 125
421 0010 0023 movs r3, #0
422 0012 C362 str r3, [r0, #44]
423 0014 7047 bx lr
424 .L42:
6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
425 .loc 1 6613 5 is_stmt 1 view .LVU122
6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
426 .loc 1 6613 23 is_stmt 0 view .LVU123
427 0016 4FF00073 mov r3, #33554432
428 001a C362 str r3, [r0, #44]
6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
429 .loc 1 6618 3 is_stmt 1 view .LVU124
430 .loc 1 6619 1 is_stmt 0 view .LVU125
431 001c F7E7 b .L38
432 .cfi_endproc
433 .LFE219:
435 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits
436 .align 1
437 .syntax unified
438 .thumb
439 .thumb_func
440 .fpu fpv5-d16
442 I2C_IsAcknowledgeFailed:
443 .LVL35:
444 .LFB215:
6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
445 .loc 1 6378 1 is_stmt 1 view -0
446 .cfi_startproc
447 @ args = 0, pretend = 0, frame = 0
448 @ frame_needed = 0, uses_anonymous_args = 0
6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
449 .loc 1 6378 1 is_stmt 0 view .LVU127
450 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
451 .LCFI2:
452 .cfi_def_cfa_offset 24
453 .cfi_offset 3, -24
454 .cfi_offset 4, -20
455 .cfi_offset 5, -16
456 .cfi_offset 6, -12
457 .cfi_offset 7, -8
458 .cfi_offset 14, -4
459 0002 0546 mov r5, r0
460 0004 0E46 mov r6, r1
461 0006 1746 mov r7, r2
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
462 .loc 1 6379 3 is_stmt 1 view .LVU128
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
463 .loc 1 6379 7 is_stmt 0 view .LVU129
464 0008 0368 ldr r3, [r0]
465 000a 9B69 ldr r3, [r3, #24]
6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
466 .loc 1 6379 6 view .LVU130
467 000c 13F0100F tst r3, #16
468 0010 01D1 bne .L46
6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
469 .loc 1 6423 10 view .LVU131
470 0012 0020 movs r0, #0
ARM GAS /tmp/ccEimIdZ.s page 126
471 .LVL36:
472 .L45:
6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
473 .loc 1 6424 1 view .LVU132
474 0014 F8BD pop {r3, r4, r5, r6, r7, pc}
475 .LVL37:
476 .L46:
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
477 .loc 1 6383 11 is_stmt 1 view .LVU133
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
478 .loc 1 6383 12 is_stmt 0 view .LVU134
479 0016 2B68 ldr r3, [r5]
480 0018 9C69 ldr r4, [r3, #24]
6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
481 .loc 1 6383 11 view .LVU135
482 001a 14F0200F tst r4, #32
483 001e 17D1 bne .L50
6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
484 .loc 1 6386 7 is_stmt 1 view .LVU136
6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
485 .loc 1 6386 10 is_stmt 0 view .LVU137
486 0020 B6F1FF3F cmp r6, #-1
487 0024 F7D0 beq .L46
6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
488 .loc 1 6388 9 is_stmt 1 view .LVU138
6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
489 .loc 1 6388 15 is_stmt 0 view .LVU139
490 0026 FFF7FEFF bl HAL_GetTick
491 .LVL38:
6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
492 .loc 1 6388 29 view .LVU140
493 002a C01B subs r0, r0, r7
6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
494 .loc 1 6388 12 view .LVU141
495 002c B042 cmp r0, r6
496 002e 01D8 bhi .L47
6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
497 .loc 1 6388 53 discriminator 1 view .LVU142
498 0030 002E cmp r6, #0
499 0032 F0D1 bne .L46
500 .L47:
6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
501 .loc 1 6390 11 is_stmt 1 view .LVU143
6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
502 .loc 1 6390 27 is_stmt 0 view .LVU144
503 0034 6B6C ldr r3, [r5, #68]
504 0036 43F02003 orr r3, r3, #32
505 003a 6B64 str r3, [r5, #68]
6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
506 .loc 1 6391 11 is_stmt 1 view .LVU145
6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
507 .loc 1 6391 23 is_stmt 0 view .LVU146
508 003c 2023 movs r3, #32
509 003e 85F84130 strb r3, [r5, #65]
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
510 .loc 1 6392 11 is_stmt 1 view .LVU147
6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 127
511 .loc 1 6392 22 is_stmt 0 view .LVU148
512 0042 0023 movs r3, #0
513 0044 85F84230 strb r3, [r5, #66]
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
514 .loc 1 6395 11 is_stmt 1 view .LVU149
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
515 .loc 1 6395 11 view .LVU150
516 0048 85F84030 strb r3, [r5, #64]
6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
517 .loc 1 6395 11 view .LVU151
6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
518 .loc 1 6397 11 view .LVU152
6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
519 .loc 1 6397 18 is_stmt 0 view .LVU153
520 004c 0120 movs r0, #1
521 004e E1E7 b .L45
522 .L50:
6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
523 .loc 1 6403 5 is_stmt 1 view .LVU154
524 0050 1022 movs r2, #16
525 0052 DA61 str r2, [r3, #28]
6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
526 .loc 1 6406 5 view .LVU155
527 0054 2B68 ldr r3, [r5]
528 0056 2024 movs r4, #32
529 0058 DC61 str r4, [r3, #28]
6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
530 .loc 1 6409 5 view .LVU156
531 005a 2846 mov r0, r5
532 005c FFF7FEFF bl I2C_Flush_TXDR
533 .LVL39:
6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
534 .loc 1 6412 5 view .LVU157
535 0060 2A68 ldr r2, [r5]
536 0062 5368 ldr r3, [r2, #4]
537 0064 23F0FF73 bic r3, r3, #33423360
538 0068 23F48B33 bic r3, r3, #71168
539 006c 23F4FF73 bic r3, r3, #510
540 0070 23F00103 bic r3, r3, #1
541 0074 5360 str r3, [r2, #4]
6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
542 .loc 1 6414 5 view .LVU158
6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
543 .loc 1 6414 21 is_stmt 0 view .LVU159
544 0076 6B6C ldr r3, [r5, #68]
545 0078 43F00403 orr r3, r3, #4
546 007c 6B64 str r3, [r5, #68]
6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
547 .loc 1 6415 5 is_stmt 1 view .LVU160
6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
548 .loc 1 6415 17 is_stmt 0 view .LVU161
549 007e 85F84140 strb r4, [r5, #65]
6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
550 .loc 1 6416 5 is_stmt 1 view .LVU162
6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
551 .loc 1 6416 16 is_stmt 0 view .LVU163
552 0082 0023 movs r3, #0
ARM GAS /tmp/ccEimIdZ.s page 128
553 0084 85F84230 strb r3, [r5, #66]
6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
554 .loc 1 6419 5 is_stmt 1 view .LVU164
6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
555 .loc 1 6419 5 view .LVU165
556 0088 85F84030 strb r3, [r5, #64]
6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
557 .loc 1 6419 5 view .LVU166
6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
558 .loc 1 6421 5 view .LVU167
6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
559 .loc 1 6421 12 is_stmt 0 view .LVU168
560 008c 0120 movs r0, #1
561 008e C1E7 b .L45
562 .cfi_endproc
563 .LFE215:
565 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
566 .align 1
567 .syntax unified
568 .thumb
569 .thumb_func
570 .fpu fpv5-d16
572 I2C_WaitOnTXISFlagUntilTimeout:
573 .LVL40:
574 .LFB212:
6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
575 .loc 1 6244 1 is_stmt 1 view -0
576 .cfi_startproc
577 @ args = 0, pretend = 0, frame = 0
578 @ frame_needed = 0, uses_anonymous_args = 0
6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
579 .loc 1 6244 1 is_stmt 0 view .LVU170
580 0000 70B5 push {r4, r5, r6, lr}
581 .LCFI3:
582 .cfi_def_cfa_offset 16
583 .cfi_offset 4, -16
584 .cfi_offset 5, -12
585 .cfi_offset 6, -8
586 .cfi_offset 14, -4
587 0002 0446 mov r4, r0
588 0004 0D46 mov r5, r1
589 0006 1646 mov r6, r2
6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
590 .loc 1 6245 3 is_stmt 1 view .LVU171
591 .LVL41:
592 .L54:
6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
593 .loc 1 6245 9 view .LVU172
6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
594 .loc 1 6245 10 is_stmt 0 view .LVU173
595 0008 2368 ldr r3, [r4]
596 000a 9B69 ldr r3, [r3, #24]
6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
597 .loc 1 6245 9 view .LVU174
598 000c 13F0020F tst r3, #2
599 0010 1DD1 bne .L59
6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 129
600 .loc 1 6248 5 is_stmt 1 view .LVU175
6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
601 .loc 1 6248 9 is_stmt 0 view .LVU176
602 0012 3246 mov r2, r6
603 0014 2946 mov r1, r5
604 0016 2046 mov r0, r4
605 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed
606 .LVL42:
6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
607 .loc 1 6248 8 view .LVU177
608 001c C8B9 cbnz r0, .L57
6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
609 .loc 1 6254 5 is_stmt 1 view .LVU178
6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
610 .loc 1 6254 8 is_stmt 0 view .LVU179
611 001e B5F1FF3F cmp r5, #-1
612 0022 F1D0 beq .L54
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
613 .loc 1 6256 7 is_stmt 1 view .LVU180
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
614 .loc 1 6256 13 is_stmt 0 view .LVU181
615 0024 FFF7FEFF bl HAL_GetTick
616 .LVL43:
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
617 .loc 1 6256 27 view .LVU182
618 0028 801B subs r0, r0, r6
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
619 .loc 1 6256 10 view .LVU183
620 002a A842 cmp r0, r5
621 002c 01D8 bhi .L55
6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
622 .loc 1 6256 51 discriminator 1 view .LVU184
623 002e 002D cmp r5, #0
624 0030 EAD1 bne .L54
625 .L55:
6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
626 .loc 1 6258 9 is_stmt 1 view .LVU185
6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
627 .loc 1 6258 25 is_stmt 0 view .LVU186
628 0032 636C ldr r3, [r4, #68]
629 0034 43F02003 orr r3, r3, #32
630 0038 6364 str r3, [r4, #68]
6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
631 .loc 1 6259 9 is_stmt 1 view .LVU187
6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
632 .loc 1 6259 21 is_stmt 0 view .LVU188
633 003a 2023 movs r3, #32
634 003c 84F84130 strb r3, [r4, #65]
6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
635 .loc 1 6260 9 is_stmt 1 view .LVU189
6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
636 .loc 1 6260 20 is_stmt 0 view .LVU190
637 0040 0023 movs r3, #0
638 0042 84F84230 strb r3, [r4, #66]
6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
639 .loc 1 6263 9 is_stmt 1 view .LVU191
6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 130
640 .loc 1 6263 9 view .LVU192
641 0046 84F84030 strb r3, [r4, #64]
6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
642 .loc 1 6263 9 view .LVU193
6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
643 .loc 1 6265 9 view .LVU194
6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
644 .loc 1 6265 16 is_stmt 0 view .LVU195
645 004a 0120 movs r0, #1
646 004c 00E0 b .L53
647 .L59:
6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
648 .loc 1 6269 10 view .LVU196
649 004e 0020 movs r0, #0
650 .L53:
6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
651 .loc 1 6270 1 view .LVU197
652 0050 70BD pop {r4, r5, r6, pc}
653 .LVL44:
654 .L57:
6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
655 .loc 1 6250 14 view .LVU198
656 0052 0120 movs r0, #1
657 0054 FCE7 b .L53
658 .cfi_endproc
659 .LFE212:
661 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
662 .align 1
663 .syntax unified
664 .thumb
665 .thumb_func
666 .fpu fpv5-d16
668 I2C_WaitOnFlagUntilTimeout:
669 .LVL45:
670 .LFB211:
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
671 .loc 1 6214 1 is_stmt 1 view -0
672 .cfi_startproc
673 @ args = 4, pretend = 0, frame = 0
674 @ frame_needed = 0, uses_anonymous_args = 0
6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
675 .loc 1 6214 1 is_stmt 0 view .LVU200
676 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
677 .LCFI4:
678 .cfi_def_cfa_offset 24
679 .cfi_offset 4, -24
680 .cfi_offset 5, -20
681 .cfi_offset 6, -16
682 .cfi_offset 7, -12
683 .cfi_offset 8, -8
684 .cfi_offset 14, -4
685 0004 0646 mov r6, r0
686 0006 8846 mov r8, r1
687 0008 1746 mov r7, r2
688 000a 1D46 mov r5, r3
6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
689 .loc 1 6215 3 is_stmt 1 view .LVU201
ARM GAS /tmp/ccEimIdZ.s page 131
690 .LVL46:
691 .L62:
6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
692 .loc 1 6215 9 view .LVU202
6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
693 .loc 1 6215 10 is_stmt 0 view .LVU203
694 000c 3468 ldr r4, [r6]
695 000e A469 ldr r4, [r4, #24]
696 0010 38EA0403 bics r3, r8, r4
697 0014 0CBF ite eq
698 0016 4FF0010C moveq ip, #1
699 001a 4FF0000C movne ip, #0
6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
700 .loc 1 6215 9 view .LVU204
701 001e BC45 cmp ip, r7
702 0020 18D1 bne .L67
6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
703 .loc 1 6218 5 is_stmt 1 view .LVU205
6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
704 .loc 1 6218 8 is_stmt 0 view .LVU206
705 0022 B5F1FF3F cmp r5, #-1
706 0026 F1D0 beq .L62
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
707 .loc 1 6220 7 is_stmt 1 view .LVU207
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
708 .loc 1 6220 13 is_stmt 0 view .LVU208
709 0028 FFF7FEFF bl HAL_GetTick
710 .LVL47:
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
711 .loc 1 6220 27 view .LVU209
712 002c 069B ldr r3, [sp, #24]
713 002e C01A subs r0, r0, r3
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
714 .loc 1 6220 10 view .LVU210
715 0030 A842 cmp r0, r5
716 0032 01D8 bhi .L63
6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
717 .loc 1 6220 51 discriminator 1 view .LVU211
718 0034 002D cmp r5, #0
719 0036 E9D1 bne .L62
720 .L63:
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
721 .loc 1 6222 9 is_stmt 1 view .LVU212
6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
722 .loc 1 6222 25 is_stmt 0 view .LVU213
723 0038 736C ldr r3, [r6, #68]
724 003a 43F02003 orr r3, r3, #32
725 003e 7364 str r3, [r6, #68]
6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
726 .loc 1 6223 9 is_stmt 1 view .LVU214
6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
727 .loc 1 6223 21 is_stmt 0 view .LVU215
728 0040 2023 movs r3, #32
729 0042 86F84130 strb r3, [r6, #65]
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
730 .loc 1 6224 9 is_stmt 1 view .LVU216
6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 132
731 .loc 1 6224 20 is_stmt 0 view .LVU217
732 0046 0023 movs r3, #0
733 0048 86F84230 strb r3, [r6, #66]
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
734 .loc 1 6227 9 is_stmt 1 view .LVU218
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
735 .loc 1 6227 9 view .LVU219
736 004c 86F84030 strb r3, [r6, #64]
6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
737 .loc 1 6227 9 view .LVU220
6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
738 .loc 1 6228 9 view .LVU221
6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
739 .loc 1 6228 16 is_stmt 0 view .LVU222
740 0050 0120 movs r0, #1
741 0052 00E0 b .L64
742 .L67:
6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
743 .loc 1 6232 10 view .LVU223
744 0054 0020 movs r0, #0
745 .L64:
6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
746 .loc 1 6233 1 view .LVU224
747 0056 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
748 .loc 1 6233 1 view .LVU225
749 .cfi_endproc
750 .LFE211:
752 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
753 .align 1
754 .syntax unified
755 .thumb
756 .thumb_func
757 .fpu fpv5-d16
759 I2C_RequestMemoryWrite:
760 .LVL48:
761 .LFB194:
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
762 .loc 1 5155 1 is_stmt 1 view -0
763 .cfi_startproc
764 @ args = 8, pretend = 0, frame = 0
765 @ frame_needed = 0, uses_anonymous_args = 0
5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
766 .loc 1 5155 1 is_stmt 0 view .LVU227
767 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
768 .LCFI5:
769 .cfi_def_cfa_offset 24
770 .cfi_offset 4, -24
771 .cfi_offset 5, -20
772 .cfi_offset 6, -16
773 .cfi_offset 7, -12
774 .cfi_offset 8, -8
775 .cfi_offset 14, -4
776 0004 82B0 sub sp, sp, #8
777 .LCFI6:
778 .cfi_def_cfa_offset 32
779 0006 0446 mov r4, r0
ARM GAS /tmp/ccEimIdZ.s page 133
780 0008 9046 mov r8, r2
781 000a 1D46 mov r5, r3
782 000c 089E ldr r6, [sp, #32]
783 000e 099F ldr r7, [sp, #36]
5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
784 .loc 1 5156 3 is_stmt 1 view .LVU228
785 0010 194B ldr r3, .L77
786 .LVL49:
5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
787 .loc 1 5156 3 is_stmt 0 view .LVU229
788 0012 0093 str r3, [sp]
789 0014 4FF08073 mov r3, #16777216
790 0018 EAB2 uxtb r2, r5
791 .LVL50:
5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
792 .loc 1 5156 3 view .LVU230
793 001a FFF7FEFF bl I2C_TransferConfig
794 .LVL51:
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
795 .loc 1 5159 3 is_stmt 1 view .LVU231
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
796 .loc 1 5159 7 is_stmt 0 view .LVU232
797 001e 3A46 mov r2, r7
798 0020 3146 mov r1, r6
799 0022 2046 mov r0, r4
800 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
801 .LVL52:
5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
802 .loc 1 5159 6 view .LVU233
803 0028 F8B9 cbnz r0, .L72
5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
804 .loc 1 5165 3 is_stmt 1 view .LVU234
5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
805 .loc 1 5165 6 is_stmt 0 view .LVU235
806 002a 012D cmp r5, #1
807 002c 0ED1 bne .L70
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
808 .loc 1 5168 5 is_stmt 1 view .LVU236
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
809 .loc 1 5168 9 is_stmt 0 view .LVU237
810 002e 2368 ldr r3, [r4]
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
811 .loc 1 5168 28 view .LVU238
812 0030 5FFA88F2 uxtb r2, r8
5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
813 .loc 1 5168 26 view .LVU239
814 0034 9A62 str r2, [r3, #40]
815 .L71:
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
816 .loc 1 5187 3 is_stmt 1 view .LVU240
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
817 .loc 1 5187 7 is_stmt 0 view .LVU241
818 0036 0097 str r7, [sp]
819 0038 3346 mov r3, r6
820 003a 0022 movs r2, #0
821 003c 8021 movs r1, #128
822 003e 2046 mov r0, r4
ARM GAS /tmp/ccEimIdZ.s page 134
823 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
824 .LVL53:
5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
825 .loc 1 5187 6 view .LVU242
826 0044 A8B9 cbnz r0, .L76
827 .L69:
5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
828 .loc 1 5193 1 view .LVU243
829 0046 02B0 add sp, sp, #8
830 .LCFI7:
831 .cfi_remember_state
832 .cfi_def_cfa_offset 24
833 @ sp needed
834 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
835 .LVL54:
836 .L70:
837 .LCFI8:
838 .cfi_restore_state
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
839 .loc 1 5174 5 is_stmt 1 view .LVU244
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
840 .loc 1 5174 9 is_stmt 0 view .LVU245
841 004c 2368 ldr r3, [r4]
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
842 .loc 1 5174 28 view .LVU246
843 004e 4FEA1822 lsr r2, r8, #8
5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
844 .loc 1 5174 26 view .LVU247
845 0052 9A62 str r2, [r3, #40]
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
846 .loc 1 5177 5 is_stmt 1 view .LVU248
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
847 .loc 1 5177 9 is_stmt 0 view .LVU249
848 0054 3A46 mov r2, r7
849 0056 3146 mov r1, r6
850 0058 2046 mov r0, r4
851 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
852 .LVL55:
5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
853 .loc 1 5177 8 view .LVU250
854 005e 30B9 cbnz r0, .L73
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
855 .loc 1 5183 5 is_stmt 1 view .LVU251
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
856 .loc 1 5183 9 is_stmt 0 view .LVU252
857 0060 2368 ldr r3, [r4]
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
858 .loc 1 5183 28 view .LVU253
859 0062 5FFA88F2 uxtb r2, r8
5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
860 .loc 1 5183 26 view .LVU254
861 0066 9A62 str r2, [r3, #40]
862 0068 E5E7 b .L71
863 .L72:
5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
864 .loc 1 5161 12 view .LVU255
865 006a 0120 movs r0, #1
ARM GAS /tmp/ccEimIdZ.s page 135
866 006c EBE7 b .L69
867 .L73:
5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
868 .loc 1 5179 14 view .LVU256
869 006e 0120 movs r0, #1
870 0070 E9E7 b .L69
871 .L76:
5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
872 .loc 1 5189 12 view .LVU257
873 0072 0120 movs r0, #1
874 0074 E7E7 b .L69
875 .L78:
876 0076 00BF .align 2
877 .L77:
878 0078 00200080 .word -2147475456
879 .cfi_endproc
880 .LFE194:
882 .section .text.I2C_RequestMemoryRead,"ax",%progbits
883 .align 1
884 .syntax unified
885 .thumb
886 .thumb_func
887 .fpu fpv5-d16
889 I2C_RequestMemoryRead:
890 .LVL56:
891 .LFB195:
5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
892 .loc 1 5208 1 is_stmt 1 view -0
893 .cfi_startproc
894 @ args = 8, pretend = 0, frame = 0
895 @ frame_needed = 0, uses_anonymous_args = 0
5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
896 .loc 1 5208 1 is_stmt 0 view .LVU259
897 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
898 .LCFI9:
899 .cfi_def_cfa_offset 24
900 .cfi_offset 4, -24
901 .cfi_offset 5, -20
902 .cfi_offset 6, -16
903 .cfi_offset 7, -12
904 .cfi_offset 8, -8
905 .cfi_offset 14, -4
906 0004 82B0 sub sp, sp, #8
907 .LCFI10:
908 .cfi_def_cfa_offset 32
909 0006 0446 mov r4, r0
910 0008 9046 mov r8, r2
911 000a 1D46 mov r5, r3
912 000c 089E ldr r6, [sp, #32]
913 000e 099F ldr r7, [sp, #36]
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
914 .loc 1 5209 3 is_stmt 1 view .LVU260
915 0010 184B ldr r3, .L88
916 .LVL57:
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
917 .loc 1 5209 3 is_stmt 0 view .LVU261
918 0012 0093 str r3, [sp]
ARM GAS /tmp/ccEimIdZ.s page 136
919 0014 0023 movs r3, #0
920 0016 EAB2 uxtb r2, r5
921 .LVL58:
5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
922 .loc 1 5209 3 view .LVU262
923 0018 FFF7FEFF bl I2C_TransferConfig
924 .LVL59:
5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
925 .loc 1 5212 3 is_stmt 1 view .LVU263
5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
926 .loc 1 5212 7 is_stmt 0 view .LVU264
927 001c 3A46 mov r2, r7
928 001e 3146 mov r1, r6
929 0020 2046 mov r0, r4
930 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
931 .LVL60:
5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
932 .loc 1 5212 6 view .LVU265
933 0026 F8B9 cbnz r0, .L83
5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
934 .loc 1 5218 3 is_stmt 1 view .LVU266
5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
935 .loc 1 5218 6 is_stmt 0 view .LVU267
936 0028 012D cmp r5, #1
937 002a 0ED1 bne .L81
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
938 .loc 1 5221 5 is_stmt 1 view .LVU268
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
939 .loc 1 5221 9 is_stmt 0 view .LVU269
940 002c 2368 ldr r3, [r4]
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
941 .loc 1 5221 28 view .LVU270
942 002e 5FFA88F2 uxtb r2, r8
5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
943 .loc 1 5221 26 view .LVU271
944 0032 9A62 str r2, [r3, #40]
945 .L82:
5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
946 .loc 1 5240 3 is_stmt 1 view .LVU272
5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
947 .loc 1 5240 7 is_stmt 0 view .LVU273
948 0034 0097 str r7, [sp]
949 0036 3346 mov r3, r6
950 0038 0022 movs r2, #0
951 003a 4021 movs r1, #64
952 003c 2046 mov r0, r4
953 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
954 .LVL61:
5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
955 .loc 1 5240 6 view .LVU274
956 0042 A8B9 cbnz r0, .L87
957 .L80:
5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
958 .loc 1 5246 1 view .LVU275
959 0044 02B0 add sp, sp, #8
960 .LCFI11:
961 .cfi_remember_state
ARM GAS /tmp/ccEimIdZ.s page 137
962 .cfi_def_cfa_offset 24
963 @ sp needed
964 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
965 .LVL62:
966 .L81:
967 .LCFI12:
968 .cfi_restore_state
5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
969 .loc 1 5227 5 is_stmt 1 view .LVU276
5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
970 .loc 1 5227 9 is_stmt 0 view .LVU277
971 004a 2368 ldr r3, [r4]
5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
972 .loc 1 5227 28 view .LVU278
973 004c 4FEA1822 lsr r2, r8, #8
5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
974 .loc 1 5227 26 view .LVU279
975 0050 9A62 str r2, [r3, #40]
5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
976 .loc 1 5230 5 is_stmt 1 view .LVU280
5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
977 .loc 1 5230 9 is_stmt 0 view .LVU281
978 0052 3A46 mov r2, r7
979 0054 3146 mov r1, r6
980 0056 2046 mov r0, r4
981 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
982 .LVL63:
5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
983 .loc 1 5230 8 view .LVU282
984 005c 30B9 cbnz r0, .L84
5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
985 .loc 1 5236 5 is_stmt 1 view .LVU283
5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
986 .loc 1 5236 9 is_stmt 0 view .LVU284
987 005e 2368 ldr r3, [r4]
5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
988 .loc 1 5236 28 view .LVU285
989 0060 5FFA88F2 uxtb r2, r8
5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
990 .loc 1 5236 26 view .LVU286
991 0064 9A62 str r2, [r3, #40]
992 0066 E5E7 b .L82
993 .L83:
5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
994 .loc 1 5214 12 view .LVU287
995 0068 0120 movs r0, #1
996 006a EBE7 b .L80
997 .L84:
5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
998 .loc 1 5232 14 view .LVU288
999 006c 0120 movs r0, #1
1000 006e E9E7 b .L80
1001 .L87:
5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1002 .loc 1 5242 12 view .LVU289
1003 0070 0120 movs r0, #1
1004 0072 E7E7 b .L80
ARM GAS /tmp/ccEimIdZ.s page 138
1005 .L89:
1006 .align 2
1007 .L88:
1008 0074 00200080 .word -2147475456
1009 .cfi_endproc
1010 .LFE195:
1012 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
1013 .align 1
1014 .syntax unified
1015 .thumb
1016 .thumb_func
1017 .fpu fpv5-d16
1019 I2C_WaitOnSTOPFlagUntilTimeout:
1020 .LVL64:
1021 .LFB213:
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1022 .loc 1 6281 1 is_stmt 1 view -0
1023 .cfi_startproc
1024 @ args = 0, pretend = 0, frame = 0
1025 @ frame_needed = 0, uses_anonymous_args = 0
6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1026 .loc 1 6281 1 is_stmt 0 view .LVU291
1027 0000 70B5 push {r4, r5, r6, lr}
1028 .LCFI13:
1029 .cfi_def_cfa_offset 16
1030 .cfi_offset 4, -16
1031 .cfi_offset 5, -12
1032 .cfi_offset 6, -8
1033 .cfi_offset 14, -4
1034 0002 0546 mov r5, r0
1035 0004 0C46 mov r4, r1
1036 0006 1646 mov r6, r2
6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1037 .loc 1 6282 3 is_stmt 1 view .LVU292
1038 .LVL65:
1039 .L91:
6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1040 .loc 1 6282 9 view .LVU293
6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1041 .loc 1 6282 10 is_stmt 0 view .LVU294
1042 0008 2B68 ldr r3, [r5]
1043 000a 9B69 ldr r3, [r3, #24]
6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1044 .loc 1 6282 9 view .LVU295
1045 000c 13F0200F tst r3, #32
1046 0010 1AD1 bne .L97
6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1047 .loc 1 6285 5 is_stmt 1 view .LVU296
6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1048 .loc 1 6285 9 is_stmt 0 view .LVU297
1049 0012 3246 mov r2, r6
1050 0014 2146 mov r1, r4
1051 0016 2846 mov r0, r5
1052 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed
1053 .LVL66:
6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1054 .loc 1 6285 8 view .LVU298
ARM GAS /tmp/ccEimIdZ.s page 139
1055 001c B0B9 cbnz r0, .L95
6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1056 .loc 1 6291 5 is_stmt 1 view .LVU299
6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1057 .loc 1 6291 11 is_stmt 0 view .LVU300
1058 001e FFF7FEFF bl HAL_GetTick
1059 .LVL67:
6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1060 .loc 1 6291 25 view .LVU301
1061 0022 801B subs r0, r0, r6
6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1062 .loc 1 6291 8 view .LVU302
1063 0024 A042 cmp r0, r4
1064 0026 01D8 bhi .L93
6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1065 .loc 1 6291 49 discriminator 1 view .LVU303
1066 0028 002C cmp r4, #0
1067 002a EDD1 bne .L91
1068 .L93:
6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1069 .loc 1 6293 7 is_stmt 1 view .LVU304
6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1070 .loc 1 6293 23 is_stmt 0 view .LVU305
1071 002c 6B6C ldr r3, [r5, #68]
1072 002e 43F02003 orr r3, r3, #32
1073 0032 6B64 str r3, [r5, #68]
6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1074 .loc 1 6294 7 is_stmt 1 view .LVU306
6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1075 .loc 1 6294 19 is_stmt 0 view .LVU307
1076 0034 2023 movs r3, #32
1077 0036 85F84130 strb r3, [r5, #65]
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1078 .loc 1 6295 7 is_stmt 1 view .LVU308
6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1079 .loc 1 6295 18 is_stmt 0 view .LVU309
1080 003a 0023 movs r3, #0
1081 003c 85F84230 strb r3, [r5, #66]
6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1082 .loc 1 6298 7 is_stmt 1 view .LVU310
6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1083 .loc 1 6298 7 view .LVU311
1084 0040 85F84030 strb r3, [r5, #64]
6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1085 .loc 1 6298 7 view .LVU312
6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1086 .loc 1 6300 7 view .LVU313
6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1087 .loc 1 6300 14 is_stmt 0 view .LVU314
1088 0044 0120 movs r0, #1
1089 .L92:
6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1090 .loc 1 6304 1 view .LVU315
1091 0046 70BD pop {r4, r5, r6, pc}
1092 .LVL68:
1093 .L97:
6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 140
1094 .loc 1 6303 10 view .LVU316
1095 0048 0020 movs r0, #0
1096 004a FCE7 b .L92
1097 .L95:
6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1098 .loc 1 6287 14 view .LVU317
1099 004c 0120 movs r0, #1
1100 004e FAE7 b .L92
1101 .cfi_endproc
1102 .LFE213:
1104 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
1105 .align 1
1106 .syntax unified
1107 .thumb
1108 .thumb_func
1109 .fpu fpv5-d16
1111 I2C_WaitOnRXNEFlagUntilTimeout:
1112 .LVL69:
1113 .LFB214:
6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
1114 .loc 1 6315 1 is_stmt 1 view -0
1115 .cfi_startproc
1116 @ args = 0, pretend = 0, frame = 0
1117 @ frame_needed = 0, uses_anonymous_args = 0
6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
1118 .loc 1 6315 1 is_stmt 0 view .LVU319
1119 0000 70B5 push {r4, r5, r6, lr}
1120 .LCFI14:
1121 .cfi_def_cfa_offset 16
1122 .cfi_offset 4, -16
1123 .cfi_offset 5, -12
1124 .cfi_offset 6, -8
1125 .cfi_offset 14, -4
1126 0002 0446 mov r4, r0
1127 0004 0D46 mov r5, r1
1128 0006 1646 mov r6, r2
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1129 .loc 1 6316 3 is_stmt 1 view .LVU320
1130 .LVL70:
1131 .L99:
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1132 .loc 1 6316 9 view .LVU321
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1133 .loc 1 6316 10 is_stmt 0 view .LVU322
1134 0008 2368 ldr r3, [r4]
1135 000a 9B69 ldr r3, [r3, #24]
6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1136 .loc 1 6316 9 view .LVU323
1137 000c 13F0040F tst r3, #4
1138 0010 3ED1 bne .L107
6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1139 .loc 1 6319 5 is_stmt 1 view .LVU324
6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1140 .loc 1 6319 9 is_stmt 0 view .LVU325
1141 0012 3246 mov r2, r6
1142 0014 2946 mov r1, r5
1143 0016 2046 mov r0, r4
ARM GAS /tmp/ccEimIdZ.s page 141
1144 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed
1145 .LVL71:
6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1146 .loc 1 6319 8 view .LVU326
1147 001c 0146 mov r1, r0
1148 001e 0028 cmp r0, #0
1149 0020 38D1 bne .L105
6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1150 .loc 1 6325 5 is_stmt 1 view .LVU327
6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1151 .loc 1 6325 9 is_stmt 0 view .LVU328
1152 0022 2368 ldr r3, [r4]
1153 0024 9A69 ldr r2, [r3, #24]
6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1154 .loc 1 6325 8 view .LVU329
1155 0026 12F0200F tst r2, #32
1156 002a 13D1 bne .L108
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1157 .loc 1 6355 5 is_stmt 1 view .LVU330
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1158 .loc 1 6355 11 is_stmt 0 view .LVU331
1159 002c FFF7FEFF bl HAL_GetTick
1160 .LVL72:
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1161 .loc 1 6355 25 view .LVU332
1162 0030 801B subs r0, r0, r6
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1163 .loc 1 6355 8 view .LVU333
1164 0032 A842 cmp r0, r5
1165 0034 01D8 bhi .L103
6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1166 .loc 1 6355 49 discriminator 1 view .LVU334
1167 0036 002D cmp r5, #0
1168 0038 E6D1 bne .L99
1169 .L103:
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1170 .loc 1 6357 7 is_stmt 1 view .LVU335
6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1171 .loc 1 6357 23 is_stmt 0 view .LVU336
1172 003a 636C ldr r3, [r4, #68]
1173 003c 43F02003 orr r3, r3, #32
1174 0040 6364 str r3, [r4, #68]
6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1175 .loc 1 6358 7 is_stmt 1 view .LVU337
6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1176 .loc 1 6358 19 is_stmt 0 view .LVU338
1177 0042 2023 movs r3, #32
1178 0044 84F84130 strb r3, [r4, #65]
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1179 .loc 1 6361 7 is_stmt 1 view .LVU339
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1180 .loc 1 6361 7 view .LVU340
1181 0048 0023 movs r3, #0
1182 004a 84F84030 strb r3, [r4, #64]
6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1183 .loc 1 6361 7 view .LVU341
6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 142
1184 .loc 1 6363 7 view .LVU342
6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1185 .loc 1 6363 14 is_stmt 0 view .LVU343
1186 004e 0121 movs r1, #1
1187 .L100:
6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1188 .loc 1 6367 1 view .LVU344
1189 0050 0846 mov r0, r1
1190 0052 70BD pop {r4, r5, r6, pc}
1191 .LVL73:
1192 .L108:
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1193 .loc 1 6329 7 is_stmt 1 view .LVU345
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1194 .loc 1 6329 12 is_stmt 0 view .LVU346
1195 0054 9A69 ldr r2, [r3, #24]
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1196 .loc 1 6329 10 view .LVU347
1197 0056 12F0040F tst r2, #4
1198 005a 02D0 beq .L102
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1199 .loc 1 6329 68 discriminator 1 view .LVU348
1200 005c 228D ldrh r2, [r4, #40]
6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1201 .loc 1 6329 60 discriminator 1 view .LVU349
1202 005e 002A cmp r2, #0
1203 0060 F6D1 bne .L100
1204 .L102:
6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1205 .loc 1 6338 9 is_stmt 1 view .LVU350
1206 0062 2022 movs r2, #32
1207 0064 DA61 str r2, [r3, #28]
6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1208 .loc 1 6341 9 view .LVU351
1209 0066 2168 ldr r1, [r4]
1210 0068 4B68 ldr r3, [r1, #4]
1211 006a 23F0FF73 bic r3, r3, #33423360
1212 006e 23F48B33 bic r3, r3, #71168
1213 0072 23F4FF73 bic r3, r3, #510
1214 0076 23F00103 bic r3, r3, #1
1215 007a 4B60 str r3, [r1, #4]
6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1216 .loc 1 6343 9 view .LVU352
6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1217 .loc 1 6343 25 is_stmt 0 view .LVU353
1218 007c 0023 movs r3, #0
1219 007e 6364 str r3, [r4, #68]
6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1220 .loc 1 6344 9 is_stmt 1 view .LVU354
6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1221 .loc 1 6344 21 is_stmt 0 view .LVU355
1222 0080 84F84120 strb r2, [r4, #65]
6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1223 .loc 1 6345 9 is_stmt 1 view .LVU356
6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1224 .loc 1 6345 20 is_stmt 0 view .LVU357
1225 0084 84F84230 strb r3, [r4, #66]
ARM GAS /tmp/ccEimIdZ.s page 143
6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1226 .loc 1 6348 9 is_stmt 1 view .LVU358
6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1227 .loc 1 6348 9 view .LVU359
1228 0088 84F84030 strb r3, [r4, #64]
6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1229 .loc 1 6348 9 view .LVU360
6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1230 .loc 1 6350 9 view .LVU361
6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1231 .loc 1 6350 16 is_stmt 0 view .LVU362
1232 008c 0121 movs r1, #1
1233 008e DFE7 b .L100
1234 .L107:
6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1235 .loc 1 6366 10 view .LVU363
1236 0090 0021 movs r1, #0
1237 0092 DDE7 b .L100
1238 .L105:
6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1239 .loc 1 6321 14 view .LVU364
1240 0094 0121 movs r1, #1
1241 0096 DBE7 b .L100
1242 .cfi_endproc
1243 .LFE214:
1245 .section .text.HAL_I2C_MspInit,"ax",%progbits
1246 .align 1
1247 .weak HAL_I2C_MspInit
1248 .syntax unified
1249 .thumb
1250 .thumb_func
1251 .fpu fpv5-d16
1253 HAL_I2C_MspInit:
1254 .LVL74:
1255 .LFB143:
628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1256 .loc 1 628 1 is_stmt 1 view -0
1257 .cfi_startproc
1258 @ args = 0, pretend = 0, frame = 0
1259 @ frame_needed = 0, uses_anonymous_args = 0
1260 @ link register save eliminated.
630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1261 .loc 1 630 3 view .LVU366
635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1262 .loc 1 635 1 is_stmt 0 view .LVU367
1263 0000 7047 bx lr
1264 .cfi_endproc
1265 .LFE143:
1267 .section .text.HAL_I2C_Init,"ax",%progbits
1268 .align 1
1269 .global HAL_I2C_Init
1270 .syntax unified
1271 .thumb
1272 .thumb_func
1273 .fpu fpv5-d16
1275 HAL_I2C_Init:
1276 .LVL75:
ARM GAS /tmp/ccEimIdZ.s page 144
1277 .LFB141:
473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1278 .loc 1 473 1 is_stmt 1 view -0
1279 .cfi_startproc
1280 @ args = 0, pretend = 0, frame = 0
1281 @ frame_needed = 0, uses_anonymous_args = 0
475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1282 .loc 1 475 3 view .LVU369
475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1283 .loc 1 475 6 is_stmt 0 view .LVU370
1284 0000 0028 cmp r0, #0
1285 0002 57D0 beq .L116
473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1286 .loc 1 473 1 view .LVU371
1287 0004 10B5 push {r4, lr}
1288 .LCFI15:
1289 .cfi_def_cfa_offset 8
1290 .cfi_offset 4, -8
1291 .cfi_offset 14, -4
1292 0006 0446 mov r4, r0
481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
1293 .loc 1 481 3 is_stmt 1 view .LVU372
482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
1294 .loc 1 482 3 view .LVU373
483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
1295 .loc 1 483 3 view .LVU374
484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
1296 .loc 1 484 3 view .LVU375
485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
1297 .loc 1 485 3 view .LVU376
486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
1298 .loc 1 486 3 view .LVU377
487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
1299 .loc 1 487 3 view .LVU378
488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1300 .loc 1 488 3 view .LVU379
490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1301 .loc 1 490 3 view .LVU380
490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1302 .loc 1 490 11 is_stmt 0 view .LVU381
1303 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1304 .loc 1 490 6 view .LVU382
1305 000c 002B cmp r3, #0
1306 000e 41D0 beq .L121
1307 .LVL76:
1308 .L112:
521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1309 .loc 1 521 3 is_stmt 1 view .LVU383
521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1310 .loc 1 521 15 is_stmt 0 view .LVU384
1311 0010 2423 movs r3, #36
1312 0012 84F84130 strb r3, [r4, #65]
524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1313 .loc 1 524 3 is_stmt 1 view .LVU385
1314 0016 2268 ldr r2, [r4]
1315 0018 1368 ldr r3, [r2]
ARM GAS /tmp/ccEimIdZ.s page 145
1316 001a 23F00103 bic r3, r3, #1
1317 001e 1360 str r3, [r2]
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1318 .loc 1 528 3 view .LVU386
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1319 .loc 1 528 39 is_stmt 0 view .LVU387
1320 0020 6368 ldr r3, [r4, #4]
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1321 .loc 1 528 7 view .LVU388
1322 0022 2268 ldr r2, [r4]
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1323 .loc 1 528 47 view .LVU389
1324 0024 23F07063 bic r3, r3, #251658240
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1325 .loc 1 528 27 view .LVU390
1326 0028 1361 str r3, [r2, #16]
532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1327 .loc 1 532 3 is_stmt 1 view .LVU391
532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1328 .loc 1 532 7 is_stmt 0 view .LVU392
1329 002a 2268 ldr r2, [r4]
532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1330 .loc 1 532 24 view .LVU393
1331 002c 9368 ldr r3, [r2, #8]
1332 002e 23F40043 bic r3, r3, #32768
1333 0032 9360 str r3, [r2, #8]
535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1334 .loc 1 535 3 is_stmt 1 view .LVU394
535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1335 .loc 1 535 17 is_stmt 0 view .LVU395
1336 0034 E368 ldr r3, [r4, #12]
535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1337 .loc 1 535 6 view .LVU396
1338 0036 012B cmp r3, #1
1339 0038 31D0 beq .L122
541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1340 .loc 1 541 5 is_stmt 1 view .LVU397
541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1341 .loc 1 541 75 is_stmt 0 view .LVU398
1342 003a A368 ldr r3, [r4, #8]
541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1343 .loc 1 541 9 view .LVU399
1344 003c 2268 ldr r2, [r4]
541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1345 .loc 1 541 63 view .LVU400
1346 003e 43F40443 orr r3, r3, #33792
541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1347 .loc 1 541 26 view .LVU401
1348 0042 9360 str r3, [r2, #8]
1349 .L114:
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1350 .loc 1 546 3 is_stmt 1 view .LVU402
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1351 .loc 1 546 17 is_stmt 0 view .LVU403
1352 0044 E368 ldr r3, [r4, #12]
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1353 .loc 1 546 6 view .LVU404
ARM GAS /tmp/ccEimIdZ.s page 146
1354 0046 022B cmp r3, #2
1355 0048 2FD0 beq .L123
1356 .L115:
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1357 .loc 1 551 3 is_stmt 1 view .LVU405
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1358 .loc 1 551 7 is_stmt 0 view .LVU406
1359 004a 2268 ldr r2, [r4]
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1360 .loc 1 551 23 view .LVU407
1361 004c 5168 ldr r1, [r2, #4]
1362 004e 1A4B ldr r3, .L124
1363 0050 0B43 orrs r3, r3, r1
1364 0052 5360 str r3, [r2, #4]
555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1365 .loc 1 555 3 is_stmt 1 view .LVU408
555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1366 .loc 1 555 7 is_stmt 0 view .LVU409
1367 0054 2268 ldr r2, [r4]
555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1368 .loc 1 555 24 view .LVU410
1369 0056 D368 ldr r3, [r2, #12]
1370 0058 23F40043 bic r3, r3, #32768
1371 005c D360 str r3, [r2, #12]
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1372 .loc 1 558 3 is_stmt 1 view .LVU411
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1373 .loc 1 558 37 is_stmt 0 view .LVU412
1374 005e 2369 ldr r3, [r4, #16]
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1375 .loc 1 558 66 view .LVU413
1376 0060 6269 ldr r2, [r4, #20]
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1377 .loc 1 558 54 view .LVU414
1378 0062 1343 orrs r3, r3, r2
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1379 .loc 1 558 92 view .LVU415
1380 0064 A169 ldr r1, [r4, #24]
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1381 .loc 1 558 7 view .LVU416
1382 0066 2268 ldr r2, [r4]
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1383 .loc 1 558 79 view .LVU417
1384 0068 43EA0123 orr r3, r3, r1, lsl #8
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1385 .loc 1 558 24 view .LVU418
1386 006c D360 str r3, [r2, #12]
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1387 .loc 1 562 3 is_stmt 1 view .LVU419
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1388 .loc 1 562 36 is_stmt 0 view .LVU420
1389 006e E369 ldr r3, [r4, #28]
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1390 .loc 1 562 65 view .LVU421
1391 0070 216A ldr r1, [r4, #32]
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1392 .loc 1 562 7 view .LVU422
ARM GAS /tmp/ccEimIdZ.s page 147
1393 0072 2268 ldr r2, [r4]
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1394 .loc 1 562 53 view .LVU423
1395 0074 0B43 orrs r3, r3, r1
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1396 .loc 1 562 23 view .LVU424
1397 0076 1360 str r3, [r2]
565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1398 .loc 1 565 3 is_stmt 1 view .LVU425
1399 0078 2268 ldr r2, [r4]
1400 007a 1368 ldr r3, [r2]
1401 007c 43F00103 orr r3, r3, #1
1402 0080 1360 str r3, [r2]
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1403 .loc 1 567 3 view .LVU426
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1404 .loc 1 567 19 is_stmt 0 view .LVU427
1405 0082 0020 movs r0, #0
1406 0084 6064 str r0, [r4, #68]
568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1407 .loc 1 568 3 is_stmt 1 view .LVU428
568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1408 .loc 1 568 15 is_stmt 0 view .LVU429
1409 0086 2023 movs r3, #32
1410 0088 84F84130 strb r3, [r4, #65]
569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1411 .loc 1 569 3 is_stmt 1 view .LVU430
569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1412 .loc 1 569 23 is_stmt 0 view .LVU431
1413 008c 2063 str r0, [r4, #48]
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1414 .loc 1 570 3 is_stmt 1 view .LVU432
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1415 .loc 1 570 14 is_stmt 0 view .LVU433
1416 008e 84F84200 strb r0, [r4, #66]
572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1417 .loc 1 572 3 is_stmt 1 view .LVU434
573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1418 .loc 1 573 1 is_stmt 0 view .LVU435
1419 0092 10BD pop {r4, pc}
1420 .LVL77:
1421 .L121:
493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1422 .loc 1 493 5 is_stmt 1 view .LVU436
493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1423 .loc 1 493 16 is_stmt 0 view .LVU437
1424 0094 80F84030 strb r3, [r0, #64]
517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1425 .loc 1 517 5 is_stmt 1 view .LVU438
1426 0098 FFF7FEFF bl HAL_I2C_MspInit
1427 .LVL78:
517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1428 .loc 1 517 5 is_stmt 0 view .LVU439
1429 009c B8E7 b .L112
1430 .L122:
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1431 .loc 1 537 5 is_stmt 1 view .LVU440
ARM GAS /tmp/ccEimIdZ.s page 148
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1432 .loc 1 537 56 is_stmt 0 view .LVU441
1433 009e A368 ldr r3, [r4, #8]
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1434 .loc 1 537 9 view .LVU442
1435 00a0 2268 ldr r2, [r4]
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1436 .loc 1 537 44 view .LVU443
1437 00a2 43F40043 orr r3, r3, #32768
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1438 .loc 1 537 26 view .LVU444
1439 00a6 9360 str r3, [r2, #8]
1440 00a8 CCE7 b .L114
1441 .L123:
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1442 .loc 1 548 5 is_stmt 1 view .LVU445
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1443 .loc 1 548 9 is_stmt 0 view .LVU446
1444 00aa 2368 ldr r3, [r4]
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1445 .loc 1 548 25 view .LVU447
1446 00ac 4FF40062 mov r2, #2048
1447 00b0 5A60 str r2, [r3, #4]
1448 00b2 CAE7 b .L115
1449 .LVL79:
1450 .L116:
1451 .LCFI16:
1452 .cfi_def_cfa_offset 0
1453 .cfi_restore 4
1454 .cfi_restore 14
477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1455 .loc 1 477 12 view .LVU448
1456 00b4 0120 movs r0, #1
1457 .LVL80:
573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1458 .loc 1 573 1 view .LVU449
1459 00b6 7047 bx lr
1460 .L125:
1461 .align 2
1462 .L124:
1463 00b8 00800002 .word 33587200
1464 .cfi_endproc
1465 .LFE141:
1467 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
1468 .align 1
1469 .weak HAL_I2C_MspDeInit
1470 .syntax unified
1471 .thumb
1472 .thumb_func
1473 .fpu fpv5-d16
1475 HAL_I2C_MspDeInit:
1476 .LVL81:
1477 .LFB144:
644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1478 .loc 1 644 1 is_stmt 1 view -0
1479 .cfi_startproc
1480 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccEimIdZ.s page 149
1481 @ frame_needed = 0, uses_anonymous_args = 0
1482 @ link register save eliminated.
646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1483 .loc 1 646 3 view .LVU451
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1484 .loc 1 651 1 is_stmt 0 view .LVU452
1485 0000 7047 bx lr
1486 .cfi_endproc
1487 .LFE144:
1489 .section .text.HAL_I2C_DeInit,"ax",%progbits
1490 .align 1
1491 .global HAL_I2C_DeInit
1492 .syntax unified
1493 .thumb
1494 .thumb_func
1495 .fpu fpv5-d16
1497 HAL_I2C_DeInit:
1498 .LVL82:
1499 .LFB142:
582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1500 .loc 1 582 1 is_stmt 1 view -0
1501 .cfi_startproc
1502 @ args = 0, pretend = 0, frame = 0
1503 @ frame_needed = 0, uses_anonymous_args = 0
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1504 .loc 1 584 3 view .LVU454
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1505 .loc 1 584 6 is_stmt 0 view .LVU455
1506 0000 A8B1 cbz r0, .L129
582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */
1507 .loc 1 582 1 view .LVU456
1508 0002 10B5 push {r4, lr}
1509 .LCFI17:
1510 .cfi_def_cfa_offset 8
1511 .cfi_offset 4, -8
1512 .cfi_offset 14, -4
1513 0004 0446 mov r4, r0
590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1514 .loc 1 590 3 is_stmt 1 view .LVU457
592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1515 .loc 1 592 3 view .LVU458
592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1516 .loc 1 592 15 is_stmt 0 view .LVU459
1517 0006 2423 movs r3, #36
1518 0008 80F84130 strb r3, [r0, #65]
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1519 .loc 1 595 3 is_stmt 1 view .LVU460
1520 000c 0268 ldr r2, [r0]
1521 000e 1368 ldr r3, [r2]
1522 0010 23F00103 bic r3, r3, #1
1523 0014 1360 str r3, [r2]
607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1524 .loc 1 607 3 view .LVU461
1525 0016 FFF7FEFF bl HAL_I2C_MspDeInit
1526 .LVL83:
610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1527 .loc 1 610 3 view .LVU462
ARM GAS /tmp/ccEimIdZ.s page 150
610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1528 .loc 1 610 19 is_stmt 0 view .LVU463
1529 001a 0020 movs r0, #0
1530 001c 6064 str r0, [r4, #68]
611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1531 .loc 1 611 3 is_stmt 1 view .LVU464
611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1532 .loc 1 611 15 is_stmt 0 view .LVU465
1533 001e 84F84100 strb r0, [r4, #65]
612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1534 .loc 1 612 3 is_stmt 1 view .LVU466
612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1535 .loc 1 612 23 is_stmt 0 view .LVU467
1536 0022 2063 str r0, [r4, #48]
613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1537 .loc 1 613 3 is_stmt 1 view .LVU468
613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1538 .loc 1 613 14 is_stmt 0 view .LVU469
1539 0024 84F84200 strb r0, [r4, #66]
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1540 .loc 1 616 3 is_stmt 1 view .LVU470
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1541 .loc 1 616 3 view .LVU471
1542 0028 84F84000 strb r0, [r4, #64]
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1543 .loc 1 616 3 view .LVU472
618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1544 .loc 1 618 3 view .LVU473
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1545 .loc 1 619 1 is_stmt 0 view .LVU474
1546 002c 10BD pop {r4, pc}
1547 .LVL84:
1548 .L129:
1549 .LCFI18:
1550 .cfi_def_cfa_offset 0
1551 .cfi_restore 4
1552 .cfi_restore 14
586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1553 .loc 1 586 12 view .LVU475
1554 002e 0120 movs r0, #1
1555 .LVL85:
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1556 .loc 1 619 1 view .LVU476
1557 0030 7047 bx lr
1558 .cfi_endproc
1559 .LFE142:
1561 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
1562 .align 1
1563 .global HAL_I2C_Master_Transmit
1564 .syntax unified
1565 .thumb
1566 .thumb_func
1567 .fpu fpv5-d16
1569 HAL_I2C_Master_Transmit:
1570 .LVL86:
1571 .LFB145:
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
ARM GAS /tmp/ccEimIdZ.s page 151
1572 .loc 1 1064 1 is_stmt 1 view -0
1573 .cfi_startproc
1574 @ args = 4, pretend = 0, frame = 0
1575 @ frame_needed = 0, uses_anonymous_args = 0
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1576 .loc 1 1064 1 is_stmt 0 view .LVU478
1577 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
1578 .LCFI19:
1579 .cfi_def_cfa_offset 32
1580 .cfi_offset 4, -32
1581 .cfi_offset 5, -28
1582 .cfi_offset 6, -24
1583 .cfi_offset 7, -20
1584 .cfi_offset 8, -16
1585 .cfi_offset 9, -12
1586 .cfi_offset 10, -8
1587 .cfi_offset 14, -4
1588 0004 82B0 sub sp, sp, #8
1589 .LCFI20:
1590 .cfi_def_cfa_offset 40
1591 0006 0F46 mov r7, r1
1592 0008 0A9E ldr r6, [sp, #40]
1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1593 .loc 1 1065 3 is_stmt 1 view .LVU479
1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1594 .loc 1 1067 3 view .LVU480
1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1595 .loc 1 1067 11 is_stmt 0 view .LVU481
1596 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
1597 .LVL87:
1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1598 .loc 1 1067 11 view .LVU482
1599 000e C9B2 uxtb r1, r1
1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1600 .loc 1 1067 6 view .LVU483
1601 0010 2029 cmp r1, #32
1602 0012 40F0A380 bne .L142
1603 0016 0446 mov r4, r0
1604 0018 9046 mov r8, r2
1605 001a 9946 mov r9, r3
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1606 .loc 1 1070 5 is_stmt 1 view .LVU484
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1607 .loc 1 1070 5 view .LVU485
1608 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
1609 .LVL88:
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1610 .loc 1 1070 5 is_stmt 0 view .LVU486
1611 0020 012B cmp r3, #1
1612 0022 00F09F80 beq .L143
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1613 .loc 1 1070 5 is_stmt 1 discriminator 2 view .LVU487
1614 0026 4FF0010A mov r10, #1
1615 002a 80F840A0 strb r10, [r0, #64]
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1616 .loc 1 1070 5 discriminator 2 view .LVU488
1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 152
1617 .loc 1 1073 5 discriminator 2 view .LVU489
1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1618 .loc 1 1073 17 is_stmt 0 discriminator 2 view .LVU490
1619 002e FFF7FEFF bl HAL_GetTick
1620 .LVL89:
1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1621 .loc 1 1073 17 discriminator 2 view .LVU491
1622 0032 0546 mov r5, r0
1623 .LVL90:
1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1624 .loc 1 1075 5 is_stmt 1 discriminator 2 view .LVU492
1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1625 .loc 1 1075 9 is_stmt 0 discriminator 2 view .LVU493
1626 0034 0090 str r0, [sp]
1627 0036 1923 movs r3, #25
1628 0038 5246 mov r2, r10
1629 003a 4FF40041 mov r1, #32768
1630 003e 2046 mov r0, r4
1631 .LVL91:
1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1632 .loc 1 1075 9 discriminator 2 view .LVU494
1633 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1634 .LVL92:
1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1635 .loc 1 1075 8 discriminator 2 view .LVU495
1636 0044 0028 cmp r0, #0
1637 0046 40F08F80 bne .L144
1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1638 .loc 1 1080 5 is_stmt 1 view .LVU496
1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1639 .loc 1 1080 21 is_stmt 0 view .LVU497
1640 004a 2123 movs r3, #33
1641 004c 84F84130 strb r3, [r4, #65]
1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1642 .loc 1 1081 5 is_stmt 1 view .LVU498
1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1643 .loc 1 1081 21 is_stmt 0 view .LVU499
1644 0050 1023 movs r3, #16
1645 0052 84F84230 strb r3, [r4, #66]
1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1646 .loc 1 1082 5 is_stmt 1 view .LVU500
1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1647 .loc 1 1082 21 is_stmt 0 view .LVU501
1648 0056 0023 movs r3, #0
1649 0058 6364 str r3, [r4, #68]
1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1650 .loc 1 1085 5 is_stmt 1 view .LVU502
1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1651 .loc 1 1085 21 is_stmt 0 view .LVU503
1652 005a C4F82480 str r8, [r4, #36]
1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1653 .loc 1 1086 5 is_stmt 1 view .LVU504
1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1654 .loc 1 1086 21 is_stmt 0 view .LVU505
1655 005e A4F82A90 strh r9, [r4, #42] @ movhi
1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1656 .loc 1 1087 5 is_stmt 1 view .LVU506
ARM GAS /tmp/ccEimIdZ.s page 153
1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1657 .loc 1 1087 21 is_stmt 0 view .LVU507
1658 0062 6363 str r3, [r4, #52]
1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1659 .loc 1 1091 5 is_stmt 1 view .LVU508
1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1660 .loc 1 1091 13 is_stmt 0 view .LVU509
1661 0064 638D ldrh r3, [r4, #42]
1662 0066 9BB2 uxth r3, r3
1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1663 .loc 1 1091 8 view .LVU510
1664 0068 FF2B cmp r3, #255
1665 006a 0AD9 bls .L136
1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1666 .loc 1 1093 7 is_stmt 1 view .LVU511
1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1667 .loc 1 1093 22 is_stmt 0 view .LVU512
1668 006c FF22 movs r2, #255
1669 006e 2285 strh r2, [r4, #40] @ movhi
1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1670 .loc 1 1094 7 is_stmt 1 view .LVU513
1671 0070 414B ldr r3, .L150
1672 0072 0093 str r3, [sp]
1673 0074 4FF08073 mov r3, #16777216
1674 0078 3946 mov r1, r7
1675 007a 2046 mov r0, r4
1676 007c FFF7FEFF bl I2C_TransferConfig
1677 .LVL93:
1678 0080 18E0 b .L138
1679 .L136:
1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1680 .loc 1 1098 7 view .LVU514
1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1681 .loc 1 1098 28 is_stmt 0 view .LVU515
1682 0082 628D ldrh r2, [r4, #42]
1683 0084 92B2 uxth r2, r2
1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
1684 .loc 1 1098 22 view .LVU516
1685 0086 2285 strh r2, [r4, #40] @ movhi
1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1686 .loc 1 1099 7 is_stmt 1 view .LVU517
1687 0088 3B4B ldr r3, .L150
1688 008a 0093 str r3, [sp]
1689 008c 4FF00073 mov r3, #33554432
1690 0090 D2B2 uxtb r2, r2
1691 0092 3946 mov r1, r7
1692 0094 2046 mov r0, r4
1693 0096 FFF7FEFF bl I2C_TransferConfig
1694 .LVL94:
1695 009a 0BE0 b .L138
1696 .L140:
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1697 .loc 1 1133 11 view .LVU518
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1698 .loc 1 1133 32 is_stmt 0 view .LVU519
1699 009c 628D ldrh r2, [r4, #42]
1700 009e 92B2 uxth r2, r2
ARM GAS /tmp/ccEimIdZ.s page 154
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
1701 .loc 1 1133 26 view .LVU520
1702 00a0 2285 strh r2, [r4, #40] @ movhi
1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1703 .loc 1 1134 11 is_stmt 1 view .LVU521
1704 00a2 0023 movs r3, #0
1705 00a4 0093 str r3, [sp]
1706 00a6 4FF00073 mov r3, #33554432
1707 00aa D2B2 uxtb r2, r2
1708 00ac 3946 mov r1, r7
1709 00ae 2046 mov r0, r4
1710 00b0 FFF7FEFF bl I2C_TransferConfig
1711 .LVL95:
1712 .L138:
1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1713 .loc 1 1102 11 view .LVU522
1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1714 .loc 1 1102 16 is_stmt 0 view .LVU523
1715 00b4 638D ldrh r3, [r4, #42]
1716 00b6 9BB2 uxth r3, r3
1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1717 .loc 1 1102 11 view .LVU524
1718 00b8 002B cmp r3, #0
1719 00ba 33D0 beq .L149
1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1720 .loc 1 1105 7 is_stmt 1 view .LVU525
1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1721 .loc 1 1105 11 is_stmt 0 view .LVU526
1722 00bc 2A46 mov r2, r5
1723 00be 3146 mov r1, r6
1724 00c0 2046 mov r0, r4
1725 00c2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1726 .LVL96:
1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1727 .loc 1 1105 10 view .LVU527
1728 00c6 0028 cmp r0, #0
1729 00c8 50D1 bne .L145
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1730 .loc 1 1110 7 is_stmt 1 view .LVU528
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1731 .loc 1 1110 35 is_stmt 0 view .LVU529
1732 00ca 626A ldr r2, [r4, #36]
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1733 .loc 1 1110 11 view .LVU530
1734 00cc 2368 ldr r3, [r4]
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1735 .loc 1 1110 30 view .LVU531
1736 00ce 1278 ldrb r2, [r2] @ zero_extendqisi2
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1737 .loc 1 1110 28 view .LVU532
1738 00d0 9A62 str r2, [r3, #40]
1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1739 .loc 1 1113 7 is_stmt 1 view .LVU533
1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1740 .loc 1 1113 11 is_stmt 0 view .LVU534
1741 00d2 636A ldr r3, [r4, #36]
1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 155
1742 .loc 1 1113 21 view .LVU535
1743 00d4 0133 adds r3, r3, #1
1744 00d6 6362 str r3, [r4, #36]
1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1745 .loc 1 1115 7 is_stmt 1 view .LVU536
1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1746 .loc 1 1115 11 is_stmt 0 view .LVU537
1747 00d8 638D ldrh r3, [r4, #42]
1748 00da 9BB2 uxth r3, r3
1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
1749 .loc 1 1115 22 view .LVU538
1750 00dc 013B subs r3, r3, #1
1751 00de 9BB2 uxth r3, r3
1752 00e0 6385 strh r3, [r4, #42] @ movhi
1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1753 .loc 1 1116 7 is_stmt 1 view .LVU539
1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1754 .loc 1 1116 11 is_stmt 0 view .LVU540
1755 00e2 238D ldrh r3, [r4, #40]
1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1756 .loc 1 1116 21 view .LVU541
1757 00e4 013B subs r3, r3, #1
1758 00e6 9BB2 uxth r3, r3
1759 00e8 2385 strh r3, [r4, #40] @ movhi
1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1760 .loc 1 1118 7 is_stmt 1 view .LVU542
1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1761 .loc 1 1118 16 is_stmt 0 view .LVU543
1762 00ea 628D ldrh r2, [r4, #42]
1763 00ec 92B2 uxth r2, r2
1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1764 .loc 1 1118 10 view .LVU544
1765 00ee 002A cmp r2, #0
1766 00f0 E0D0 beq .L138
1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1767 .loc 1 1118 35 discriminator 1 view .LVU545
1768 00f2 002B cmp r3, #0
1769 00f4 DED1 bne .L138
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1770 .loc 1 1121 9 is_stmt 1 view .LVU546
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1771 .loc 1 1121 13 is_stmt 0 view .LVU547
1772 00f6 0095 str r5, [sp]
1773 00f8 3346 mov r3, r6
1774 00fa 0022 movs r2, #0
1775 00fc 8021 movs r1, #128
1776 00fe 2046 mov r0, r4
1777 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1778 .LVL97:
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1779 .loc 1 1121 12 view .LVU548
1780 0104 A0BB cbnz r0, .L146
1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1781 .loc 1 1126 9 is_stmt 1 view .LVU549
1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1782 .loc 1 1126 17 is_stmt 0 view .LVU550
1783 0106 638D ldrh r3, [r4, #42]
ARM GAS /tmp/ccEimIdZ.s page 156
1784 0108 9BB2 uxth r3, r3
1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1785 .loc 1 1126 12 view .LVU551
1786 010a FF2B cmp r3, #255
1787 010c C6D9 bls .L140
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1788 .loc 1 1128 11 is_stmt 1 view .LVU552
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
1789 .loc 1 1128 26 is_stmt 0 view .LVU553
1790 010e FF22 movs r2, #255
1791 0110 2285 strh r2, [r4, #40] @ movhi
1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1792 .loc 1 1129 11 is_stmt 1 view .LVU554
1793 0112 0023 movs r3, #0
1794 0114 0093 str r3, [sp]
1795 0116 4FF08073 mov r3, #16777216
1796 011a 3946 mov r1, r7
1797 011c 2046 mov r0, r4
1798 011e FFF7FEFF bl I2C_TransferConfig
1799 .LVL98:
1800 0122 C7E7 b .L138
1801 .L149:
1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1802 .loc 1 1141 5 view .LVU555
1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1803 .loc 1 1141 9 is_stmt 0 view .LVU556
1804 0124 2A46 mov r2, r5
1805 0126 3146 mov r1, r6
1806 0128 2046 mov r0, r4
1807 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
1808 .LVL99:
1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1809 .loc 1 1141 8 view .LVU557
1810 012e 08BB cbnz r0, .L147
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1811 .loc 1 1147 5 is_stmt 1 view .LVU558
1812 0130 2368 ldr r3, [r4]
1813 0132 2022 movs r2, #32
1814 0134 DA61 str r2, [r3, #28]
1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1815 .loc 1 1150 5 view .LVU559
1816 0136 2168 ldr r1, [r4]
1817 0138 4B68 ldr r3, [r1, #4]
1818 013a 23F0FF73 bic r3, r3, #33423360
1819 013e 23F48B33 bic r3, r3, #71168
1820 0142 23F4FF73 bic r3, r3, #510
1821 0146 23F00103 bic r3, r3, #1
1822 014a 4B60 str r3, [r1, #4]
1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1823 .loc 1 1152 5 view .LVU560
1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1824 .loc 1 1152 17 is_stmt 0 view .LVU561
1825 014c 84F84120 strb r2, [r4, #65]
1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1826 .loc 1 1153 5 is_stmt 1 view .LVU562
1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1827 .loc 1 1153 17 is_stmt 0 view .LVU563
ARM GAS /tmp/ccEimIdZ.s page 157
1828 0150 0023 movs r3, #0
1829 0152 84F84230 strb r3, [r4, #66]
1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1830 .loc 1 1156 5 is_stmt 1 view .LVU564
1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1831 .loc 1 1156 5 view .LVU565
1832 0156 84F84030 strb r3, [r4, #64]
1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1833 .loc 1 1156 5 view .LVU566
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1834 .loc 1 1158 5 view .LVU567
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1835 .loc 1 1158 12 is_stmt 0 view .LVU568
1836 015a 00E0 b .L135
1837 .LVL100:
1838 .L142:
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1839 .loc 1 1162 12 view .LVU569
1840 015c 0220 movs r0, #2
1841 .LVL101:
1842 .L135:
1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1843 .loc 1 1164 1 view .LVU570
1844 015e 02B0 add sp, sp, #8
1845 .LCFI21:
1846 .cfi_remember_state
1847 .cfi_def_cfa_offset 32
1848 @ sp needed
1849 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
1850 .LVL102:
1851 .L143:
1852 .LCFI22:
1853 .cfi_restore_state
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1854 .loc 1 1070 5 view .LVU571
1855 0164 0220 movs r0, #2
1856 .LVL103:
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1857 .loc 1 1070 5 view .LVU572
1858 0166 FAE7 b .L135
1859 .LVL104:
1860 .L144:
1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1861 .loc 1 1077 14 view .LVU573
1862 0168 0120 movs r0, #1
1863 016a F8E7 b .L135
1864 .L145:
1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1865 .loc 1 1107 16 view .LVU574
1866 016c 0120 movs r0, #1
1867 016e F6E7 b .L135
1868 .L146:
1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1869 .loc 1 1123 18 view .LVU575
1870 0170 0120 movs r0, #1
1871 0172 F4E7 b .L135
1872 .L147:
ARM GAS /tmp/ccEimIdZ.s page 158
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1873 .loc 1 1143 14 view .LVU576
1874 0174 0120 movs r0, #1
1875 0176 F2E7 b .L135
1876 .L151:
1877 .align 2
1878 .L150:
1879 0178 00200080 .word -2147475456
1880 .cfi_endproc
1881 .LFE145:
1883 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
1884 .align 1
1885 .global HAL_I2C_Master_Receive
1886 .syntax unified
1887 .thumb
1888 .thumb_func
1889 .fpu fpv5-d16
1891 HAL_I2C_Master_Receive:
1892 .LVL105:
1893 .LFB146:
1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1894 .loc 1 1178 1 is_stmt 1 view -0
1895 .cfi_startproc
1896 @ args = 4, pretend = 0, frame = 0
1897 @ frame_needed = 0, uses_anonymous_args = 0
1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
1898 .loc 1 1178 1 is_stmt 0 view .LVU578
1899 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
1900 .LCFI23:
1901 .cfi_def_cfa_offset 32
1902 .cfi_offset 4, -32
1903 .cfi_offset 5, -28
1904 .cfi_offset 6, -24
1905 .cfi_offset 7, -20
1906 .cfi_offset 8, -16
1907 .cfi_offset 9, -12
1908 .cfi_offset 10, -8
1909 .cfi_offset 14, -4
1910 0004 82B0 sub sp, sp, #8
1911 .LCFI24:
1912 .cfi_def_cfa_offset 40
1913 0006 0F46 mov r7, r1
1914 0008 0A9E ldr r6, [sp, #40]
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1915 .loc 1 1179 3 is_stmt 1 view .LVU579
1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1916 .loc 1 1181 3 view .LVU580
1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1917 .loc 1 1181 11 is_stmt 0 view .LVU581
1918 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
1919 .LVL106:
1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1920 .loc 1 1181 11 view .LVU582
1921 000e C9B2 uxtb r1, r1
1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1922 .loc 1 1181 6 view .LVU583
1923 0010 2029 cmp r1, #32
ARM GAS /tmp/ccEimIdZ.s page 159
1924 0012 40F0A280 bne .L160
1925 0016 0446 mov r4, r0
1926 0018 9046 mov r8, r2
1927 001a 9946 mov r9, r3
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1928 .loc 1 1184 5 is_stmt 1 view .LVU584
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1929 .loc 1 1184 5 view .LVU585
1930 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
1931 .LVL107:
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1932 .loc 1 1184 5 is_stmt 0 view .LVU586
1933 0020 012B cmp r3, #1
1934 0022 00F09E80 beq .L161
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1935 .loc 1 1184 5 is_stmt 1 discriminator 2 view .LVU587
1936 0026 4FF0010A mov r10, #1
1937 002a 80F840A0 strb r10, [r0, #64]
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1938 .loc 1 1184 5 discriminator 2 view .LVU588
1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1939 .loc 1 1187 5 discriminator 2 view .LVU589
1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1940 .loc 1 1187 17 is_stmt 0 discriminator 2 view .LVU590
1941 002e FFF7FEFF bl HAL_GetTick
1942 .LVL108:
1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1943 .loc 1 1187 17 discriminator 2 view .LVU591
1944 0032 0546 mov r5, r0
1945 .LVL109:
1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1946 .loc 1 1189 5 is_stmt 1 discriminator 2 view .LVU592
1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1947 .loc 1 1189 9 is_stmt 0 discriminator 2 view .LVU593
1948 0034 0090 str r0, [sp]
1949 0036 1923 movs r3, #25
1950 0038 5246 mov r2, r10
1951 003a 4FF40041 mov r1, #32768
1952 003e 2046 mov r0, r4
1953 .LVL110:
1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1954 .loc 1 1189 9 discriminator 2 view .LVU594
1955 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1956 .LVL111:
1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1957 .loc 1 1189 8 discriminator 2 view .LVU595
1958 0044 0028 cmp r0, #0
1959 0046 40F08E80 bne .L162
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1960 .loc 1 1194 5 is_stmt 1 view .LVU596
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1961 .loc 1 1194 21 is_stmt 0 view .LVU597
1962 004a 2223 movs r3, #34
1963 004c 84F84130 strb r3, [r4, #65]
1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1964 .loc 1 1195 5 is_stmt 1 view .LVU598
1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS /tmp/ccEimIdZ.s page 160
1965 .loc 1 1195 21 is_stmt 0 view .LVU599
1966 0050 1023 movs r3, #16
1967 0052 84F84230 strb r3, [r4, #66]
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1968 .loc 1 1196 5 is_stmt 1 view .LVU600
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1969 .loc 1 1196 21 is_stmt 0 view .LVU601
1970 0056 0023 movs r3, #0
1971 0058 6364 str r3, [r4, #68]
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1972 .loc 1 1199 5 is_stmt 1 view .LVU602
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
1973 .loc 1 1199 21 is_stmt 0 view .LVU603
1974 005a C4F82480 str r8, [r4, #36]
1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1975 .loc 1 1200 5 is_stmt 1 view .LVU604
1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
1976 .loc 1 1200 21 is_stmt 0 view .LVU605
1977 005e A4F82A90 strh r9, [r4, #42] @ movhi
1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1978 .loc 1 1201 5 is_stmt 1 view .LVU606
1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
1979 .loc 1 1201 21 is_stmt 0 view .LVU607
1980 0062 6363 str r3, [r4, #52]
1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1981 .loc 1 1205 5 is_stmt 1 view .LVU608
1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1982 .loc 1 1205 13 is_stmt 0 view .LVU609
1983 0064 638D ldrh r3, [r4, #42]
1984 0066 9BB2 uxth r3, r3
1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
1985 .loc 1 1205 8 view .LVU610
1986 0068 FF2B cmp r3, #255
1987 006a 0AD9 bls .L154
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1988 .loc 1 1207 7 is_stmt 1 view .LVU611
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
1989 .loc 1 1207 22 is_stmt 0 view .LVU612
1990 006c FF22 movs r2, #255
1991 006e 2285 strh r2, [r4, #40] @ movhi
1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
1992 .loc 1 1208 7 is_stmt 1 view .LVU613
1993 0070 414B ldr r3, .L168
1994 0072 0093 str r3, [sp]
1995 0074 4FF08073 mov r3, #16777216
1996 0078 3946 mov r1, r7
1997 007a 2046 mov r0, r4
1998 007c FFF7FEFF bl I2C_TransferConfig
1999 .LVL112:
2000 0080 18E0 b .L156
2001 .L154:
1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
2002 .loc 1 1212 7 view .LVU614
1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
2003 .loc 1 1212 28 is_stmt 0 view .LVU615
2004 0082 628D ldrh r2, [r4, #42]
2005 0084 92B2 uxth r2, r2
ARM GAS /tmp/ccEimIdZ.s page 161
1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
2006 .loc 1 1212 22 view .LVU616
2007 0086 2285 strh r2, [r4, #40] @ movhi
1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2008 .loc 1 1213 7 is_stmt 1 view .LVU617
2009 0088 3B4B ldr r3, .L168
2010 008a 0093 str r3, [sp]
2011 008c 4FF00073 mov r3, #33554432
2012 0090 D2B2 uxtb r2, r2
2013 0092 3946 mov r1, r7
2014 0094 2046 mov r0, r4
2015 0096 FFF7FEFF bl I2C_TransferConfig
2016 .LVL113:
2017 009a 0BE0 b .L156
2018 .L158:
1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
2019 .loc 1 1248 11 view .LVU618
1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
2020 .loc 1 1248 32 is_stmt 0 view .LVU619
2021 009c 628D ldrh r2, [r4, #42]
2022 009e 92B2 uxth r2, r2
1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
2023 .loc 1 1248 26 view .LVU620
2024 00a0 2285 strh r2, [r4, #40] @ movhi
1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2025 .loc 1 1249 11 is_stmt 1 view .LVU621
2026 00a2 0023 movs r3, #0
2027 00a4 0093 str r3, [sp]
2028 00a6 4FF00073 mov r3, #33554432
2029 00aa D2B2 uxtb r2, r2
2030 00ac 3946 mov r1, r7
2031 00ae 2046 mov r0, r4
2032 00b0 FFF7FEFF bl I2C_TransferConfig
2033 .LVL114:
2034 .L156:
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2035 .loc 1 1216 11 view .LVU622
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2036 .loc 1 1216 16 is_stmt 0 view .LVU623
2037 00b4 638D ldrh r3, [r4, #42]
2038 00b6 9BB2 uxth r3, r3
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2039 .loc 1 1216 11 view .LVU624
2040 00b8 002B cmp r3, #0
2041 00ba 32D0 beq .L167
1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2042 .loc 1 1219 7 is_stmt 1 view .LVU625
1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2043 .loc 1 1219 11 is_stmt 0 view .LVU626
2044 00bc 2A46 mov r2, r5
2045 00be 3146 mov r1, r6
2046 00c0 2046 mov r0, r4
2047 00c2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2048 .LVL115:
1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2049 .loc 1 1219 10 view .LVU627
2050 00c6 0028 cmp r0, #0
ARM GAS /tmp/ccEimIdZ.s page 162
2051 00c8 4FD1 bne .L163
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2052 .loc 1 1225 7 is_stmt 1 view .LVU628
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2053 .loc 1 1225 38 is_stmt 0 view .LVU629
2054 00ca 2368 ldr r3, [r4]
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2055 .loc 1 1225 48 view .LVU630
2056 00cc 5A6A ldr r2, [r3, #36]
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2057 .loc 1 1225 12 view .LVU631
2058 00ce 636A ldr r3, [r4, #36]
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2059 .loc 1 1225 23 view .LVU632
2060 00d0 1A70 strb r2, [r3]
1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2061 .loc 1 1228 7 is_stmt 1 view .LVU633
1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2062 .loc 1 1228 11 is_stmt 0 view .LVU634
2063 00d2 636A ldr r3, [r4, #36]
1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2064 .loc 1 1228 21 view .LVU635
2065 00d4 0133 adds r3, r3, #1
2066 00d6 6362 str r3, [r4, #36]
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2067 .loc 1 1230 7 is_stmt 1 view .LVU636
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2068 .loc 1 1230 11 is_stmt 0 view .LVU637
2069 00d8 228D ldrh r2, [r4, #40]
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
2070 .loc 1 1230 21 view .LVU638
2071 00da 013A subs r2, r2, #1
2072 00dc 92B2 uxth r2, r2
2073 00de 2285 strh r2, [r4, #40] @ movhi
1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2074 .loc 1 1231 7 is_stmt 1 view .LVU639
1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2075 .loc 1 1231 11 is_stmt 0 view .LVU640
2076 00e0 638D ldrh r3, [r4, #42]
2077 00e2 9BB2 uxth r3, r3
1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2078 .loc 1 1231 22 view .LVU641
2079 00e4 013B subs r3, r3, #1
2080 00e6 9BB2 uxth r3, r3
2081 00e8 6385 strh r3, [r4, #42] @ movhi
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2082 .loc 1 1233 7 is_stmt 1 view .LVU642
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2083 .loc 1 1233 16 is_stmt 0 view .LVU643
2084 00ea 638D ldrh r3, [r4, #42]
2085 00ec 9BB2 uxth r3, r3
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2086 .loc 1 1233 10 view .LVU644
2087 00ee 002B cmp r3, #0
2088 00f0 E0D0 beq .L156
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2089 .loc 1 1233 35 discriminator 1 view .LVU645
ARM GAS /tmp/ccEimIdZ.s page 163
2090 00f2 002A cmp r2, #0
2091 00f4 DED1 bne .L156
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2092 .loc 1 1236 9 is_stmt 1 view .LVU646
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2093 .loc 1 1236 13 is_stmt 0 view .LVU647
2094 00f6 0095 str r5, [sp]
2095 00f8 3346 mov r3, r6
2096 00fa 8021 movs r1, #128
2097 00fc 2046 mov r0, r4
2098 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2099 .LVL116:
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2100 .loc 1 1236 12 view .LVU648
2101 0102 A0BB cbnz r0, .L164
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2102 .loc 1 1241 9 is_stmt 1 view .LVU649
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2103 .loc 1 1241 17 is_stmt 0 view .LVU650
2104 0104 638D ldrh r3, [r4, #42]
2105 0106 9BB2 uxth r3, r3
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2106 .loc 1 1241 12 view .LVU651
2107 0108 FF2B cmp r3, #255
2108 010a C7D9 bls .L158
1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
2109 .loc 1 1243 11 is_stmt 1 view .LVU652
1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
2110 .loc 1 1243 26 is_stmt 0 view .LVU653
2111 010c FF22 movs r2, #255
2112 010e 2285 strh r2, [r4, #40] @ movhi
1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2113 .loc 1 1244 11 is_stmt 1 view .LVU654
2114 0110 0023 movs r3, #0
2115 0112 0093 str r3, [sp]
2116 0114 4FF08073 mov r3, #16777216
2117 0118 3946 mov r1, r7
2118 011a 2046 mov r0, r4
2119 011c FFF7FEFF bl I2C_TransferConfig
2120 .LVL117:
2121 0120 C8E7 b .L156
2122 .L167:
1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2123 .loc 1 1256 5 view .LVU655
1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2124 .loc 1 1256 9 is_stmt 0 view .LVU656
2125 0122 2A46 mov r2, r5
2126 0124 3146 mov r1, r6
2127 0126 2046 mov r0, r4
2128 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2129 .LVL118:
1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2130 .loc 1 1256 8 view .LVU657
2131 012c 08BB cbnz r0, .L165
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2132 .loc 1 1262 5 is_stmt 1 view .LVU658
2133 012e 2368 ldr r3, [r4]
ARM GAS /tmp/ccEimIdZ.s page 164
2134 0130 2022 movs r2, #32
2135 0132 DA61 str r2, [r3, #28]
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2136 .loc 1 1265 5 view .LVU659
2137 0134 2168 ldr r1, [r4]
2138 0136 4B68 ldr r3, [r1, #4]
2139 0138 23F0FF73 bic r3, r3, #33423360
2140 013c 23F48B33 bic r3, r3, #71168
2141 0140 23F4FF73 bic r3, r3, #510
2142 0144 23F00103 bic r3, r3, #1
2143 0148 4B60 str r3, [r1, #4]
1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2144 .loc 1 1267 5 view .LVU660
1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2145 .loc 1 1267 17 is_stmt 0 view .LVU661
2146 014a 84F84120 strb r2, [r4, #65]
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2147 .loc 1 1268 5 is_stmt 1 view .LVU662
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2148 .loc 1 1268 17 is_stmt 0 view .LVU663
2149 014e 0023 movs r3, #0
2150 0150 84F84230 strb r3, [r4, #66]
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2151 .loc 1 1271 5 is_stmt 1 view .LVU664
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2152 .loc 1 1271 5 view .LVU665
2153 0154 84F84030 strb r3, [r4, #64]
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2154 .loc 1 1271 5 view .LVU666
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2155 .loc 1 1273 5 view .LVU667
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2156 .loc 1 1273 12 is_stmt 0 view .LVU668
2157 0158 00E0 b .L153
2158 .LVL119:
2159 .L160:
1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2160 .loc 1 1277 12 view .LVU669
2161 015a 0220 movs r0, #2
2162 .LVL120:
2163 .L153:
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2164 .loc 1 1279 1 view .LVU670
2165 015c 02B0 add sp, sp, #8
2166 .LCFI25:
2167 .cfi_remember_state
2168 .cfi_def_cfa_offset 32
2169 @ sp needed
2170 015e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2171 .LVL121:
2172 .L161:
2173 .LCFI26:
2174 .cfi_restore_state
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2175 .loc 1 1184 5 view .LVU671
2176 0162 0220 movs r0, #2
2177 .LVL122:
ARM GAS /tmp/ccEimIdZ.s page 165
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2178 .loc 1 1184 5 view .LVU672
2179 0164 FAE7 b .L153
2180 .LVL123:
2181 .L162:
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2182 .loc 1 1191 14 view .LVU673
2183 0166 0120 movs r0, #1
2184 0168 F8E7 b .L153
2185 .L163:
1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2186 .loc 1 1221 16 view .LVU674
2187 016a 0120 movs r0, #1
2188 016c F6E7 b .L153
2189 .L164:
1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2190 .loc 1 1238 18 view .LVU675
2191 016e 0120 movs r0, #1
2192 0170 F4E7 b .L153
2193 .L165:
1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2194 .loc 1 1258 14 view .LVU676
2195 0172 0120 movs r0, #1
2196 0174 F2E7 b .L153
2197 .L169:
2198 0176 00BF .align 2
2199 .L168:
2200 0178 00240080 .word -2147474432
2201 .cfi_endproc
2202 .LFE146:
2204 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
2205 .align 1
2206 .global HAL_I2C_Slave_Transmit
2207 .syntax unified
2208 .thumb
2209 .thumb_func
2210 .fpu fpv5-d16
2212 HAL_I2C_Slave_Transmit:
2213 .LVL124:
2214 .LFB147:
1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2215 .loc 1 1291 1 is_stmt 1 view -0
2216 .cfi_startproc
2217 @ args = 0, pretend = 0, frame = 0
2218 @ frame_needed = 0, uses_anonymous_args = 0
1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2219 .loc 1 1291 1 is_stmt 0 view .LVU678
2220 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2221 .LCFI27:
2222 .cfi_def_cfa_offset 24
2223 .cfi_offset 4, -24
2224 .cfi_offset 5, -20
2225 .cfi_offset 6, -16
2226 .cfi_offset 7, -12
2227 .cfi_offset 8, -8
2228 .cfi_offset 14, -4
2229 0004 82B0 sub sp, sp, #8
ARM GAS /tmp/ccEimIdZ.s page 166
2230 .LCFI28:
2231 .cfi_def_cfa_offset 32
2232 0006 1D46 mov r5, r3
1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2233 .loc 1 1292 3 is_stmt 1 view .LVU679
1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2234 .loc 1 1294 3 view .LVU680
1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2235 .loc 1 1294 11 is_stmt 0 view .LVU681
2236 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2237 .LVL125:
1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2238 .loc 1 1294 11 view .LVU682
2239 000c DBB2 uxtb r3, r3
1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2240 .loc 1 1294 6 view .LVU683
2241 000e 202B cmp r3, #32
2242 0010 40F0B680 bne .L181
2243 0014 0446 mov r4, r0
2244 0016 0F46 mov r7, r1
2245 0018 9046 mov r8, r2
1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2246 .loc 1 1296 5 is_stmt 1 view .LVU684
1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2247 .loc 1 1296 8 is_stmt 0 view .LVU685
2248 001a 002A cmp r2, #0
2249 001c 18BF it ne
2250 001e 0029 cmpne r1, #0
2251 0020 50D0 beq .L185
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2252 .loc 1 1302 5 is_stmt 1 view .LVU686
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2253 .loc 1 1302 5 view .LVU687
2254 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2255 0026 012B cmp r3, #1
2256 0028 00F0AE80 beq .L182
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2257 .loc 1 1302 5 discriminator 2 view .LVU688
2258 002c 0123 movs r3, #1
2259 002e 80F84030 strb r3, [r0, #64]
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2260 .loc 1 1302 5 discriminator 2 view .LVU689
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2261 .loc 1 1305 5 discriminator 2 view .LVU690
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2262 .loc 1 1305 17 is_stmt 0 discriminator 2 view .LVU691
2263 0032 FFF7FEFF bl HAL_GetTick
2264 .LVL126:
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2265 .loc 1 1305 17 discriminator 2 view .LVU692
2266 0036 0646 mov r6, r0
2267 .LVL127:
1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2268 .loc 1 1307 5 is_stmt 1 discriminator 2 view .LVU693
1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2269 .loc 1 1307 21 is_stmt 0 discriminator 2 view .LVU694
2270 0038 2123 movs r3, #33
ARM GAS /tmp/ccEimIdZ.s page 167
2271 003a 84F84130 strb r3, [r4, #65]
1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2272 .loc 1 1308 5 is_stmt 1 discriminator 2 view .LVU695
1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2273 .loc 1 1308 21 is_stmt 0 discriminator 2 view .LVU696
2274 003e 2023 movs r3, #32
2275 0040 84F84230 strb r3, [r4, #66]
1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2276 .loc 1 1309 5 is_stmt 1 discriminator 2 view .LVU697
1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2277 .loc 1 1309 21 is_stmt 0 discriminator 2 view .LVU698
2278 0044 0022 movs r2, #0
2279 0046 6264 str r2, [r4, #68]
1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2280 .loc 1 1312 5 is_stmt 1 discriminator 2 view .LVU699
1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2281 .loc 1 1312 21 is_stmt 0 discriminator 2 view .LVU700
2282 0048 6762 str r7, [r4, #36]
1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2283 .loc 1 1313 5 is_stmt 1 discriminator 2 view .LVU701
1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2284 .loc 1 1313 21 is_stmt 0 discriminator 2 view .LVU702
2285 004a A4F82A80 strh r8, [r4, #42] @ movhi
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2286 .loc 1 1314 5 is_stmt 1 discriminator 2 view .LVU703
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2287 .loc 1 1314 21 is_stmt 0 discriminator 2 view .LVU704
2288 004e 6263 str r2, [r4, #52]
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2289 .loc 1 1317 5 is_stmt 1 discriminator 2 view .LVU705
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2290 .loc 1 1317 9 is_stmt 0 discriminator 2 view .LVU706
2291 0050 2168 ldr r1, [r4]
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2292 .loc 1 1317 25 discriminator 2 view .LVU707
2293 0052 4B68 ldr r3, [r1, #4]
2294 0054 23F40043 bic r3, r3, #32768
2295 0058 4B60 str r3, [r1, #4]
1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2296 .loc 1 1320 5 is_stmt 1 discriminator 2 view .LVU708
1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2297 .loc 1 1320 9 is_stmt 0 discriminator 2 view .LVU709
2298 005a 0090 str r0, [sp]
2299 005c 2B46 mov r3, r5
2300 005e 0821 movs r1, #8
2301 0060 2046 mov r0, r4
2302 .LVL128:
1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2303 .loc 1 1320 9 discriminator 2 view .LVU710
2304 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2305 .LVL129:
1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2306 .loc 1 1320 8 discriminator 2 view .LVU711
2307 0066 0028 cmp r0, #0
2308 0068 31D1 bne .L186
1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2309 .loc 1 1328 5 is_stmt 1 view .LVU712
ARM GAS /tmp/ccEimIdZ.s page 168
2310 006a 2368 ldr r3, [r4]
2311 006c 0822 movs r2, #8
2312 006e DA61 str r2, [r3, #28]
1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2313 .loc 1 1331 5 view .LVU713
1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2314 .loc 1 1331 19 is_stmt 0 view .LVU714
2315 0070 E368 ldr r3, [r4, #12]
1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2316 .loc 1 1331 8 view .LVU715
2317 0072 022B cmp r3, #2
2318 0074 32D0 beq .L187
2319 .L174:
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2320 .loc 1 1346 5 is_stmt 1 view .LVU716
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2321 .loc 1 1346 9 is_stmt 0 view .LVU717
2322 0076 0096 str r6, [sp]
2323 0078 2B46 mov r3, r5
2324 007a 0022 movs r2, #0
2325 007c 4FF48031 mov r1, #65536
2326 0080 2046 mov r0, r4
2327 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2328 .LVL130:
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2329 .loc 1 1346 8 view .LVU718
2330 0086 0028 cmp r0, #0
2331 0088 3BD1 bne .L188
2332 .L176:
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2333 .loc 1 1353 11 is_stmt 1 view .LVU719
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2334 .loc 1 1353 16 is_stmt 0 view .LVU720
2335 008a 638D ldrh r3, [r4, #42]
2336 008c 9BB2 uxth r3, r3
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2337 .loc 1 1353 11 view .LVU721
2338 008e 002B cmp r3, #0
2339 0090 45D0 beq .L189
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2340 .loc 1 1356 7 is_stmt 1 view .LVU722
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2341 .loc 1 1356 11 is_stmt 0 view .LVU723
2342 0092 3246 mov r2, r6
2343 0094 2946 mov r1, r5
2344 0096 2046 mov r0, r4
2345 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2346 .LVL131:
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2347 .loc 1 1356 10 view .LVU724
2348 009c 0028 cmp r0, #0
2349 009e 37D1 bne .L190
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2350 .loc 1 1364 7 is_stmt 1 view .LVU725
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2351 .loc 1 1364 35 is_stmt 0 view .LVU726
2352 00a0 626A ldr r2, [r4, #36]
ARM GAS /tmp/ccEimIdZ.s page 169
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2353 .loc 1 1364 11 view .LVU727
2354 00a2 2368 ldr r3, [r4]
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2355 .loc 1 1364 30 view .LVU728
2356 00a4 1278 ldrb r2, [r2] @ zero_extendqisi2
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2357 .loc 1 1364 28 view .LVU729
2358 00a6 9A62 str r2, [r3, #40]
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2359 .loc 1 1367 7 is_stmt 1 view .LVU730
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2360 .loc 1 1367 11 is_stmt 0 view .LVU731
2361 00a8 636A ldr r3, [r4, #36]
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2362 .loc 1 1367 21 view .LVU732
2363 00aa 0133 adds r3, r3, #1
2364 00ac 6362 str r3, [r4, #36]
1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2365 .loc 1 1369 7 is_stmt 1 view .LVU733
1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2366 .loc 1 1369 11 is_stmt 0 view .LVU734
2367 00ae B4F82AC0 ldrh ip, [r4, #42]
2368 00b2 1FFA8CFC uxth ip, ip
1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2369 .loc 1 1369 22 view .LVU735
2370 00b6 0CF1FF3C add ip, ip, #-1
2371 00ba 1FFA8CFC uxth ip, ip
2372 00be A4F82AC0 strh ip, [r4, #42] @ movhi
2373 00c2 E2E7 b .L176
2374 .LVL132:
2375 .L185:
1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2376 .loc 1 1298 7 is_stmt 1 view .LVU736
1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2377 .loc 1 1298 23 is_stmt 0 view .LVU737
2378 00c4 4FF40073 mov r3, #512
2379 00c8 4364 str r3, [r0, #68]
1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2380 .loc 1 1299 7 is_stmt 1 view .LVU738
1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2381 .loc 1 1299 15 is_stmt 0 view .LVU739
2382 00ca 0120 movs r0, #1
2383 .LVL133:
1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2384 .loc 1 1299 15 view .LVU740
2385 00cc 59E0 b .L171
2386 .LVL134:
2387 .L186:
1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2388 .loc 1 1323 7 is_stmt 1 view .LVU741
1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2389 .loc 1 1323 11 is_stmt 0 view .LVU742
2390 00ce 2268 ldr r2, [r4]
1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2391 .loc 1 1323 27 view .LVU743
2392 00d0 5368 ldr r3, [r2, #4]
ARM GAS /tmp/ccEimIdZ.s page 170
2393 00d2 43F40043 orr r3, r3, #32768
2394 00d6 5360 str r3, [r2, #4]
1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2395 .loc 1 1324 7 is_stmt 1 view .LVU744
1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2396 .loc 1 1324 14 is_stmt 0 view .LVU745
2397 00d8 0120 movs r0, #1
2398 00da 52E0 b .L171
2399 .L187:
1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2400 .loc 1 1334 7 is_stmt 1 view .LVU746
1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2401 .loc 1 1334 11 is_stmt 0 view .LVU747
2402 00dc 0096 str r6, [sp]
2403 00de 2B46 mov r3, r5
2404 00e0 0022 movs r2, #0
2405 00e2 0821 movs r1, #8
2406 00e4 2046 mov r0, r4
2407 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2408 .LVL135:
1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2409 .loc 1 1334 10 view .LVU748
2410 00ea 18B9 cbnz r0, .L191
1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2411 .loc 1 1342 7 is_stmt 1 view .LVU749
2412 00ec 2368 ldr r3, [r4]
2413 00ee 0822 movs r2, #8
2414 00f0 DA61 str r2, [r3, #28]
2415 00f2 C0E7 b .L174
2416 .L191:
1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2417 .loc 1 1337 9 view .LVU750
1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2418 .loc 1 1337 13 is_stmt 0 view .LVU751
2419 00f4 2268 ldr r2, [r4]
1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2420 .loc 1 1337 29 view .LVU752
2421 00f6 5368 ldr r3, [r2, #4]
2422 00f8 43F40043 orr r3, r3, #32768
2423 00fc 5360 str r3, [r2, #4]
1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2424 .loc 1 1338 9 is_stmt 1 view .LVU753
1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2425 .loc 1 1338 16 is_stmt 0 view .LVU754
2426 00fe 0120 movs r0, #1
2427 0100 3FE0 b .L171
2428 .L188:
1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2429 .loc 1 1349 7 is_stmt 1 view .LVU755
1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2430 .loc 1 1349 11 is_stmt 0 view .LVU756
2431 0102 2268 ldr r2, [r4]
1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2432 .loc 1 1349 27 view .LVU757
2433 0104 5368 ldr r3, [r2, #4]
2434 0106 43F40043 orr r3, r3, #32768
2435 010a 5360 str r3, [r2, #4]
ARM GAS /tmp/ccEimIdZ.s page 171
1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2436 .loc 1 1350 7 is_stmt 1 view .LVU758
1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2437 .loc 1 1350 14 is_stmt 0 view .LVU759
2438 010c 0120 movs r0, #1
2439 010e 38E0 b .L171
2440 .L190:
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2441 .loc 1 1359 9 is_stmt 1 view .LVU760
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2442 .loc 1 1359 13 is_stmt 0 view .LVU761
2443 0110 2268 ldr r2, [r4]
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2444 .loc 1 1359 29 view .LVU762
2445 0112 5368 ldr r3, [r2, #4]
2446 0114 43F40043 orr r3, r3, #32768
2447 0118 5360 str r3, [r2, #4]
1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2448 .loc 1 1360 9 is_stmt 1 view .LVU763
1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2449 .loc 1 1360 16 is_stmt 0 view .LVU764
2450 011a 0120 movs r0, #1
2451 011c 31E0 b .L171
2452 .L189:
1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2453 .loc 1 1373 5 is_stmt 1 view .LVU765
1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2454 .loc 1 1373 9 is_stmt 0 view .LVU766
2455 011e 3246 mov r2, r6
2456 0120 2946 mov r1, r5
2457 0122 2046 mov r0, r4
2458 0124 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2459 .LVL136:
1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2460 .loc 1 1373 8 view .LVU767
2461 0128 48B1 cbz r0, .L179
1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2462 .loc 1 1376 7 is_stmt 1 view .LVU768
1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2463 .loc 1 1376 11 is_stmt 0 view .LVU769
2464 012a 2268 ldr r2, [r4]
1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2465 .loc 1 1376 27 view .LVU770
2466 012c 5368 ldr r3, [r2, #4]
2467 012e 43F40043 orr r3, r3, #32768
2468 0132 5360 str r3, [r2, #4]
1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2469 .loc 1 1378 7 is_stmt 1 view .LVU771
1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2470 .loc 1 1378 15 is_stmt 0 view .LVU772
2471 0134 636C ldr r3, [r4, #68]
1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2472 .loc 1 1378 10 view .LVU773
2473 0136 042B cmp r3, #4
2474 0138 28D1 bne .L183
1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2475 .loc 1 1382 9 is_stmt 1 view .LVU774
ARM GAS /tmp/ccEimIdZ.s page 172
1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2476 .loc 1 1382 25 is_stmt 0 view .LVU775
2477 013a 0023 movs r3, #0
2478 013c 6364 str r3, [r4, #68]
2479 .L179:
1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2480 .loc 1 1391 5 is_stmt 1 view .LVU776
2481 013e 2368 ldr r3, [r4]
2482 0140 2022 movs r2, #32
2483 0142 DA61 str r2, [r3, #28]
1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2484 .loc 1 1394 5 view .LVU777
1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2485 .loc 1 1394 9 is_stmt 0 view .LVU778
2486 0144 0096 str r6, [sp]
2487 0146 2B46 mov r3, r5
2488 0148 0122 movs r2, #1
2489 014a 4FF40041 mov r1, #32768
2490 014e 2046 mov r0, r4
2491 0150 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2492 .LVL137:
1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2493 .loc 1 1394 8 view .LVU779
2494 0154 30B1 cbz r0, .L180
1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2495 .loc 1 1397 7 is_stmt 1 view .LVU780
1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2496 .loc 1 1397 11 is_stmt 0 view .LVU781
2497 0156 2268 ldr r2, [r4]
1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2498 .loc 1 1397 27 view .LVU782
2499 0158 5368 ldr r3, [r2, #4]
2500 015a 43F40043 orr r3, r3, #32768
2501 015e 5360 str r3, [r2, #4]
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2502 .loc 1 1398 7 is_stmt 1 view .LVU783
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2503 .loc 1 1398 14 is_stmt 0 view .LVU784
2504 0160 0120 movs r0, #1
2505 0162 0EE0 b .L171
2506 .L180:
1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2507 .loc 1 1402 5 is_stmt 1 view .LVU785
1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2508 .loc 1 1402 9 is_stmt 0 view .LVU786
2509 0164 2268 ldr r2, [r4]
1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2510 .loc 1 1402 25 view .LVU787
2511 0166 5368 ldr r3, [r2, #4]
2512 0168 43F40043 orr r3, r3, #32768
2513 016c 5360 str r3, [r2, #4]
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2514 .loc 1 1404 5 is_stmt 1 view .LVU788
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2515 .loc 1 1404 17 is_stmt 0 view .LVU789
2516 016e 2023 movs r3, #32
2517 0170 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/ccEimIdZ.s page 173
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2518 .loc 1 1405 5 is_stmt 1 view .LVU790
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2519 .loc 1 1405 17 is_stmt 0 view .LVU791
2520 0174 0023 movs r3, #0
2521 0176 84F84230 strb r3, [r4, #66]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2522 .loc 1 1408 5 is_stmt 1 view .LVU792
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2523 .loc 1 1408 5 view .LVU793
2524 017a 84F84030 strb r3, [r4, #64]
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2525 .loc 1 1408 5 view .LVU794
1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2526 .loc 1 1410 5 view .LVU795
1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2527 .loc 1 1410 12 is_stmt 0 view .LVU796
2528 017e 00E0 b .L171
2529 .LVL138:
2530 .L181:
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2531 .loc 1 1414 12 view .LVU797
2532 0180 0220 movs r0, #2
2533 .LVL139:
2534 .L171:
1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2535 .loc 1 1416 1 view .LVU798
2536 0182 02B0 add sp, sp, #8
2537 .LCFI29:
2538 .cfi_remember_state
2539 .cfi_def_cfa_offset 24
2540 @ sp needed
2541 0184 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
2542 .LVL140:
2543 .L182:
2544 .LCFI30:
2545 .cfi_restore_state
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2546 .loc 1 1302 5 view .LVU799
2547 0188 0220 movs r0, #2
2548 .LVL141:
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2549 .loc 1 1302 5 view .LVU800
2550 018a FAE7 b .L171
2551 .LVL142:
2552 .L183:
1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2553 .loc 1 1386 16 view .LVU801
2554 018c 0120 movs r0, #1
2555 018e F8E7 b .L171
2556 .cfi_endproc
2557 .LFE147:
2559 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
2560 .align 1
2561 .global HAL_I2C_Slave_Receive
2562 .syntax unified
2563 .thumb
ARM GAS /tmp/ccEimIdZ.s page 174
2564 .thumb_func
2565 .fpu fpv5-d16
2567 HAL_I2C_Slave_Receive:
2568 .LVL143:
2569 .LFB148:
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2570 .loc 1 1428 1 is_stmt 1 view -0
2571 .cfi_startproc
2572 @ args = 0, pretend = 0, frame = 0
2573 @ frame_needed = 0, uses_anonymous_args = 0
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
2574 .loc 1 1428 1 is_stmt 0 view .LVU803
2575 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2576 .LCFI31:
2577 .cfi_def_cfa_offset 24
2578 .cfi_offset 4, -24
2579 .cfi_offset 5, -20
2580 .cfi_offset 6, -16
2581 .cfi_offset 7, -12
2582 .cfi_offset 8, -8
2583 .cfi_offset 14, -4
2584 0004 82B0 sub sp, sp, #8
2585 .LCFI32:
2586 .cfi_def_cfa_offset 32
2587 0006 1D46 mov r5, r3
1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2588 .loc 1 1429 3 is_stmt 1 view .LVU804
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2589 .loc 1 1431 3 view .LVU805
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2590 .loc 1 1431 11 is_stmt 0 view .LVU806
2591 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2592 .LVL144:
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2593 .loc 1 1431 11 view .LVU807
2594 000c DBB2 uxtb r3, r3
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2595 .loc 1 1431 6 view .LVU808
2596 000e 202B cmp r3, #32
2597 0010 40F0AA80 bne .L202
2598 0014 0446 mov r4, r0
2599 0016 0F46 mov r7, r1
2600 0018 9046 mov r8, r2
1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2601 .loc 1 1433 5 is_stmt 1 view .LVU809
1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2602 .loc 1 1433 8 is_stmt 0 view .LVU810
2603 001a 002A cmp r2, #0
2604 001c 18BF it ne
2605 001e 0029 cmpne r1, #0
2606 0020 29D0 beq .L205
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2607 .loc 1 1439 5 is_stmt 1 view .LVU811
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2608 .loc 1 1439 5 view .LVU812
2609 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2610 0026 012B cmp r3, #1
ARM GAS /tmp/ccEimIdZ.s page 175
2611 0028 00F0A280 beq .L203
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2612 .loc 1 1439 5 discriminator 2 view .LVU813
2613 002c 0123 movs r3, #1
2614 002e 80F84030 strb r3, [r0, #64]
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2615 .loc 1 1439 5 discriminator 2 view .LVU814
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2616 .loc 1 1442 5 discriminator 2 view .LVU815
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2617 .loc 1 1442 17 is_stmt 0 discriminator 2 view .LVU816
2618 0032 FFF7FEFF bl HAL_GetTick
2619 .LVL145:
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2620 .loc 1 1442 17 discriminator 2 view .LVU817
2621 0036 0646 mov r6, r0
2622 .LVL146:
1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2623 .loc 1 1444 5 is_stmt 1 discriminator 2 view .LVU818
1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2624 .loc 1 1444 21 is_stmt 0 discriminator 2 view .LVU819
2625 0038 2223 movs r3, #34
2626 003a 84F84130 strb r3, [r4, #65]
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2627 .loc 1 1445 5 is_stmt 1 discriminator 2 view .LVU820
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2628 .loc 1 1445 21 is_stmt 0 discriminator 2 view .LVU821
2629 003e 2023 movs r3, #32
2630 0040 84F84230 strb r3, [r4, #66]
1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2631 .loc 1 1446 5 is_stmt 1 discriminator 2 view .LVU822
1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2632 .loc 1 1446 21 is_stmt 0 discriminator 2 view .LVU823
2633 0044 0022 movs r2, #0
2634 0046 6264 str r2, [r4, #68]
1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2635 .loc 1 1449 5 is_stmt 1 discriminator 2 view .LVU824
1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2636 .loc 1 1449 21 is_stmt 0 discriminator 2 view .LVU825
2637 0048 6762 str r7, [r4, #36]
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2638 .loc 1 1450 5 is_stmt 1 discriminator 2 view .LVU826
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
2639 .loc 1 1450 21 is_stmt 0 discriminator 2 view .LVU827
2640 004a A4F82A80 strh r8, [r4, #42] @ movhi
1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2641 .loc 1 1451 5 is_stmt 1 discriminator 2 view .LVU828
1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2642 .loc 1 1451 21 is_stmt 0 discriminator 2 view .LVU829
2643 004e 6263 str r2, [r4, #52]
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2644 .loc 1 1454 5 is_stmt 1 discriminator 2 view .LVU830
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2645 .loc 1 1454 9 is_stmt 0 discriminator 2 view .LVU831
2646 0050 2168 ldr r1, [r4]
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2647 .loc 1 1454 25 discriminator 2 view .LVU832
ARM GAS /tmp/ccEimIdZ.s page 176
2648 0052 4B68 ldr r3, [r1, #4]
2649 0054 23F40043 bic r3, r3, #32768
2650 0058 4B60 str r3, [r1, #4]
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2651 .loc 1 1457 5 is_stmt 1 discriminator 2 view .LVU833
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2652 .loc 1 1457 9 is_stmt 0 discriminator 2 view .LVU834
2653 005a 0090 str r0, [sp]
2654 005c 2B46 mov r3, r5
2655 005e 0821 movs r1, #8
2656 0060 2046 mov r0, r4
2657 .LVL147:
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2658 .loc 1 1457 9 discriminator 2 view .LVU835
2659 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2660 .LVL148:
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2661 .loc 1 1457 8 discriminator 2 view .LVU836
2662 0066 58B1 cbz r0, .L195
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2663 .loc 1 1460 7 is_stmt 1 view .LVU837
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2664 .loc 1 1460 11 is_stmt 0 view .LVU838
2665 0068 2268 ldr r2, [r4]
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2666 .loc 1 1460 27 view .LVU839
2667 006a 5368 ldr r3, [r2, #4]
2668 006c 43F40043 orr r3, r3, #32768
2669 0070 5360 str r3, [r2, #4]
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2670 .loc 1 1461 7 is_stmt 1 view .LVU840
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2671 .loc 1 1461 14 is_stmt 0 view .LVU841
2672 0072 0120 movs r0, #1
2673 0074 79E0 b .L193
2674 .LVL149:
2675 .L205:
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2676 .loc 1 1435 7 is_stmt 1 view .LVU842
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2677 .loc 1 1435 23 is_stmt 0 view .LVU843
2678 0076 4FF40073 mov r3, #512
2679 007a 4364 str r3, [r0, #68]
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2680 .loc 1 1436 7 is_stmt 1 view .LVU844
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2681 .loc 1 1436 15 is_stmt 0 view .LVU845
2682 007c 0120 movs r0, #1
2683 .LVL150:
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2684 .loc 1 1436 15 view .LVU846
2685 007e 74E0 b .L193
2686 .LVL151:
2687 .L195:
1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2688 .loc 1 1465 5 is_stmt 1 view .LVU847
2689 0080 2368 ldr r3, [r4]
ARM GAS /tmp/ccEimIdZ.s page 177
2690 0082 0822 movs r2, #8
2691 0084 DA61 str r2, [r3, #28]
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2692 .loc 1 1468 5 view .LVU848
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2693 .loc 1 1468 9 is_stmt 0 view .LVU849
2694 0086 0096 str r6, [sp]
2695 0088 2B46 mov r3, r5
2696 008a 0122 movs r2, #1
2697 008c 4FF48031 mov r1, #65536
2698 0090 2046 mov r0, r4
2699 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2700 .LVL152:
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2701 .loc 1 1468 8 view .LVU850
2702 0096 D8B9 cbnz r0, .L206
2703 .L196:
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2704 .loc 1 1475 11 is_stmt 1 view .LVU851
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2705 .loc 1 1475 16 is_stmt 0 view .LVU852
2706 0098 638D ldrh r3, [r4, #42]
2707 009a 9BB2 uxth r3, r3
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2708 .loc 1 1475 11 view .LVU853
2709 009c 002B cmp r3, #0
2710 009e 35D0 beq .L207
1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2711 .loc 1 1478 7 is_stmt 1 view .LVU854
1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2712 .loc 1 1478 11 is_stmt 0 view .LVU855
2713 00a0 3246 mov r2, r6
2714 00a2 2946 mov r1, r5
2715 00a4 2046 mov r0, r4
2716 00a6 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2717 .LVL153:
1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2718 .loc 1 1478 10 view .LVU856
2719 00aa C0B9 cbnz r0, .L208
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2720 .loc 1 1499 7 is_stmt 1 view .LVU857
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2721 .loc 1 1499 38 is_stmt 0 view .LVU858
2722 00ac 2368 ldr r3, [r4]
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2723 .loc 1 1499 48 view .LVU859
2724 00ae 5A6A ldr r2, [r3, #36]
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2725 .loc 1 1499 12 view .LVU860
2726 00b0 636A ldr r3, [r4, #36]
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2727 .loc 1 1499 23 view .LVU861
2728 00b2 1A70 strb r2, [r3]
1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2729 .loc 1 1502 7 is_stmt 1 view .LVU862
1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2730 .loc 1 1502 11 is_stmt 0 view .LVU863
ARM GAS /tmp/ccEimIdZ.s page 178
2731 00b4 636A ldr r3, [r4, #36]
1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2732 .loc 1 1502 21 view .LVU864
2733 00b6 0133 adds r3, r3, #1
2734 00b8 6362 str r3, [r4, #36]
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2735 .loc 1 1504 7 is_stmt 1 view .LVU865
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2736 .loc 1 1504 11 is_stmt 0 view .LVU866
2737 00ba B4F82AC0 ldrh ip, [r4, #42]
2738 00be 1FFA8CFC uxth ip, ip
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2739 .loc 1 1504 22 view .LVU867
2740 00c2 0CF1FF3C add ip, ip, #-1
2741 00c6 1FFA8CFC uxth ip, ip
2742 00ca A4F82AC0 strh ip, [r4, #42] @ movhi
2743 00ce E3E7 b .L196
2744 .L206:
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2745 .loc 1 1471 7 is_stmt 1 view .LVU868
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2746 .loc 1 1471 11 is_stmt 0 view .LVU869
2747 00d0 2268 ldr r2, [r4]
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2748 .loc 1 1471 27 view .LVU870
2749 00d2 5368 ldr r3, [r2, #4]
2750 00d4 43F40043 orr r3, r3, #32768
2751 00d8 5360 str r3, [r2, #4]
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2752 .loc 1 1472 7 is_stmt 1 view .LVU871
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2753 .loc 1 1472 14 is_stmt 0 view .LVU872
2754 00da 0120 movs r0, #1
2755 00dc 45E0 b .L193
2756 .L208:
1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2757 .loc 1 1481 9 is_stmt 1 view .LVU873
1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2758 .loc 1 1481 13 is_stmt 0 view .LVU874
2759 00de 2268 ldr r2, [r4]
1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2760 .loc 1 1481 29 view .LVU875
2761 00e0 5368 ldr r3, [r2, #4]
2762 00e2 43F40043 orr r3, r3, #32768
2763 00e6 5360 str r3, [r2, #4]
1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2764 .loc 1 1484 9 is_stmt 1 view .LVU876
1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2765 .loc 1 1484 13 is_stmt 0 view .LVU877
2766 00e8 2368 ldr r3, [r4]
2767 00ea 9A69 ldr r2, [r3, #24]
1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2768 .loc 1 1484 12 view .LVU878
2769 00ec 12F0040F tst r2, #4
2770 00f0 0AD0 beq .L198
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2771 .loc 1 1487 11 is_stmt 1 view .LVU879
ARM GAS /tmp/ccEimIdZ.s page 179
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2772 .loc 1 1487 52 is_stmt 0 view .LVU880
2773 00f2 5A6A ldr r2, [r3, #36]
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2774 .loc 1 1487 16 view .LVU881
2775 00f4 636A ldr r3, [r4, #36]
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2776 .loc 1 1487 27 view .LVU882
2777 00f6 1A70 strb r2, [r3]
1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2778 .loc 1 1490 11 is_stmt 1 view .LVU883
1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2779 .loc 1 1490 15 is_stmt 0 view .LVU884
2780 00f8 636A ldr r3, [r4, #36]
1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2781 .loc 1 1490 25 view .LVU885
2782 00fa 0133 adds r3, r3, #1
2783 00fc 6362 str r3, [r4, #36]
1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2784 .loc 1 1492 11 is_stmt 1 view .LVU886
1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2785 .loc 1 1492 15 is_stmt 0 view .LVU887
2786 00fe 638D ldrh r3, [r4, #42]
2787 0100 9BB2 uxth r3, r3
1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2788 .loc 1 1492 26 view .LVU888
2789 0102 013B subs r3, r3, #1
2790 0104 9BB2 uxth r3, r3
2791 0106 6385 strh r3, [r4, #42] @ movhi
2792 .L198:
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2793 .loc 1 1495 9 is_stmt 1 view .LVU889
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2794 .loc 1 1495 16 is_stmt 0 view .LVU890
2795 0108 0120 movs r0, #1
2796 010a 2EE0 b .L193
2797 .L207:
1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2798 .loc 1 1508 5 is_stmt 1 view .LVU891
1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2799 .loc 1 1508 9 is_stmt 0 view .LVU892
2800 010c 3246 mov r2, r6
2801 010e 2946 mov r1, r5
2802 0110 2046 mov r0, r4
2803 0112 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2804 .LVL154:
1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2805 .loc 1 1508 8 view .LVU893
2806 0116 30B1 cbz r0, .L200
1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2807 .loc 1 1511 7 is_stmt 1 view .LVU894
1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2808 .loc 1 1511 11 is_stmt 0 view .LVU895
2809 0118 2268 ldr r2, [r4]
1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2810 .loc 1 1511 27 view .LVU896
2811 011a 5368 ldr r3, [r2, #4]
ARM GAS /tmp/ccEimIdZ.s page 180
2812 011c 43F40043 orr r3, r3, #32768
2813 0120 5360 str r3, [r2, #4]
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2814 .loc 1 1512 7 is_stmt 1 view .LVU897
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2815 .loc 1 1512 14 is_stmt 0 view .LVU898
2816 0122 0120 movs r0, #1
2817 0124 21E0 b .L193
2818 .L200:
1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2819 .loc 1 1516 5 is_stmt 1 view .LVU899
2820 0126 2368 ldr r3, [r4]
2821 0128 2022 movs r2, #32
2822 012a DA61 str r2, [r3, #28]
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2823 .loc 1 1519 5 view .LVU900
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2824 .loc 1 1519 9 is_stmt 0 view .LVU901
2825 012c 0096 str r6, [sp]
2826 012e 2B46 mov r3, r5
2827 0130 0122 movs r2, #1
2828 0132 4FF40041 mov r1, #32768
2829 0136 2046 mov r0, r4
2830 0138 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2831 .LVL155:
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2832 .loc 1 1519 8 view .LVU902
2833 013c 30B1 cbz r0, .L201
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2834 .loc 1 1522 7 is_stmt 1 view .LVU903
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2835 .loc 1 1522 11 is_stmt 0 view .LVU904
2836 013e 2268 ldr r2, [r4]
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
2837 .loc 1 1522 27 view .LVU905
2838 0140 5368 ldr r3, [r2, #4]
2839 0142 43F40043 orr r3, r3, #32768
2840 0146 5360 str r3, [r2, #4]
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2841 .loc 1 1523 7 is_stmt 1 view .LVU906
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2842 .loc 1 1523 14 is_stmt 0 view .LVU907
2843 0148 0120 movs r0, #1
2844 014a 0EE0 b .L193
2845 .L201:
1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2846 .loc 1 1527 5 is_stmt 1 view .LVU908
1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2847 .loc 1 1527 9 is_stmt 0 view .LVU909
2848 014c 2268 ldr r2, [r4]
1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2849 .loc 1 1527 25 view .LVU910
2850 014e 5368 ldr r3, [r2, #4]
2851 0150 43F40043 orr r3, r3, #32768
2852 0154 5360 str r3, [r2, #4]
1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2853 .loc 1 1529 5 is_stmt 1 view .LVU911
ARM GAS /tmp/ccEimIdZ.s page 181
1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2854 .loc 1 1529 17 is_stmt 0 view .LVU912
2855 0156 2023 movs r3, #32
2856 0158 84F84130 strb r3, [r4, #65]
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2857 .loc 1 1530 5 is_stmt 1 view .LVU913
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2858 .loc 1 1530 17 is_stmt 0 view .LVU914
2859 015c 0023 movs r3, #0
2860 015e 84F84230 strb r3, [r4, #66]
1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2861 .loc 1 1533 5 is_stmt 1 view .LVU915
1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2862 .loc 1 1533 5 view .LVU916
2863 0162 84F84030 strb r3, [r4, #64]
1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2864 .loc 1 1533 5 view .LVU917
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2865 .loc 1 1535 5 view .LVU918
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2866 .loc 1 1535 12 is_stmt 0 view .LVU919
2867 0166 00E0 b .L193
2868 .LVL156:
2869 .L202:
1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2870 .loc 1 1539 12 view .LVU920
2871 0168 0220 movs r0, #2
2872 .LVL157:
2873 .L193:
1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2874 .loc 1 1541 1 view .LVU921
2875 016a 02B0 add sp, sp, #8
2876 .LCFI33:
2877 .cfi_remember_state
2878 .cfi_def_cfa_offset 24
2879 @ sp needed
2880 016c BDE8F081 pop {r4, r5, r6, r7, r8, pc}
2881 .LVL158:
2882 .L203:
2883 .LCFI34:
2884 .cfi_restore_state
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2885 .loc 1 1439 5 view .LVU922
2886 0170 0220 movs r0, #2
2887 .LVL159:
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2888 .loc 1 1439 5 view .LVU923
2889 0172 FAE7 b .L193
2890 .cfi_endproc
2891 .LFE148:
2893 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
2894 .align 1
2895 .global HAL_I2C_Master_Transmit_IT
2896 .syntax unified
2897 .thumb
2898 .thumb_func
2899 .fpu fpv5-d16
ARM GAS /tmp/ccEimIdZ.s page 182
2901 HAL_I2C_Master_Transmit_IT:
2902 .LVL160:
2903 .LFB149:
1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2904 .loc 1 1554 1 is_stmt 1 view -0
2905 .cfi_startproc
2906 @ args = 0, pretend = 0, frame = 0
2907 @ frame_needed = 0, uses_anonymous_args = 0
1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
2908 .loc 1 1554 1 is_stmt 0 view .LVU925
2909 0000 30B5 push {r4, r5, lr}
2910 .LCFI35:
2911 .cfi_def_cfa_offset 12
2912 .cfi_offset 4, -12
2913 .cfi_offset 5, -8
2914 .cfi_offset 14, -4
2915 0002 83B0 sub sp, sp, #12
2916 .LCFI36:
2917 .cfi_def_cfa_offset 24
2918 0004 0446 mov r4, r0
1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2919 .loc 1 1555 3 is_stmt 1 view .LVU926
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2920 .loc 1 1557 3 view .LVU927
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2921 .loc 1 1557 11 is_stmt 0 view .LVU928
2922 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
2923 .LVL161:
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2924 .loc 1 1557 11 view .LVU929
2925 000a C0B2 uxtb r0, r0
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2926 .loc 1 1557 6 view .LVU930
2927 000c 2028 cmp r0, #32
2928 000e 37D1 bne .L213
1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2929 .loc 1 1559 5 is_stmt 1 view .LVU931
1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2930 .loc 1 1559 9 is_stmt 0 view .LVU932
2931 0010 2068 ldr r0, [r4]
2932 0012 8069 ldr r0, [r0, #24]
1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2933 .loc 1 1559 8 view .LVU933
2934 0014 10F4004F tst r0, #32768
2935 0018 34D1 bne .L214
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2936 .loc 1 1565 5 is_stmt 1 view .LVU934
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2937 .loc 1 1565 5 view .LVU935
2938 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
2939 001e 0128 cmp r0, #1
2940 0020 32D0 beq .L215
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2941 .loc 1 1565 5 discriminator 2 view .LVU936
2942 0022 0120 movs r0, #1
2943 0024 84F84000 strb r0, [r4, #64]
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 183
2944 .loc 1 1565 5 discriminator 2 view .LVU937
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2945 .loc 1 1567 5 discriminator 2 view .LVU938
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2946 .loc 1 1567 23 is_stmt 0 discriminator 2 view .LVU939
2947 0028 2120 movs r0, #33
2948 002a 84F84100 strb r0, [r4, #65]
1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2949 .loc 1 1568 5 is_stmt 1 discriminator 2 view .LVU940
1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2950 .loc 1 1568 23 is_stmt 0 discriminator 2 view .LVU941
2951 002e 1020 movs r0, #16
2952 0030 84F84200 strb r0, [r4, #66]
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2953 .loc 1 1569 5 is_stmt 1 discriminator 2 view .LVU942
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2954 .loc 1 1569 23 is_stmt 0 discriminator 2 view .LVU943
2955 0034 0020 movs r0, #0
2956 0036 6064 str r0, [r4, #68]
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2957 .loc 1 1572 5 is_stmt 1 discriminator 2 view .LVU944
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
2958 .loc 1 1572 23 is_stmt 0 discriminator 2 view .LVU945
2959 0038 6262 str r2, [r4, #36]
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2960 .loc 1 1573 5 is_stmt 1 discriminator 2 view .LVU946
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2961 .loc 1 1573 23 is_stmt 0 discriminator 2 view .LVU947
2962 003a 6385 strh r3, [r4, #42] @ movhi
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2963 .loc 1 1574 5 is_stmt 1 discriminator 2 view .LVU948
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2964 .loc 1 1574 23 is_stmt 0 discriminator 2 view .LVU949
2965 003c 134B ldr r3, .L217
2966 .LVL162:
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2967 .loc 1 1574 23 discriminator 2 view .LVU950
2968 003e E362 str r3, [r4, #44]
2969 .LVL163:
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2970 .loc 1 1575 5 is_stmt 1 discriminator 2 view .LVU951
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2971 .loc 1 1575 23 is_stmt 0 discriminator 2 view .LVU952
2972 0040 134B ldr r3, .L217+4
2973 0042 6363 str r3, [r4, #52]
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2974 .loc 1 1577 5 is_stmt 1 discriminator 2 view .LVU953
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2975 .loc 1 1577 13 is_stmt 0 discriminator 2 view .LVU954
2976 0044 638D ldrh r3, [r4, #42]
2977 0046 9BB2 uxth r3, r3
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
2978 .loc 1 1577 8 discriminator 2 view .LVU955
2979 0048 FF2B cmp r3, #255
2980 004a 14D9 bls .L211
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2981 .loc 1 1579 7 is_stmt 1 view .LVU956
ARM GAS /tmp/ccEimIdZ.s page 184
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2982 .loc 1 1579 22 is_stmt 0 view .LVU957
2983 004c FF23 movs r3, #255
2984 004e 2385 strh r3, [r4, #40] @ movhi
1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2985 .loc 1 1580 7 is_stmt 1 view .LVU958
2986 .LVL164:
1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
2987 .loc 1 1580 16 is_stmt 0 view .LVU959
2988 0050 4FF08073 mov r3, #16777216
2989 .LVL165:
2990 .L212:
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2991 .loc 1 1590 5 is_stmt 1 view .LVU960
2992 0054 0F4A ldr r2, .L217+8
2993 .LVL166:
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2994 .loc 1 1590 5 is_stmt 0 view .LVU961
2995 0056 0092 str r2, [sp]
2996 .LVL167:
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
2997 .loc 1 1590 5 view .LVU962
2998 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
2999 005c 2046 mov r0, r4
3000 005e FFF7FEFF bl I2C_TransferConfig
3001 .LVL168:
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3002 .loc 1 1593 5 is_stmt 1 view .LVU963
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3003 .loc 1 1593 5 view .LVU964
3004 0062 0025 movs r5, #0
3005 0064 84F84050 strb r5, [r4, #64]
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3006 .loc 1 1593 5 view .LVU965
1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3007 .loc 1 1602 5 view .LVU966
3008 0068 0121 movs r1, #1
3009 006a 2046 mov r0, r4
3010 006c FFF7FEFF bl I2C_Enable_IRQ
3011 .LVL169:
1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3012 .loc 1 1604 5 view .LVU967
1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3013 .loc 1 1604 12 is_stmt 0 view .LVU968
3014 0070 2846 mov r0, r5
3015 .L210:
1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3016 .loc 1 1610 1 view .LVU969
3017 0072 03B0 add sp, sp, #12
3018 .LCFI37:
3019 .cfi_remember_state
3020 .cfi_def_cfa_offset 12
3021 @ sp needed
3022 0074 30BD pop {r4, r5, pc}
3023 .LVL170:
3024 .L211:
3025 .LCFI38:
ARM GAS /tmp/ccEimIdZ.s page 185
3026 .cfi_restore_state
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3027 .loc 1 1584 7 is_stmt 1 view .LVU970
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3028 .loc 1 1584 28 is_stmt 0 view .LVU971
3029 0076 638D ldrh r3, [r4, #42]
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3030 .loc 1 1584 22 view .LVU972
3031 0078 2385 strh r3, [r4, #40] @ movhi
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3032 .loc 1 1585 7 is_stmt 1 view .LVU973
3033 .LVL171:
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3034 .loc 1 1585 16 is_stmt 0 view .LVU974
3035 007a 4FF00073 mov r3, #33554432
3036 007e E9E7 b .L212
3037 .LVL172:
3038 .L213:
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3039 .loc 1 1608 12 view .LVU975
3040 0080 0220 movs r0, #2
3041 0082 F6E7 b .L210
3042 .L214:
1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3043 .loc 1 1561 14 view .LVU976
3044 0084 0220 movs r0, #2
3045 0086 F4E7 b .L210
3046 .L215:
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3047 .loc 1 1565 5 view .LVU977
3048 0088 0220 movs r0, #2
3049 008a F2E7 b .L210
3050 .L218:
3051 .align 2
3052 .L217:
3053 008c 0000FFFF .word -65536
3054 0090 00000000 .word I2C_Master_ISR_IT
3055 0094 00200080 .word -2147475456
3056 .cfi_endproc
3057 .LFE149:
3059 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
3060 .align 1
3061 .global HAL_I2C_Master_Receive_IT
3062 .syntax unified
3063 .thumb
3064 .thumb_func
3065 .fpu fpv5-d16
3067 HAL_I2C_Master_Receive_IT:
3068 .LVL173:
3069 .LFB150:
1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3070 .loc 1 1623 1 is_stmt 1 view -0
3071 .cfi_startproc
3072 @ args = 0, pretend = 0, frame = 0
3073 @ frame_needed = 0, uses_anonymous_args = 0
1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3074 .loc 1 1623 1 is_stmt 0 view .LVU979
ARM GAS /tmp/ccEimIdZ.s page 186
3075 0000 30B5 push {r4, r5, lr}
3076 .LCFI39:
3077 .cfi_def_cfa_offset 12
3078 .cfi_offset 4, -12
3079 .cfi_offset 5, -8
3080 .cfi_offset 14, -4
3081 0002 83B0 sub sp, sp, #12
3082 .LCFI40:
3083 .cfi_def_cfa_offset 24
3084 0004 0446 mov r4, r0
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3085 .loc 1 1624 3 is_stmt 1 view .LVU980
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3086 .loc 1 1626 3 view .LVU981
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3087 .loc 1 1626 11 is_stmt 0 view .LVU982
3088 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3089 .LVL174:
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3090 .loc 1 1626 11 view .LVU983
3091 000a C0B2 uxtb r0, r0
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3092 .loc 1 1626 6 view .LVU984
3093 000c 2028 cmp r0, #32
3094 000e 37D1 bne .L223
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3095 .loc 1 1628 5 is_stmt 1 view .LVU985
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3096 .loc 1 1628 9 is_stmt 0 view .LVU986
3097 0010 2068 ldr r0, [r4]
3098 0012 8069 ldr r0, [r0, #24]
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3099 .loc 1 1628 8 view .LVU987
3100 0014 10F4004F tst r0, #32768
3101 0018 34D1 bne .L224
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3102 .loc 1 1634 5 is_stmt 1 view .LVU988
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3103 .loc 1 1634 5 view .LVU989
3104 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
3105 001e 0128 cmp r0, #1
3106 0020 32D0 beq .L225
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3107 .loc 1 1634 5 discriminator 2 view .LVU990
3108 0022 0120 movs r0, #1
3109 0024 84F84000 strb r0, [r4, #64]
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3110 .loc 1 1634 5 discriminator 2 view .LVU991
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3111 .loc 1 1636 5 discriminator 2 view .LVU992
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3112 .loc 1 1636 23 is_stmt 0 discriminator 2 view .LVU993
3113 0028 2220 movs r0, #34
3114 002a 84F84100 strb r0, [r4, #65]
1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3115 .loc 1 1637 5 is_stmt 1 discriminator 2 view .LVU994
1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS /tmp/ccEimIdZ.s page 187
3116 .loc 1 1637 23 is_stmt 0 discriminator 2 view .LVU995
3117 002e 1020 movs r0, #16
3118 0030 84F84200 strb r0, [r4, #66]
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3119 .loc 1 1638 5 is_stmt 1 discriminator 2 view .LVU996
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3120 .loc 1 1638 23 is_stmt 0 discriminator 2 view .LVU997
3121 0034 0020 movs r0, #0
3122 0036 6064 str r0, [r4, #68]
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3123 .loc 1 1641 5 is_stmt 1 discriminator 2 view .LVU998
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3124 .loc 1 1641 23 is_stmt 0 discriminator 2 view .LVU999
3125 0038 6262 str r2, [r4, #36]
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3126 .loc 1 1642 5 is_stmt 1 discriminator 2 view .LVU1000
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3127 .loc 1 1642 23 is_stmt 0 discriminator 2 view .LVU1001
3128 003a 6385 strh r3, [r4, #42] @ movhi
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3129 .loc 1 1643 5 is_stmt 1 discriminator 2 view .LVU1002
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3130 .loc 1 1643 23 is_stmt 0 discriminator 2 view .LVU1003
3131 003c 134B ldr r3, .L227
3132 .LVL175:
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3133 .loc 1 1643 23 discriminator 2 view .LVU1004
3134 003e E362 str r3, [r4, #44]
3135 .LVL176:
1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3136 .loc 1 1644 5 is_stmt 1 discriminator 2 view .LVU1005
1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3137 .loc 1 1644 23 is_stmt 0 discriminator 2 view .LVU1006
3138 0040 134B ldr r3, .L227+4
3139 0042 6363 str r3, [r4, #52]
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3140 .loc 1 1646 5 is_stmt 1 discriminator 2 view .LVU1007
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3141 .loc 1 1646 13 is_stmt 0 discriminator 2 view .LVU1008
3142 0044 638D ldrh r3, [r4, #42]
3143 0046 9BB2 uxth r3, r3
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3144 .loc 1 1646 8 discriminator 2 view .LVU1009
3145 0048 FF2B cmp r3, #255
3146 004a 14D9 bls .L221
1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3147 .loc 1 1648 7 is_stmt 1 view .LVU1010
1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3148 .loc 1 1648 22 is_stmt 0 view .LVU1011
3149 004c FF23 movs r3, #255
3150 004e 2385 strh r3, [r4, #40] @ movhi
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3151 .loc 1 1649 7 is_stmt 1 view .LVU1012
3152 .LVL177:
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3153 .loc 1 1649 16 is_stmt 0 view .LVU1013
3154 0050 4FF08073 mov r3, #16777216
ARM GAS /tmp/ccEimIdZ.s page 188
3155 .LVL178:
3156 .L222:
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3157 .loc 1 1659 5 is_stmt 1 view .LVU1014
3158 0054 0F4A ldr r2, .L227+8
3159 .LVL179:
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3160 .loc 1 1659 5 is_stmt 0 view .LVU1015
3161 0056 0092 str r2, [sp]
3162 .LVL180:
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3163 .loc 1 1659 5 view .LVU1016
3164 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3165 005c 2046 mov r0, r4
3166 005e FFF7FEFF bl I2C_TransferConfig
3167 .LVL181:
1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3168 .loc 1 1662 5 is_stmt 1 view .LVU1017
1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3169 .loc 1 1662 5 view .LVU1018
3170 0062 0025 movs r5, #0
3171 0064 84F84050 strb r5, [r4, #64]
1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3172 .loc 1 1662 5 view .LVU1019
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3173 .loc 1 1671 5 view .LVU1020
3174 0068 0221 movs r1, #2
3175 006a 2046 mov r0, r4
3176 006c FFF7FEFF bl I2C_Enable_IRQ
3177 .LVL182:
1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3178 .loc 1 1673 5 view .LVU1021
1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3179 .loc 1 1673 12 is_stmt 0 view .LVU1022
3180 0070 2846 mov r0, r5
3181 .L220:
1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3182 .loc 1 1679 1 view .LVU1023
3183 0072 03B0 add sp, sp, #12
3184 .LCFI41:
3185 .cfi_remember_state
3186 .cfi_def_cfa_offset 12
3187 @ sp needed
3188 0074 30BD pop {r4, r5, pc}
3189 .LVL183:
3190 .L221:
3191 .LCFI42:
3192 .cfi_restore_state
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3193 .loc 1 1653 7 is_stmt 1 view .LVU1024
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3194 .loc 1 1653 28 is_stmt 0 view .LVU1025
3195 0076 638D ldrh r3, [r4, #42]
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3196 .loc 1 1653 22 view .LVU1026
3197 0078 2385 strh r3, [r4, #40] @ movhi
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 189
3198 .loc 1 1654 7 is_stmt 1 view .LVU1027
3199 .LVL184:
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3200 .loc 1 1654 16 is_stmt 0 view .LVU1028
3201 007a 4FF00073 mov r3, #33554432
3202 007e E9E7 b .L222
3203 .LVL185:
3204 .L223:
1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3205 .loc 1 1677 12 view .LVU1029
3206 0080 0220 movs r0, #2
3207 0082 F6E7 b .L220
3208 .L224:
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3209 .loc 1 1630 14 view .LVU1030
3210 0084 0220 movs r0, #2
3211 0086 F4E7 b .L220
3212 .L225:
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3213 .loc 1 1634 5 view .LVU1031
3214 0088 0220 movs r0, #2
3215 008a F2E7 b .L220
3216 .L228:
3217 .align 2
3218 .L227:
3219 008c 0000FFFF .word -65536
3220 0090 00000000 .word I2C_Master_ISR_IT
3221 0094 00240080 .word -2147474432
3222 .cfi_endproc
3223 .LFE150:
3225 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
3226 .align 1
3227 .global HAL_I2C_Slave_Transmit_IT
3228 .syntax unified
3229 .thumb
3230 .thumb_func
3231 .fpu fpv5-d16
3233 HAL_I2C_Slave_Transmit_IT:
3234 .LVL186:
3235 .LFB151:
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3236 .loc 1 1690 1 is_stmt 1 view -0
3237 .cfi_startproc
3238 @ args = 0, pretend = 0, frame = 0
3239 @ frame_needed = 0, uses_anonymous_args = 0
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3240 .loc 1 1690 1 is_stmt 0 view .LVU1033
3241 0000 38B5 push {r3, r4, r5, lr}
3242 .LCFI43:
3243 .cfi_def_cfa_offset 16
3244 .cfi_offset 3, -16
3245 .cfi_offset 4, -12
3246 .cfi_offset 5, -8
3247 .cfi_offset 14, -4
1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3248 .loc 1 1691 3 is_stmt 1 view .LVU1034
1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 190
3249 .loc 1 1691 11 is_stmt 0 view .LVU1035
3250 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3251 0006 DBB2 uxtb r3, r3
1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3252 .loc 1 1691 6 view .LVU1036
3253 0008 202B cmp r3, #32
3254 000a 23D1 bne .L231
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3255 .loc 1 1694 5 is_stmt 1 view .LVU1037
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3256 .loc 1 1694 5 view .LVU1038
3257 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3258 0010 012B cmp r3, #1
3259 0012 21D0 beq .L232
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3260 .loc 1 1694 5 discriminator 2 view .LVU1039
3261 0014 0123 movs r3, #1
3262 0016 80F84030 strb r3, [r0, #64]
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3263 .loc 1 1694 5 discriminator 2 view .LVU1040
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3264 .loc 1 1696 5 discriminator 2 view .LVU1041
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3265 .loc 1 1696 23 is_stmt 0 discriminator 2 view .LVU1042
3266 001a 2123 movs r3, #33
3267 001c 80F84130 strb r3, [r0, #65]
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3268 .loc 1 1697 5 is_stmt 1 discriminator 2 view .LVU1043
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3269 .loc 1 1697 23 is_stmt 0 discriminator 2 view .LVU1044
3270 0020 2023 movs r3, #32
3271 0022 80F84230 strb r3, [r0, #66]
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3272 .loc 1 1698 5 is_stmt 1 discriminator 2 view .LVU1045
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3273 .loc 1 1698 23 is_stmt 0 discriminator 2 view .LVU1046
3274 0026 0024 movs r4, #0
3275 0028 4464 str r4, [r0, #68]
1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3276 .loc 1 1701 5 is_stmt 1 discriminator 2 view .LVU1047
1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3277 .loc 1 1701 9 is_stmt 0 discriminator 2 view .LVU1048
3278 002a 0568 ldr r5, [r0]
1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3279 .loc 1 1701 25 discriminator 2 view .LVU1049
3280 002c 6B68 ldr r3, [r5, #4]
3281 002e 23F40043 bic r3, r3, #32768
3282 0032 6B60 str r3, [r5, #4]
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3283 .loc 1 1704 5 is_stmt 1 discriminator 2 view .LVU1050
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3284 .loc 1 1704 23 is_stmt 0 discriminator 2 view .LVU1051
3285 0034 4162 str r1, [r0, #36]
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3286 .loc 1 1705 5 is_stmt 1 discriminator 2 view .LVU1052
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3287 .loc 1 1705 23 is_stmt 0 discriminator 2 view .LVU1053
ARM GAS /tmp/ccEimIdZ.s page 191
3288 0036 4285 strh r2, [r0, #42] @ movhi
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3289 .loc 1 1706 5 is_stmt 1 discriminator 2 view .LVU1054
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3290 .loc 1 1706 29 is_stmt 0 discriminator 2 view .LVU1055
3291 0038 438D ldrh r3, [r0, #42]
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3292 .loc 1 1706 23 discriminator 2 view .LVU1056
3293 003a 0385 strh r3, [r0, #40] @ movhi
1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3294 .loc 1 1707 5 is_stmt 1 discriminator 2 view .LVU1057
1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3295 .loc 1 1707 23 is_stmt 0 discriminator 2 view .LVU1058
3296 003c 074B ldr r3, .L234
3297 003e C362 str r3, [r0, #44]
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3298 .loc 1 1708 5 is_stmt 1 discriminator 2 view .LVU1059
1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3299 .loc 1 1708 23 is_stmt 0 discriminator 2 view .LVU1060
3300 0040 074B ldr r3, .L234+4
3301 0042 4363 str r3, [r0, #52]
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3302 .loc 1 1711 5 is_stmt 1 discriminator 2 view .LVU1061
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3303 .loc 1 1711 5 discriminator 2 view .LVU1062
3304 0044 80F84040 strb r4, [r0, #64]
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3305 .loc 1 1711 5 discriminator 2 view .LVU1063
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3306 .loc 1 1720 5 discriminator 2 view .LVU1064
3307 0048 48F20101 movw r1, #32769
3308 .LVL187:
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3309 .loc 1 1720 5 is_stmt 0 discriminator 2 view .LVU1065
3310 004c FFF7FEFF bl I2C_Enable_IRQ
3311 .LVL188:
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3312 .loc 1 1722 5 is_stmt 1 discriminator 2 view .LVU1066
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3313 .loc 1 1722 12 is_stmt 0 discriminator 2 view .LVU1067
3314 0050 2046 mov r0, r4
3315 .L230:
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3316 .loc 1 1728 1 view .LVU1068
3317 0052 38BD pop {r3, r4, r5, pc}
3318 .LVL189:
3319 .L231:
1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3320 .loc 1 1726 12 view .LVU1069
3321 0054 0220 movs r0, #2
3322 .LVL190:
1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3323 .loc 1 1726 12 view .LVU1070
3324 0056 FCE7 b .L230
3325 .LVL191:
3326 .L232:
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 192
3327 .loc 1 1694 5 view .LVU1071
3328 0058 0220 movs r0, #2
3329 .LVL192:
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3330 .loc 1 1694 5 view .LVU1072
3331 005a FAE7 b .L230
3332 .L235:
3333 .align 2
3334 .L234:
3335 005c 0000FFFF .word -65536
3336 0060 00000000 .word I2C_Slave_ISR_IT
3337 .cfi_endproc
3338 .LFE151:
3340 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
3341 .align 1
3342 .global HAL_I2C_Slave_Receive_IT
3343 .syntax unified
3344 .thumb
3345 .thumb_func
3346 .fpu fpv5-d16
3348 HAL_I2C_Slave_Receive_IT:
3349 .LVL193:
3350 .LFB152:
1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3351 .loc 1 1739 1 is_stmt 1 view -0
3352 .cfi_startproc
3353 @ args = 0, pretend = 0, frame = 0
3354 @ frame_needed = 0, uses_anonymous_args = 0
1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3355 .loc 1 1739 1 is_stmt 0 view .LVU1074
3356 0000 38B5 push {r3, r4, r5, lr}
3357 .LCFI44:
3358 .cfi_def_cfa_offset 16
3359 .cfi_offset 3, -16
3360 .cfi_offset 4, -12
3361 .cfi_offset 5, -8
3362 .cfi_offset 14, -4
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3363 .loc 1 1740 3 is_stmt 1 view .LVU1075
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3364 .loc 1 1740 11 is_stmt 0 view .LVU1076
3365 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3366 0006 DBB2 uxtb r3, r3
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3367 .loc 1 1740 6 view .LVU1077
3368 0008 202B cmp r3, #32
3369 000a 23D1 bne .L238
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3370 .loc 1 1743 5 is_stmt 1 view .LVU1078
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3371 .loc 1 1743 5 view .LVU1079
3372 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3373 0010 012B cmp r3, #1
3374 0012 21D0 beq .L239
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3375 .loc 1 1743 5 discriminator 2 view .LVU1080
3376 0014 0123 movs r3, #1
ARM GAS /tmp/ccEimIdZ.s page 193
3377 0016 80F84030 strb r3, [r0, #64]
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3378 .loc 1 1743 5 discriminator 2 view .LVU1081
1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3379 .loc 1 1745 5 discriminator 2 view .LVU1082
1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3380 .loc 1 1745 23 is_stmt 0 discriminator 2 view .LVU1083
3381 001a 2223 movs r3, #34
3382 001c 80F84130 strb r3, [r0, #65]
1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3383 .loc 1 1746 5 is_stmt 1 discriminator 2 view .LVU1084
1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3384 .loc 1 1746 23 is_stmt 0 discriminator 2 view .LVU1085
3385 0020 2023 movs r3, #32
3386 0022 80F84230 strb r3, [r0, #66]
1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3387 .loc 1 1747 5 is_stmt 1 discriminator 2 view .LVU1086
1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3388 .loc 1 1747 23 is_stmt 0 discriminator 2 view .LVU1087
3389 0026 0024 movs r4, #0
3390 0028 4464 str r4, [r0, #68]
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3391 .loc 1 1750 5 is_stmt 1 discriminator 2 view .LVU1088
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3392 .loc 1 1750 9 is_stmt 0 discriminator 2 view .LVU1089
3393 002a 0568 ldr r5, [r0]
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3394 .loc 1 1750 25 discriminator 2 view .LVU1090
3395 002c 6B68 ldr r3, [r5, #4]
3396 002e 23F40043 bic r3, r3, #32768
3397 0032 6B60 str r3, [r5, #4]
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3398 .loc 1 1753 5 is_stmt 1 discriminator 2 view .LVU1091
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3399 .loc 1 1753 23 is_stmt 0 discriminator 2 view .LVU1092
3400 0034 4162 str r1, [r0, #36]
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3401 .loc 1 1754 5 is_stmt 1 discriminator 2 view .LVU1093
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3402 .loc 1 1754 23 is_stmt 0 discriminator 2 view .LVU1094
3403 0036 4285 strh r2, [r0, #42] @ movhi
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3404 .loc 1 1755 5 is_stmt 1 discriminator 2 view .LVU1095
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3405 .loc 1 1755 29 is_stmt 0 discriminator 2 view .LVU1096
3406 0038 438D ldrh r3, [r0, #42]
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3407 .loc 1 1755 23 discriminator 2 view .LVU1097
3408 003a 0385 strh r3, [r0, #40] @ movhi
1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3409 .loc 1 1756 5 is_stmt 1 discriminator 2 view .LVU1098
1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3410 .loc 1 1756 23 is_stmt 0 discriminator 2 view .LVU1099
3411 003c 074B ldr r3, .L241
3412 003e C362 str r3, [r0, #44]
1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3413 .loc 1 1757 5 is_stmt 1 discriminator 2 view .LVU1100
ARM GAS /tmp/ccEimIdZ.s page 194
1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3414 .loc 1 1757 23 is_stmt 0 discriminator 2 view .LVU1101
3415 0040 074B ldr r3, .L241+4
3416 0042 4363 str r3, [r0, #52]
1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3417 .loc 1 1760 5 is_stmt 1 discriminator 2 view .LVU1102
1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3418 .loc 1 1760 5 discriminator 2 view .LVU1103
3419 0044 80F84040 strb r4, [r0, #64]
1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3420 .loc 1 1760 5 discriminator 2 view .LVU1104
1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3421 .loc 1 1769 5 discriminator 2 view .LVU1105
3422 0048 48F20201 movw r1, #32770
3423 .LVL194:
1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3424 .loc 1 1769 5 is_stmt 0 discriminator 2 view .LVU1106
3425 004c FFF7FEFF bl I2C_Enable_IRQ
3426 .LVL195:
1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3427 .loc 1 1771 5 is_stmt 1 discriminator 2 view .LVU1107
1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3428 .loc 1 1771 12 is_stmt 0 discriminator 2 view .LVU1108
3429 0050 2046 mov r0, r4
3430 .L237:
1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3431 .loc 1 1777 1 view .LVU1109
3432 0052 38BD pop {r3, r4, r5, pc}
3433 .LVL196:
3434 .L238:
1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3435 .loc 1 1775 12 view .LVU1110
3436 0054 0220 movs r0, #2
3437 .LVL197:
1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3438 .loc 1 1775 12 view .LVU1111
3439 0056 FCE7 b .L237
3440 .LVL198:
3441 .L239:
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3442 .loc 1 1743 5 view .LVU1112
3443 0058 0220 movs r0, #2
3444 .LVL199:
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3445 .loc 1 1743 5 view .LVU1113
3446 005a FAE7 b .L237
3447 .L242:
3448 .align 2
3449 .L241:
3450 005c 0000FFFF .word -65536
3451 0060 00000000 .word I2C_Slave_ISR_IT
3452 .cfi_endproc
3453 .LFE152:
3455 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
3456 .align 1
3457 .global HAL_I2C_Master_Transmit_DMA
3458 .syntax unified
ARM GAS /tmp/ccEimIdZ.s page 195
3459 .thumb
3460 .thumb_func
3461 .fpu fpv5-d16
3463 HAL_I2C_Master_Transmit_DMA:
3464 .LVL200:
3465 .LFB153:
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3466 .loc 1 1790 1 is_stmt 1 view -0
3467 .cfi_startproc
3468 @ args = 0, pretend = 0, frame = 0
3469 @ frame_needed = 0, uses_anonymous_args = 0
1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3470 .loc 1 1790 1 is_stmt 0 view .LVU1115
3471 0000 70B5 push {r4, r5, r6, lr}
3472 .LCFI45:
3473 .cfi_def_cfa_offset 16
3474 .cfi_offset 4, -16
3475 .cfi_offset 5, -12
3476 .cfi_offset 6, -8
3477 .cfi_offset 14, -4
3478 0002 82B0 sub sp, sp, #8
3479 .LCFI46:
3480 .cfi_def_cfa_offset 24
3481 0004 0446 mov r4, r0
1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3482 .loc 1 1791 3 is_stmt 1 view .LVU1116
1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3483 .loc 1 1792 3 view .LVU1117
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3484 .loc 1 1794 3 view .LVU1118
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3485 .loc 1 1794 11 is_stmt 0 view .LVU1119
3486 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3487 .LVL201:
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3488 .loc 1 1794 11 view .LVU1120
3489 000a C0B2 uxtb r0, r0
1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3490 .loc 1 1794 6 view .LVU1121
3491 000c 2028 cmp r0, #32
3492 000e 40F08D80 bne .L252
3493 0012 0D46 mov r5, r1
3494 0014 1146 mov r1, r2
3495 .LVL202:
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3496 .loc 1 1796 5 is_stmt 1 view .LVU1122
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3497 .loc 1 1796 9 is_stmt 0 view .LVU1123
3498 0016 2268 ldr r2, [r4]
3499 .LVL203:
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3500 .loc 1 1796 9 view .LVU1124
3501 0018 9269 ldr r2, [r2, #24]
1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3502 .loc 1 1796 8 view .LVU1125
3503 001a 12F4004F tst r2, #32768
3504 001e 40F08880 bne .L253
ARM GAS /tmp/ccEimIdZ.s page 196
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3505 .loc 1 1802 5 is_stmt 1 view .LVU1126
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3506 .loc 1 1802 5 view .LVU1127
3507 0022 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2
3508 0026 012A cmp r2, #1
3509 0028 00F08580 beq .L254
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3510 .loc 1 1802 5 discriminator 2 view .LVU1128
3511 002c 0122 movs r2, #1
3512 002e 84F84020 strb r2, [r4, #64]
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3513 .loc 1 1802 5 discriminator 2 view .LVU1129
1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3514 .loc 1 1804 5 discriminator 2 view .LVU1130
1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3515 .loc 1 1804 23 is_stmt 0 discriminator 2 view .LVU1131
3516 0032 2122 movs r2, #33
3517 0034 84F84120 strb r2, [r4, #65]
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3518 .loc 1 1805 5 is_stmt 1 discriminator 2 view .LVU1132
1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3519 .loc 1 1805 23 is_stmt 0 discriminator 2 view .LVU1133
3520 0038 1022 movs r2, #16
3521 003a 84F84220 strb r2, [r4, #66]
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3522 .loc 1 1806 5 is_stmt 1 discriminator 2 view .LVU1134
1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3523 .loc 1 1806 23 is_stmt 0 discriminator 2 view .LVU1135
3524 003e 0022 movs r2, #0
3525 0040 6264 str r2, [r4, #68]
1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3526 .loc 1 1809 5 is_stmt 1 discriminator 2 view .LVU1136
1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3527 .loc 1 1809 23 is_stmt 0 discriminator 2 view .LVU1137
3528 0042 6162 str r1, [r4, #36]
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3529 .loc 1 1810 5 is_stmt 1 discriminator 2 view .LVU1138
1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3530 .loc 1 1810 23 is_stmt 0 discriminator 2 view .LVU1139
3531 0044 6385 strh r3, [r4, #42] @ movhi
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3532 .loc 1 1811 5 is_stmt 1 discriminator 2 view .LVU1140
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3533 .loc 1 1811 23 is_stmt 0 discriminator 2 view .LVU1141
3534 0046 3D4B ldr r3, .L258
3535 .LVL204:
1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3536 .loc 1 1811 23 discriminator 2 view .LVU1142
3537 0048 E362 str r3, [r4, #44]
3538 .LVL205:
1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3539 .loc 1 1812 5 is_stmt 1 discriminator 2 view .LVU1143
1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3540 .loc 1 1812 23 is_stmt 0 discriminator 2 view .LVU1144
3541 004a 3D4B ldr r3, .L258+4
3542 004c 6363 str r3, [r4, #52]
ARM GAS /tmp/ccEimIdZ.s page 197
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3543 .loc 1 1814 5 is_stmt 1 discriminator 2 view .LVU1145
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3544 .loc 1 1814 13 is_stmt 0 discriminator 2 view .LVU1146
3545 004e 638D ldrh r3, [r4, #42]
3546 0050 9BB2 uxth r3, r3
1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3547 .loc 1 1814 8 discriminator 2 view .LVU1147
3548 0052 FF2B cmp r3, #255
3549 0054 27D9 bls .L245
1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3550 .loc 1 1816 7 is_stmt 1 view .LVU1148
1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3551 .loc 1 1816 22 is_stmt 0 view .LVU1149
3552 0056 FF23 movs r3, #255
3553 0058 2385 strh r3, [r4, #40] @ movhi
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3554 .loc 1 1817 7 is_stmt 1 view .LVU1150
3555 .LVL206:
1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3556 .loc 1 1817 16 is_stmt 0 view .LVU1151
3557 005a 4FF08076 mov r6, #16777216
3558 .LVL207:
3559 .L246:
1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3560 .loc 1 1825 5 is_stmt 1 view .LVU1152
1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3561 .loc 1 1825 13 is_stmt 0 view .LVU1153
3562 005e 228D ldrh r2, [r4, #40]
1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3563 .loc 1 1825 8 view .LVU1154
3564 0060 002A cmp r2, #0
3565 0062 4FD0 beq .L247
1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3566 .loc 1 1827 7 is_stmt 1 view .LVU1155
1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3567 .loc 1 1827 15 is_stmt 0 view .LVU1156
3568 0064 A36B ldr r3, [r4, #56]
1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3569 .loc 1 1827 10 view .LVU1157
3570 0066 1BB3 cbz r3, .L248
1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3571 .loc 1 1830 9 is_stmt 1 view .LVU1158
1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3572 .loc 1 1830 40 is_stmt 0 view .LVU1159
3573 0068 364A ldr r2, .L258+8
3574 006a DA63 str r2, [r3, #60]
1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3575 .loc 1 1833 9 is_stmt 1 view .LVU1160
1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3576 .loc 1 1833 13 is_stmt 0 view .LVU1161
3577 006c A36B ldr r3, [r4, #56]
1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3578 .loc 1 1833 41 view .LVU1162
3579 006e 364A ldr r2, .L258+12
3580 0070 DA64 str r2, [r3, #76]
1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
ARM GAS /tmp/ccEimIdZ.s page 198
3581 .loc 1 1836 9 is_stmt 1 view .LVU1163
1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3582 .loc 1 1836 13 is_stmt 0 view .LVU1164
3583 0072 A26B ldr r2, [r4, #56]
1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3584 .loc 1 1836 44 view .LVU1165
3585 0074 0023 movs r3, #0
3586 0076 1364 str r3, [r2, #64]
1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3587 .loc 1 1837 9 is_stmt 1 view .LVU1166
1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3588 .loc 1 1837 13 is_stmt 0 view .LVU1167
3589 0078 A26B ldr r2, [r4, #56]
1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3590 .loc 1 1837 41 view .LVU1168
3591 007a 1365 str r3, [r2, #80]
1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3592 .loc 1 1840 9 is_stmt 1 view .LVU1169
1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3593 .loc 1 1840 88 is_stmt 0 view .LVU1170
3594 007c 2268 ldr r2, [r4]
1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3595 .loc 1 1840 25 view .LVU1171
3596 007e 238D ldrh r3, [r4, #40]
3597 0080 2832 adds r2, r2, #40
3598 0082 A06B ldr r0, [r4, #56]
3599 0084 FFF7FEFF bl HAL_DMA_Start_IT
3600 .LVL208:
1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3601 .loc 1 1857 7 is_stmt 1 view .LVU1172
1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3602 .loc 1 1857 10 is_stmt 0 view .LVU1173
3603 0088 00B3 cbz r0, .L257
1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3604 .loc 1 1881 9 is_stmt 1 view .LVU1174
1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3605 .loc 1 1881 25 is_stmt 0 view .LVU1175
3606 008a 2023 movs r3, #32
3607 008c 84F84130 strb r3, [r4, #65]
1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3608 .loc 1 1882 9 is_stmt 1 view .LVU1176
1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3609 .loc 1 1882 25 is_stmt 0 view .LVU1177
3610 0090 0022 movs r2, #0
3611 0092 84F84220 strb r2, [r4, #66]
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3612 .loc 1 1885 9 is_stmt 1 view .LVU1178
1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3613 .loc 1 1885 25 is_stmt 0 view .LVU1179
3614 0096 636C ldr r3, [r4, #68]
3615 0098 43F01003 orr r3, r3, #16
3616 009c 6364 str r3, [r4, #68]
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3617 .loc 1 1888 9 is_stmt 1 view .LVU1180
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3618 .loc 1 1888 9 view .LVU1181
3619 009e 84F84020 strb r2, [r4, #64]
ARM GAS /tmp/ccEimIdZ.s page 199
1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3620 .loc 1 1888 9 view .LVU1182
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3621 .loc 1 1890 9 view .LVU1183
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3622 .loc 1 1890 16 is_stmt 0 view .LVU1184
3623 00a2 0120 movs r0, #1
3624 .LVL209:
1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3625 .loc 1 1890 16 view .LVU1185
3626 00a4 43E0 b .L244
3627 .LVL210:
3628 .L245:
1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3629 .loc 1 1821 7 is_stmt 1 view .LVU1186
1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3630 .loc 1 1821 28 is_stmt 0 view .LVU1187
3631 00a6 638D ldrh r3, [r4, #42]
1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3632 .loc 1 1821 22 view .LVU1188
3633 00a8 2385 strh r3, [r4, #40] @ movhi
1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3634 .loc 1 1822 7 is_stmt 1 view .LVU1189
3635 .LVL211:
1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3636 .loc 1 1822 16 is_stmt 0 view .LVU1190
3637 00aa 4FF00076 mov r6, #33554432
3638 00ae D6E7 b .L246
3639 .LVL212:
3640 .L248:
1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3641 .loc 1 1845 9 is_stmt 1 view .LVU1191
1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3642 .loc 1 1845 25 is_stmt 0 view .LVU1192
3643 00b0 2023 movs r3, #32
3644 00b2 84F84130 strb r3, [r4, #65]
1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3645 .loc 1 1846 9 is_stmt 1 view .LVU1193
1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3646 .loc 1 1846 25 is_stmt 0 view .LVU1194
3647 00b6 0022 movs r2, #0
3648 00b8 84F84220 strb r2, [r4, #66]
1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3649 .loc 1 1849 9 is_stmt 1 view .LVU1195
1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3650 .loc 1 1849 25 is_stmt 0 view .LVU1196
3651 00bc 636C ldr r3, [r4, #68]
3652 00be 43F08003 orr r3, r3, #128
3653 00c2 6364 str r3, [r4, #68]
1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3654 .loc 1 1852 9 is_stmt 1 view .LVU1197
1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3655 .loc 1 1852 9 view .LVU1198
3656 00c4 84F84020 strb r2, [r4, #64]
1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3657 .loc 1 1852 9 view .LVU1199
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 200
3658 .loc 1 1854 9 view .LVU1200
1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3659 .loc 1 1854 16 is_stmt 0 view .LVU1201
3660 00c8 0120 movs r0, #1
3661 00ca 30E0 b .L244
3662 .LVL213:
3663 .L257:
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3664 .loc 1 1861 9 is_stmt 1 view .LVU1202
3665 00cc 1F4B ldr r3, .L258+16
3666 00ce 0093 str r3, [sp]
3667 00d0 3346 mov r3, r6
3668 00d2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3669 00d6 2946 mov r1, r5
3670 00d8 2046 mov r0, r4
3671 .LVL214:
1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3672 .loc 1 1861 9 is_stmt 0 view .LVU1203
3673 00da FFF7FEFF bl I2C_TransferConfig
3674 .LVL215:
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3675 .loc 1 1864 9 is_stmt 1 view .LVU1204
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3676 .loc 1 1864 25 is_stmt 0 view .LVU1205
3677 00de 638D ldrh r3, [r4, #42]
3678 00e0 9BB2 uxth r3, r3
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3679 .loc 1 1864 32 view .LVU1206
3680 00e2 228D ldrh r2, [r4, #40]
1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3681 .loc 1 1864 25 view .LVU1207
3682 00e4 9B1A subs r3, r3, r2
3683 00e6 9BB2 uxth r3, r3
3684 00e8 6385 strh r3, [r4, #42] @ movhi
1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3685 .loc 1 1867 9 is_stmt 1 view .LVU1208
1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3686 .loc 1 1867 9 view .LVU1209
3687 00ea 0023 movs r3, #0
3688 00ec 84F84030 strb r3, [r4, #64]
1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3689 .loc 1 1867 9 view .LVU1210
1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3690 .loc 1 1873 9 view .LVU1211
3691 00f0 1021 movs r1, #16
3692 00f2 2046 mov r0, r4
3693 00f4 FFF7FEFF bl I2C_Enable_IRQ
3694 .LVL216:
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3695 .loc 1 1876 9 view .LVU1212
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3696 .loc 1 1876 13 is_stmt 0 view .LVU1213
3697 00f8 2268 ldr r2, [r4]
1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3698 .loc 1 1876 29 view .LVU1214
3699 00fa 1368 ldr r3, [r2]
3700 00fc 43F48043 orr r3, r3, #16384
ARM GAS /tmp/ccEimIdZ.s page 201
3701 0100 1360 str r3, [r2]
3702 0102 11E0 b .L251
3703 .LVL217:
3704 .L247:
1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3705 .loc 1 1896 7 is_stmt 1 view .LVU1215
1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3706 .loc 1 1896 21 is_stmt 0 view .LVU1216
3707 0104 124B ldr r3, .L258+20
3708 0106 6363 str r3, [r4, #52]
1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3709 .loc 1 1900 7 is_stmt 1 view .LVU1217
3710 0108 104B ldr r3, .L258+16
3711 010a 0093 str r3, [sp]
3712 010c 4FF00073 mov r3, #33554432
3713 0110 D2B2 uxtb r2, r2
3714 0112 2946 mov r1, r5
3715 .LVL218:
1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3716 .loc 1 1900 7 is_stmt 0 view .LVU1218
3717 0114 2046 mov r0, r4
3718 0116 FFF7FEFF bl I2C_TransferConfig
3719 .LVL219:
1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3720 .loc 1 1903 7 is_stmt 1 view .LVU1219
1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3721 .loc 1 1903 7 view .LVU1220
3722 011a 0023 movs r3, #0
3723 011c 84F84030 strb r3, [r4, #64]
1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3724 .loc 1 1903 7 view .LVU1221
1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3725 .loc 1 1911 7 view .LVU1222
3726 0120 0121 movs r1, #1
3727 0122 2046 mov r0, r4
3728 0124 FFF7FEFF bl I2C_Enable_IRQ
3729 .LVL220:
3730 .L251:
1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3731 .loc 1 1914 5 view .LVU1223
1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3732 .loc 1 1914 12 is_stmt 0 view .LVU1224
3733 0128 0020 movs r0, #0
3734 012a 00E0 b .L244
3735 .LVL221:
3736 .L252:
1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3737 .loc 1 1918 12 view .LVU1225
3738 012c 0220 movs r0, #2
3739 .LVL222:
3740 .L244:
1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3741 .loc 1 1920 1 view .LVU1226
3742 012e 02B0 add sp, sp, #8
3743 .LCFI47:
3744 .cfi_remember_state
3745 .cfi_def_cfa_offset 16
ARM GAS /tmp/ccEimIdZ.s page 202
3746 @ sp needed
3747 0130 70BD pop {r4, r5, r6, pc}
3748 .LVL223:
3749 .L253:
3750 .LCFI48:
3751 .cfi_restore_state
1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3752 .loc 1 1798 14 view .LVU1227
3753 0132 0220 movs r0, #2
3754 0134 FBE7 b .L244
3755 .L254:
1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3756 .loc 1 1802 5 view .LVU1228
3757 0136 0220 movs r0, #2
3758 0138 F9E7 b .L244
3759 .L259:
3760 013a 00BF .align 2
3761 .L258:
3762 013c 0000FFFF .word -65536
3763 0140 00000000 .word I2C_Master_ISR_DMA
3764 0144 00000000 .word I2C_DMAMasterTransmitCplt
3765 0148 00000000 .word I2C_DMAError
3766 014c 00200080 .word -2147475456
3767 0150 00000000 .word I2C_Master_ISR_IT
3768 .cfi_endproc
3769 .LFE153:
3771 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
3772 .align 1
3773 .global HAL_I2C_Master_Receive_DMA
3774 .syntax unified
3775 .thumb
3776 .thumb_func
3777 .fpu fpv5-d16
3779 HAL_I2C_Master_Receive_DMA:
3780 .LVL224:
3781 .LFB154:
1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3782 .loc 1 1933 1 is_stmt 1 view -0
3783 .cfi_startproc
3784 @ args = 0, pretend = 0, frame = 0
3785 @ frame_needed = 0, uses_anonymous_args = 0
1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
3786 .loc 1 1933 1 is_stmt 0 view .LVU1230
3787 0000 70B5 push {r4, r5, r6, lr}
3788 .LCFI49:
3789 .cfi_def_cfa_offset 16
3790 .cfi_offset 4, -16
3791 .cfi_offset 5, -12
3792 .cfi_offset 6, -8
3793 .cfi_offset 14, -4
3794 0002 82B0 sub sp, sp, #8
3795 .LCFI50:
3796 .cfi_def_cfa_offset 24
3797 0004 0446 mov r4, r0
1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3798 .loc 1 1934 3 is_stmt 1 view .LVU1231
1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 203
3799 .loc 1 1935 3 view .LVU1232
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3800 .loc 1 1937 3 view .LVU1233
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3801 .loc 1 1937 11 is_stmt 0 view .LVU1234
3802 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3803 .LVL225:
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3804 .loc 1 1937 11 view .LVU1235
3805 000a C0B2 uxtb r0, r0
1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3806 .loc 1 1937 6 view .LVU1236
3807 000c 2028 cmp r0, #32
3808 000e 40F08C80 bne .L269
3809 0012 0D46 mov r5, r1
1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3810 .loc 1 1939 5 is_stmt 1 view .LVU1237
1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3811 .loc 1 1939 9 is_stmt 0 view .LVU1238
3812 0014 2168 ldr r1, [r4]
3813 .LVL226:
1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3814 .loc 1 1939 9 view .LVU1239
3815 0016 8969 ldr r1, [r1, #24]
1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3816 .loc 1 1939 8 view .LVU1240
3817 0018 11F4004F tst r1, #32768
3818 001c 40F08880 bne .L270
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3819 .loc 1 1945 5 is_stmt 1 view .LVU1241
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3820 .loc 1 1945 5 view .LVU1242
3821 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
3822 0024 0129 cmp r1, #1
3823 0026 00F08580 beq .L271
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3824 .loc 1 1945 5 discriminator 2 view .LVU1243
3825 002a 0121 movs r1, #1
3826 002c 84F84010 strb r1, [r4, #64]
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3827 .loc 1 1945 5 discriminator 2 view .LVU1244
1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3828 .loc 1 1947 5 discriminator 2 view .LVU1245
1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3829 .loc 1 1947 23 is_stmt 0 discriminator 2 view .LVU1246
3830 0030 2221 movs r1, #34
3831 0032 84F84110 strb r1, [r4, #65]
1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3832 .loc 1 1948 5 is_stmt 1 discriminator 2 view .LVU1247
1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3833 .loc 1 1948 23 is_stmt 0 discriminator 2 view .LVU1248
3834 0036 1021 movs r1, #16
3835 0038 84F84210 strb r1, [r4, #66]
1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3836 .loc 1 1949 5 is_stmt 1 discriminator 2 view .LVU1249
1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3837 .loc 1 1949 23 is_stmt 0 discriminator 2 view .LVU1250
ARM GAS /tmp/ccEimIdZ.s page 204
3838 003c 0021 movs r1, #0
3839 003e 6164 str r1, [r4, #68]
1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3840 .loc 1 1952 5 is_stmt 1 discriminator 2 view .LVU1251
1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
3841 .loc 1 1952 23 is_stmt 0 discriminator 2 view .LVU1252
3842 0040 6262 str r2, [r4, #36]
1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3843 .loc 1 1953 5 is_stmt 1 discriminator 2 view .LVU1253
1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3844 .loc 1 1953 23 is_stmt 0 discriminator 2 view .LVU1254
3845 0042 6385 strh r3, [r4, #42] @ movhi
1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3846 .loc 1 1954 5 is_stmt 1 discriminator 2 view .LVU1255
1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3847 .loc 1 1954 23 is_stmt 0 discriminator 2 view .LVU1256
3848 0044 3C4B ldr r3, .L275
3849 .LVL227:
1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3850 .loc 1 1954 23 discriminator 2 view .LVU1257
3851 0046 E362 str r3, [r4, #44]
3852 .LVL228:
1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3853 .loc 1 1955 5 is_stmt 1 discriminator 2 view .LVU1258
1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3854 .loc 1 1955 23 is_stmt 0 discriminator 2 view .LVU1259
3855 0048 3C4B ldr r3, .L275+4
3856 004a 6363 str r3, [r4, #52]
1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3857 .loc 1 1957 5 is_stmt 1 discriminator 2 view .LVU1260
1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3858 .loc 1 1957 13 is_stmt 0 discriminator 2 view .LVU1261
3859 004c 638D ldrh r3, [r4, #42]
3860 004e 9BB2 uxth r3, r3
1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3861 .loc 1 1957 8 discriminator 2 view .LVU1262
3862 0050 FF2B cmp r3, #255
3863 0052 27D9 bls .L262
1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3864 .loc 1 1959 7 is_stmt 1 view .LVU1263
1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3865 .loc 1 1959 22 is_stmt 0 view .LVU1264
3866 0054 FF23 movs r3, #255
3867 0056 2385 strh r3, [r4, #40] @ movhi
1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3868 .loc 1 1960 7 is_stmt 1 view .LVU1265
3869 .LVL229:
1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3870 .loc 1 1960 16 is_stmt 0 view .LVU1266
3871 0058 4FF08076 mov r6, #16777216
3872 .LVL230:
3873 .L263:
1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3874 .loc 1 1968 5 is_stmt 1 view .LVU1267
1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3875 .loc 1 1968 13 is_stmt 0 view .LVU1268
3876 005c 218D ldrh r1, [r4, #40]
ARM GAS /tmp/ccEimIdZ.s page 205
1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3877 .loc 1 1968 8 view .LVU1269
3878 005e 0029 cmp r1, #0
3879 0060 4FD0 beq .L264
1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3880 .loc 1 1970 7 is_stmt 1 view .LVU1270
1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3881 .loc 1 1970 15 is_stmt 0 view .LVU1271
3882 0062 E36B ldr r3, [r4, #60]
1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3883 .loc 1 1970 10 view .LVU1272
3884 0064 1BB3 cbz r3, .L265
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3885 .loc 1 1973 9 is_stmt 1 view .LVU1273
1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3886 .loc 1 1973 40 is_stmt 0 view .LVU1274
3887 0066 3649 ldr r1, .L275+8
3888 0068 D963 str r1, [r3, #60]
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3889 .loc 1 1976 9 is_stmt 1 view .LVU1275
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3890 .loc 1 1976 13 is_stmt 0 view .LVU1276
3891 006a E36B ldr r3, [r4, #60]
1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3892 .loc 1 1976 41 view .LVU1277
3893 006c 3549 ldr r1, .L275+12
3894 006e D964 str r1, [r3, #76]
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3895 .loc 1 1979 9 is_stmt 1 view .LVU1278
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3896 .loc 1 1979 13 is_stmt 0 view .LVU1279
3897 0070 E16B ldr r1, [r4, #60]
1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3898 .loc 1 1979 44 view .LVU1280
3899 0072 0023 movs r3, #0
3900 0074 0B64 str r3, [r1, #64]
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3901 .loc 1 1980 9 is_stmt 1 view .LVU1281
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3902 .loc 1 1980 13 is_stmt 0 view .LVU1282
3903 0076 E16B ldr r1, [r4, #60]
1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3904 .loc 1 1980 41 view .LVU1283
3905 0078 0B65 str r3, [r1, #80]
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3906 .loc 1 1983 9 is_stmt 1 view .LVU1284
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3907 .loc 1 1983 71 is_stmt 0 view .LVU1285
3908 007a 2168 ldr r1, [r4]
1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3909 .loc 1 1983 25 view .LVU1286
3910 007c 238D ldrh r3, [r4, #40]
3911 007e 2431 adds r1, r1, #36
3912 0080 E06B ldr r0, [r4, #60]
3913 0082 FFF7FEFF bl HAL_DMA_Start_IT
3914 .LVL231:
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 206
3915 .loc 1 2000 7 is_stmt 1 view .LVU1287
2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
3916 .loc 1 2000 10 is_stmt 0 view .LVU1288
3917 0086 00B3 cbz r0, .L274
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3918 .loc 1 2024 9 is_stmt 1 view .LVU1289
2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3919 .loc 1 2024 25 is_stmt 0 view .LVU1290
3920 0088 2023 movs r3, #32
3921 008a 84F84130 strb r3, [r4, #65]
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3922 .loc 1 2025 9 is_stmt 1 view .LVU1291
2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3923 .loc 1 2025 25 is_stmt 0 view .LVU1292
3924 008e 0022 movs r2, #0
3925 0090 84F84220 strb r2, [r4, #66]
2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3926 .loc 1 2028 9 is_stmt 1 view .LVU1293
2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3927 .loc 1 2028 25 is_stmt 0 view .LVU1294
3928 0094 636C ldr r3, [r4, #68]
3929 0096 43F01003 orr r3, r3, #16
3930 009a 6364 str r3, [r4, #68]
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3931 .loc 1 2031 9 is_stmt 1 view .LVU1295
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3932 .loc 1 2031 9 view .LVU1296
3933 009c 84F84020 strb r2, [r4, #64]
2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3934 .loc 1 2031 9 view .LVU1297
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3935 .loc 1 2033 9 view .LVU1298
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3936 .loc 1 2033 16 is_stmt 0 view .LVU1299
3937 00a0 0120 movs r0, #1
3938 .LVL232:
2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3939 .loc 1 2033 16 view .LVU1300
3940 00a2 43E0 b .L261
3941 .LVL233:
3942 .L262:
1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3943 .loc 1 1964 7 is_stmt 1 view .LVU1301
1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3944 .loc 1 1964 28 is_stmt 0 view .LVU1302
3945 00a4 638D ldrh r3, [r4, #42]
1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3946 .loc 1 1964 22 view .LVU1303
3947 00a6 2385 strh r3, [r4, #40] @ movhi
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3948 .loc 1 1965 7 is_stmt 1 view .LVU1304
3949 .LVL234:
1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3950 .loc 1 1965 16 is_stmt 0 view .LVU1305
3951 00a8 4FF00076 mov r6, #33554432
3952 00ac D6E7 b .L263
3953 .LVL235:
ARM GAS /tmp/ccEimIdZ.s page 207
3954 .L265:
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3955 .loc 1 1988 9 is_stmt 1 view .LVU1306
1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3956 .loc 1 1988 25 is_stmt 0 view .LVU1307
3957 00ae 2023 movs r3, #32
3958 00b0 84F84130 strb r3, [r4, #65]
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3959 .loc 1 1989 9 is_stmt 1 view .LVU1308
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3960 .loc 1 1989 25 is_stmt 0 view .LVU1309
3961 00b4 0022 movs r2, #0
3962 .LVL236:
1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3963 .loc 1 1989 25 view .LVU1310
3964 00b6 84F84220 strb r2, [r4, #66]
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3965 .loc 1 1992 9 is_stmt 1 view .LVU1311
1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3966 .loc 1 1992 25 is_stmt 0 view .LVU1312
3967 00ba 636C ldr r3, [r4, #68]
3968 00bc 43F08003 orr r3, r3, #128
3969 00c0 6364 str r3, [r4, #68]
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3970 .loc 1 1995 9 is_stmt 1 view .LVU1313
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3971 .loc 1 1995 9 view .LVU1314
3972 00c2 84F84020 strb r2, [r4, #64]
1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3973 .loc 1 1995 9 view .LVU1315
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3974 .loc 1 1997 9 view .LVU1316
1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
3975 .loc 1 1997 16 is_stmt 0 view .LVU1317
3976 00c6 0120 movs r0, #1
3977 00c8 30E0 b .L261
3978 .LVL237:
3979 .L274:
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3980 .loc 1 2004 9 is_stmt 1 view .LVU1318
3981 00ca 1F4B ldr r3, .L275+16
3982 00cc 0093 str r3, [sp]
3983 00ce 3346 mov r3, r6
3984 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3985 00d4 2946 mov r1, r5
3986 00d6 2046 mov r0, r4
3987 .LVL238:
2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3988 .loc 1 2004 9 is_stmt 0 view .LVU1319
3989 00d8 FFF7FEFF bl I2C_TransferConfig
3990 .LVL239:
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3991 .loc 1 2007 9 is_stmt 1 view .LVU1320
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3992 .loc 1 2007 25 is_stmt 0 view .LVU1321
3993 00dc 638D ldrh r3, [r4, #42]
3994 00de 9BB2 uxth r3, r3
ARM GAS /tmp/ccEimIdZ.s page 208
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3995 .loc 1 2007 32 view .LVU1322
3996 00e0 228D ldrh r2, [r4, #40]
2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
3997 .loc 1 2007 25 view .LVU1323
3998 00e2 9B1A subs r3, r3, r2
3999 00e4 9BB2 uxth r3, r3
4000 00e6 6385 strh r3, [r4, #42] @ movhi
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4001 .loc 1 2010 9 is_stmt 1 view .LVU1324
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4002 .loc 1 2010 9 view .LVU1325
4003 00e8 0023 movs r3, #0
4004 00ea 84F84030 strb r3, [r4, #64]
2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4005 .loc 1 2010 9 view .LVU1326
2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4006 .loc 1 2016 9 view .LVU1327
4007 00ee 1021 movs r1, #16
4008 00f0 2046 mov r0, r4
4009 00f2 FFF7FEFF bl I2C_Enable_IRQ
4010 .LVL240:
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4011 .loc 1 2019 9 view .LVU1328
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4012 .loc 1 2019 13 is_stmt 0 view .LVU1329
4013 00f6 2268 ldr r2, [r4]
2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4014 .loc 1 2019 29 view .LVU1330
4015 00f8 1368 ldr r3, [r2]
4016 00fa 43F40043 orr r3, r3, #32768
4017 00fe 1360 str r3, [r2]
4018 0100 11E0 b .L268
4019 .LVL241:
4020 .L264:
2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4021 .loc 1 2039 7 is_stmt 1 view .LVU1331
2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4022 .loc 1 2039 21 is_stmt 0 view .LVU1332
4023 0102 124B ldr r3, .L275+20
4024 0104 6363 str r3, [r4, #52]
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4025 .loc 1 2043 7 is_stmt 1 view .LVU1333
4026 0106 104B ldr r3, .L275+16
4027 0108 0093 str r3, [sp]
4028 010a 4FF00073 mov r3, #33554432
4029 010e CAB2 uxtb r2, r1
4030 .LVL242:
2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4031 .loc 1 2043 7 is_stmt 0 view .LVU1334
4032 0110 2946 mov r1, r5
4033 0112 2046 mov r0, r4
4034 0114 FFF7FEFF bl I2C_TransferConfig
4035 .LVL243:
2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4036 .loc 1 2046 7 is_stmt 1 view .LVU1335
2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 209
4037 .loc 1 2046 7 view .LVU1336
4038 0118 0023 movs r3, #0
4039 011a 84F84030 strb r3, [r4, #64]
2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4040 .loc 1 2046 7 view .LVU1337
2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4041 .loc 1 2054 7 view .LVU1338
4042 011e 0121 movs r1, #1
4043 0120 2046 mov r0, r4
4044 0122 FFF7FEFF bl I2C_Enable_IRQ
4045 .LVL244:
4046 .L268:
2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4047 .loc 1 2057 5 view .LVU1339
2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4048 .loc 1 2057 12 is_stmt 0 view .LVU1340
4049 0126 0020 movs r0, #0
4050 0128 00E0 b .L261
4051 .LVL245:
4052 .L269:
2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4053 .loc 1 2061 12 view .LVU1341
4054 012a 0220 movs r0, #2
4055 .LVL246:
4056 .L261:
2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4057 .loc 1 2063 1 view .LVU1342
4058 012c 02B0 add sp, sp, #8
4059 .LCFI51:
4060 .cfi_remember_state
4061 .cfi_def_cfa_offset 16
4062 @ sp needed
4063 012e 70BD pop {r4, r5, r6, pc}
4064 .LVL247:
4065 .L270:
4066 .LCFI52:
4067 .cfi_restore_state
1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4068 .loc 1 1941 14 view .LVU1343
4069 0130 0220 movs r0, #2
4070 0132 FBE7 b .L261
4071 .L271:
1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4072 .loc 1 1945 5 view .LVU1344
4073 0134 0220 movs r0, #2
4074 0136 F9E7 b .L261
4075 .L276:
4076 .align 2
4077 .L275:
4078 0138 0000FFFF .word -65536
4079 013c 00000000 .word I2C_Master_ISR_DMA
4080 0140 00000000 .word I2C_DMAMasterReceiveCplt
4081 0144 00000000 .word I2C_DMAError
4082 0148 00240080 .word -2147474432
4083 014c 00000000 .word I2C_Master_ISR_IT
4084 .cfi_endproc
4085 .LFE154:
ARM GAS /tmp/ccEimIdZ.s page 210
4087 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
4088 .align 1
4089 .global HAL_I2C_Slave_Transmit_DMA
4090 .syntax unified
4091 .thumb
4092 .thumb_func
4093 .fpu fpv5-d16
4095 HAL_I2C_Slave_Transmit_DMA:
4096 .LVL248:
4097 .LFB155:
2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4098 .loc 1 2074 1 is_stmt 1 view -0
4099 .cfi_startproc
4100 @ args = 0, pretend = 0, frame = 0
4101 @ frame_needed = 0, uses_anonymous_args = 0
2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4102 .loc 1 2074 1 is_stmt 0 view .LVU1346
4103 0000 38B5 push {r3, r4, r5, lr}
4104 .LCFI53:
4105 .cfi_def_cfa_offset 16
4106 .cfi_offset 3, -16
4107 .cfi_offset 4, -12
4108 .cfi_offset 5, -8
4109 .cfi_offset 14, -4
2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4110 .loc 1 2075 3 is_stmt 1 view .LVU1347
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4111 .loc 1 2077 3 view .LVU1348
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4112 .loc 1 2077 11 is_stmt 0 view .LVU1349
4113 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4114 0006 DBB2 uxtb r3, r3
2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4115 .loc 1 2077 6 view .LVU1350
4116 0008 202B cmp r3, #32
4117 000a 63D1 bne .L283
4118 000c 0446 mov r4, r0
2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4119 .loc 1 2079 5 is_stmt 1 view .LVU1351
2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4120 .loc 1 2079 8 is_stmt 0 view .LVU1352
4121 000e 002A cmp r2, #0
4122 0010 18BF it ne
4123 0012 0029 cmpne r1, #0
4124 0014 38D0 beq .L287
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4125 .loc 1 2085 5 is_stmt 1 view .LVU1353
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4126 .loc 1 2085 5 view .LVU1354
4127 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4128 001a 012B cmp r3, #1
4129 001c 5DD0 beq .L284
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4130 .loc 1 2085 5 discriminator 2 view .LVU1355
4131 001e 0123 movs r3, #1
4132 0020 80F84030 strb r3, [r0, #64]
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 211
4133 .loc 1 2085 5 discriminator 2 view .LVU1356
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4134 .loc 1 2087 5 discriminator 2 view .LVU1357
2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4135 .loc 1 2087 23 is_stmt 0 discriminator 2 view .LVU1358
4136 0024 2123 movs r3, #33
4137 0026 80F84130 strb r3, [r0, #65]
2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4138 .loc 1 2088 5 is_stmt 1 discriminator 2 view .LVU1359
2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4139 .loc 1 2088 23 is_stmt 0 discriminator 2 view .LVU1360
4140 002a 2023 movs r3, #32
4141 002c 80F84230 strb r3, [r0, #66]
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4142 .loc 1 2089 5 is_stmt 1 discriminator 2 view .LVU1361
2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4143 .loc 1 2089 23 is_stmt 0 discriminator 2 view .LVU1362
4144 0030 0023 movs r3, #0
4145 0032 4364 str r3, [r0, #68]
2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4146 .loc 1 2092 5 is_stmt 1 discriminator 2 view .LVU1363
2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4147 .loc 1 2092 23 is_stmt 0 discriminator 2 view .LVU1364
4148 0034 4162 str r1, [r0, #36]
2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4149 .loc 1 2093 5 is_stmt 1 discriminator 2 view .LVU1365
2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4150 .loc 1 2093 23 is_stmt 0 discriminator 2 view .LVU1366
4151 0036 4285 strh r2, [r0, #42] @ movhi
2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4152 .loc 1 2094 5 is_stmt 1 discriminator 2 view .LVU1367
2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4153 .loc 1 2094 29 is_stmt 0 discriminator 2 view .LVU1368
4154 0038 438D ldrh r3, [r0, #42]
2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4155 .loc 1 2094 23 discriminator 2 view .LVU1369
4156 003a 0385 strh r3, [r0, #40] @ movhi
2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4157 .loc 1 2095 5 is_stmt 1 discriminator 2 view .LVU1370
2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4158 .loc 1 2095 23 is_stmt 0 discriminator 2 view .LVU1371
4159 003c 284B ldr r3, .L289
4160 003e C362 str r3, [r0, #44]
2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4161 .loc 1 2096 5 is_stmt 1 discriminator 2 view .LVU1372
2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4162 .loc 1 2096 23 is_stmt 0 discriminator 2 view .LVU1373
4163 0040 284B ldr r3, .L289+4
4164 0042 4363 str r3, [r0, #52]
2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4165 .loc 1 2098 5 is_stmt 1 discriminator 2 view .LVU1374
2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4166 .loc 1 2098 13 is_stmt 0 discriminator 2 view .LVU1375
4167 0044 836B ldr r3, [r0, #56]
2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4168 .loc 1 2098 8 discriminator 2 view .LVU1376
4169 0046 23B3 cbz r3, .L280
ARM GAS /tmp/ccEimIdZ.s page 212
2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4170 .loc 1 2101 7 is_stmt 1 view .LVU1377
2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4171 .loc 1 2101 38 is_stmt 0 view .LVU1378
4172 0048 274A ldr r2, .L289+8
4173 .LVL249:
2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4174 .loc 1 2101 38 view .LVU1379
4175 004a DA63 str r2, [r3, #60]
2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4176 .loc 1 2104 7 is_stmt 1 view .LVU1380
2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4177 .loc 1 2104 11 is_stmt 0 view .LVU1381
4178 004c 836B ldr r3, [r0, #56]
2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4179 .loc 1 2104 39 view .LVU1382
4180 004e 274A ldr r2, .L289+12
4181 0050 DA64 str r2, [r3, #76]
2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4182 .loc 1 2107 7 is_stmt 1 view .LVU1383
2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4183 .loc 1 2107 11 is_stmt 0 view .LVU1384
4184 0052 826B ldr r2, [r0, #56]
2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4185 .loc 1 2107 42 view .LVU1385
4186 0054 0023 movs r3, #0
4187 0056 1364 str r3, [r2, #64]
2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4188 .loc 1 2108 7 is_stmt 1 view .LVU1386
2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4189 .loc 1 2108 11 is_stmt 0 view .LVU1387
4190 0058 826B ldr r2, [r0, #56]
2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4191 .loc 1 2108 39 view .LVU1388
4192 005a 1365 str r3, [r2, #80]
2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4193 .loc 1 2111 7 is_stmt 1 view .LVU1389
2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4194 .loc 1 2111 86 is_stmt 0 view .LVU1390
4195 005c 0268 ldr r2, [r0]
2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4196 .loc 1 2111 23 view .LVU1391
4197 005e 038D ldrh r3, [r0, #40]
4198 0060 2832 adds r2, r2, #40
4199 0062 806B ldr r0, [r0, #56]
4200 .LVL250:
2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4201 .loc 1 2111 23 view .LVU1392
4202 0064 FFF7FEFF bl HAL_DMA_Start_IT
4203 .LVL251:
2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4204 .loc 1 2128 5 is_stmt 1 view .LVU1393
2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4205 .loc 1 2128 8 is_stmt 0 view .LVU1394
4206 0068 0546 mov r5, r0
4207 006a 00B3 cbz r0, .L288
2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
ARM GAS /tmp/ccEimIdZ.s page 213
4208 .loc 1 2148 7 is_stmt 1 view .LVU1395
2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4209 .loc 1 2148 23 is_stmt 0 view .LVU1396
4210 006c 2823 movs r3, #40
4211 006e 84F84130 strb r3, [r4, #65]
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4212 .loc 1 2149 7 is_stmt 1 view .LVU1397
2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4213 .loc 1 2149 23 is_stmt 0 view .LVU1398
4214 0072 0022 movs r2, #0
4215 0074 84F84220 strb r2, [r4, #66]
2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4216 .loc 1 2152 7 is_stmt 1 view .LVU1399
2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4217 .loc 1 2152 23 is_stmt 0 view .LVU1400
4218 0078 636C ldr r3, [r4, #68]
4219 007a 43F01003 orr r3, r3, #16
4220 007e 6364 str r3, [r4, #68]
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4221 .loc 1 2155 7 is_stmt 1 view .LVU1401
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4222 .loc 1 2155 7 view .LVU1402
4223 0080 84F84020 strb r2, [r4, #64]
2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4224 .loc 1 2155 7 view .LVU1403
2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4225 .loc 1 2157 7 view .LVU1404
2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4226 .loc 1 2157 14 is_stmt 0 view .LVU1405
4227 0084 0125 movs r5, #1
4228 0086 26E0 b .L278
4229 .LVL252:
4230 .L287:
2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4231 .loc 1 2081 7 is_stmt 1 view .LVU1406
2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4232 .loc 1 2081 23 is_stmt 0 view .LVU1407
4233 0088 4FF40073 mov r3, #512
4234 008c 4364 str r3, [r0, #68]
2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4235 .loc 1 2082 7 is_stmt 1 view .LVU1408
2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4236 .loc 1 2082 15 is_stmt 0 view .LVU1409
4237 008e 0125 movs r5, #1
4238 0090 21E0 b .L278
4239 .L280:
2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4240 .loc 1 2116 7 is_stmt 1 view .LVU1410
2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4241 .loc 1 2116 23 is_stmt 0 view .LVU1411
4242 0092 2823 movs r3, #40
4243 0094 80F84130 strb r3, [r0, #65]
2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4244 .loc 1 2117 7 is_stmt 1 view .LVU1412
2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4245 .loc 1 2117 23 is_stmt 0 view .LVU1413
4246 0098 0022 movs r2, #0
ARM GAS /tmp/ccEimIdZ.s page 214
4247 .LVL253:
2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4248 .loc 1 2117 23 view .LVU1414
4249 009a 80F84220 strb r2, [r0, #66]
2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4250 .loc 1 2120 7 is_stmt 1 view .LVU1415
2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4251 .loc 1 2120 23 is_stmt 0 view .LVU1416
4252 009e 436C ldr r3, [r0, #68]
4253 00a0 43F08003 orr r3, r3, #128
4254 00a4 4364 str r3, [r0, #68]
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4255 .loc 1 2123 7 is_stmt 1 view .LVU1417
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4256 .loc 1 2123 7 view .LVU1418
4257 00a6 80F84020 strb r2, [r0, #64]
2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4258 .loc 1 2123 7 view .LVU1419
2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4259 .loc 1 2125 7 view .LVU1420
2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4260 .loc 1 2125 14 is_stmt 0 view .LVU1421
4261 00aa 0125 movs r5, #1
4262 00ac 13E0 b .L278
4263 .LVL254:
4264 .L288:
2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4265 .loc 1 2131 7 is_stmt 1 view .LVU1422
2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4266 .loc 1 2131 11 is_stmt 0 view .LVU1423
4267 00ae 2268 ldr r2, [r4]
2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4268 .loc 1 2131 27 view .LVU1424
4269 00b0 5368 ldr r3, [r2, #4]
4270 00b2 23F40043 bic r3, r3, #32768
4271 00b6 5360 str r3, [r2, #4]
2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4272 .loc 1 2134 7 is_stmt 1 view .LVU1425
2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4273 .loc 1 2134 7 view .LVU1426
4274 00b8 0023 movs r3, #0
4275 00ba 84F84030 strb r3, [r4, #64]
2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4276 .loc 1 2134 7 view .LVU1427
2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4277 .loc 1 2140 7 view .LVU1428
4278 00be 4FF40041 mov r1, #32768
4279 00c2 2046 mov r0, r4
4280 .LVL255:
2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4281 .loc 1 2140 7 is_stmt 0 view .LVU1429
4282 00c4 FFF7FEFF bl I2C_Enable_IRQ
4283 .LVL256:
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4284 .loc 1 2143 7 is_stmt 1 view .LVU1430
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4285 .loc 1 2143 11 is_stmt 0 view .LVU1431
ARM GAS /tmp/ccEimIdZ.s page 215
4286 00c8 2268 ldr r2, [r4]
2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4287 .loc 1 2143 27 view .LVU1432
4288 00ca 1368 ldr r3, [r2]
4289 00cc 43F48043 orr r3, r3, #16384
4290 00d0 1360 str r3, [r2]
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4291 .loc 1 2160 5 is_stmt 1 view .LVU1433
2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4292 .loc 1 2160 12 is_stmt 0 view .LVU1434
4293 00d2 00E0 b .L278
4294 .LVL257:
4295 .L283:
2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4296 .loc 1 2164 12 view .LVU1435
4297 00d4 0225 movs r5, #2
4298 .LVL258:
4299 .L278:
2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4300 .loc 1 2166 1 view .LVU1436
4301 00d6 2846 mov r0, r5
4302 00d8 38BD pop {r3, r4, r5, pc}
4303 .LVL259:
4304 .L284:
2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4305 .loc 1 2085 5 view .LVU1437
4306 00da 0225 movs r5, #2
4307 00dc FBE7 b .L278
4308 .L290:
4309 00de 00BF .align 2
4310 .L289:
4311 00e0 0000FFFF .word -65536
4312 00e4 00000000 .word I2C_Slave_ISR_DMA
4313 00e8 00000000 .word I2C_DMASlaveTransmitCplt
4314 00ec 00000000 .word I2C_DMAError
4315 .cfi_endproc
4316 .LFE155:
4318 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
4319 .align 1
4320 .global HAL_I2C_Slave_Receive_DMA
4321 .syntax unified
4322 .thumb
4323 .thumb_func
4324 .fpu fpv5-d16
4326 HAL_I2C_Slave_Receive_DMA:
4327 .LVL260:
4328 .LFB156:
2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4329 .loc 1 2177 1 is_stmt 1 view -0
4330 .cfi_startproc
4331 @ args = 0, pretend = 0, frame = 0
4332 @ frame_needed = 0, uses_anonymous_args = 0
2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4333 .loc 1 2177 1 is_stmt 0 view .LVU1439
4334 0000 38B5 push {r3, r4, r5, lr}
4335 .LCFI54:
4336 .cfi_def_cfa_offset 16
ARM GAS /tmp/ccEimIdZ.s page 216
4337 .cfi_offset 3, -16
4338 .cfi_offset 4, -12
4339 .cfi_offset 5, -8
4340 .cfi_offset 14, -4
2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4341 .loc 1 2178 3 is_stmt 1 view .LVU1440
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4342 .loc 1 2180 3 view .LVU1441
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4343 .loc 1 2180 11 is_stmt 0 view .LVU1442
4344 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4345 0006 DBB2 uxtb r3, r3
2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4346 .loc 1 2180 6 view .LVU1443
4347 0008 202B cmp r3, #32
4348 000a 65D1 bne .L297
4349 000c 0446 mov r4, r0
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4350 .loc 1 2182 5 is_stmt 1 view .LVU1444
2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4351 .loc 1 2182 8 is_stmt 0 view .LVU1445
4352 000e 002A cmp r2, #0
4353 0010 18BF it ne
4354 0012 0029 cmpne r1, #0
4355 0014 3AD0 beq .L301
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4356 .loc 1 2188 5 is_stmt 1 view .LVU1446
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4357 .loc 1 2188 5 view .LVU1447
4358 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4359 001a 012B cmp r3, #1
4360 001c 5FD0 beq .L298
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4361 .loc 1 2188 5 discriminator 2 view .LVU1448
4362 001e 0123 movs r3, #1
4363 0020 80F84030 strb r3, [r0, #64]
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4364 .loc 1 2188 5 discriminator 2 view .LVU1449
2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4365 .loc 1 2190 5 discriminator 2 view .LVU1450
2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4366 .loc 1 2190 23 is_stmt 0 discriminator 2 view .LVU1451
4367 0024 2223 movs r3, #34
4368 0026 80F84130 strb r3, [r0, #65]
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4369 .loc 1 2191 5 is_stmt 1 discriminator 2 view .LVU1452
2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4370 .loc 1 2191 23 is_stmt 0 discriminator 2 view .LVU1453
4371 002a 2023 movs r3, #32
4372 002c 80F84230 strb r3, [r0, #66]
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4373 .loc 1 2192 5 is_stmt 1 discriminator 2 view .LVU1454
2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4374 .loc 1 2192 23 is_stmt 0 discriminator 2 view .LVU1455
4375 0030 0023 movs r3, #0
4376 0032 4364 str r3, [r0, #68]
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
ARM GAS /tmp/ccEimIdZ.s page 217
4377 .loc 1 2195 5 is_stmt 1 discriminator 2 view .LVU1456
2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4378 .loc 1 2195 23 is_stmt 0 discriminator 2 view .LVU1457
4379 0034 4162 str r1, [r0, #36]
2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4380 .loc 1 2196 5 is_stmt 1 discriminator 2 view .LVU1458
2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4381 .loc 1 2196 23 is_stmt 0 discriminator 2 view .LVU1459
4382 0036 4285 strh r2, [r0, #42] @ movhi
2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4383 .loc 1 2197 5 is_stmt 1 discriminator 2 view .LVU1460
2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4384 .loc 1 2197 29 is_stmt 0 discriminator 2 view .LVU1461
4385 0038 438D ldrh r3, [r0, #42]
2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4386 .loc 1 2197 23 discriminator 2 view .LVU1462
4387 003a 0385 strh r3, [r0, #40] @ movhi
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4388 .loc 1 2198 5 is_stmt 1 discriminator 2 view .LVU1463
2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4389 .loc 1 2198 23 is_stmt 0 discriminator 2 view .LVU1464
4390 003c 294B ldr r3, .L303
4391 003e C362 str r3, [r0, #44]
2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4392 .loc 1 2199 5 is_stmt 1 discriminator 2 view .LVU1465
2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4393 .loc 1 2199 23 is_stmt 0 discriminator 2 view .LVU1466
4394 0040 294B ldr r3, .L303+4
4395 0042 4363 str r3, [r0, #52]
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4396 .loc 1 2201 5 is_stmt 1 discriminator 2 view .LVU1467
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4397 .loc 1 2201 13 is_stmt 0 discriminator 2 view .LVU1468
4398 0044 C36B ldr r3, [r0, #60]
2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4399 .loc 1 2201 8 discriminator 2 view .LVU1469
4400 0046 33B3 cbz r3, .L294
2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4401 .loc 1 2204 7 is_stmt 1 view .LVU1470
2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4402 .loc 1 2204 38 is_stmt 0 view .LVU1471
4403 0048 284A ldr r2, .L303+8
4404 .LVL261:
2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4405 .loc 1 2204 38 view .LVU1472
4406 004a DA63 str r2, [r3, #60]
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4407 .loc 1 2207 7 is_stmt 1 view .LVU1473
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4408 .loc 1 2207 11 is_stmt 0 view .LVU1474
4409 004c C36B ldr r3, [r0, #60]
2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4410 .loc 1 2207 39 view .LVU1475
4411 004e 284A ldr r2, .L303+12
4412 0050 DA64 str r2, [r3, #76]
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4413 .loc 1 2210 7 is_stmt 1 view .LVU1476
ARM GAS /tmp/ccEimIdZ.s page 218
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4414 .loc 1 2210 11 is_stmt 0 view .LVU1477
4415 0052 C26B ldr r2, [r0, #60]
2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4416 .loc 1 2210 42 view .LVU1478
4417 0054 0023 movs r3, #0
4418 0056 1364 str r3, [r2, #64]
2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4419 .loc 1 2211 7 is_stmt 1 view .LVU1479
2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4420 .loc 1 2211 11 is_stmt 0 view .LVU1480
4421 0058 C26B ldr r2, [r0, #60]
2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4422 .loc 1 2211 39 view .LVU1481
4423 005a 1365 str r3, [r2, #80]
2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4424 .loc 1 2214 7 is_stmt 1 view .LVU1482
2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4425 .loc 1 2214 69 is_stmt 0 view .LVU1483
4426 005c 0068 ldr r0, [r0]
4427 .LVL262:
2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4428 .loc 1 2214 23 view .LVU1484
4429 005e 238D ldrh r3, [r4, #40]
4430 0060 0A46 mov r2, r1
4431 0062 00F12401 add r1, r0, #36
4432 .LVL263:
2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4433 .loc 1 2214 23 view .LVU1485
4434 0066 E06B ldr r0, [r4, #60]
4435 0068 FFF7FEFF bl HAL_DMA_Start_IT
4436 .LVL264:
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4437 .loc 1 2231 5 is_stmt 1 view .LVU1486
2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4438 .loc 1 2231 8 is_stmt 0 view .LVU1487
4439 006c 0546 mov r5, r0
4440 006e 00B3 cbz r0, .L302
2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4441 .loc 1 2251 7 is_stmt 1 view .LVU1488
2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4442 .loc 1 2251 23 is_stmt 0 view .LVU1489
4443 0070 2823 movs r3, #40
4444 0072 84F84130 strb r3, [r4, #65]
2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4445 .loc 1 2252 7 is_stmt 1 view .LVU1490
2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4446 .loc 1 2252 23 is_stmt 0 view .LVU1491
4447 0076 0022 movs r2, #0
4448 0078 84F84220 strb r2, [r4, #66]
2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4449 .loc 1 2255 7 is_stmt 1 view .LVU1492
2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4450 .loc 1 2255 23 is_stmt 0 view .LVU1493
4451 007c 636C ldr r3, [r4, #68]
4452 007e 43F01003 orr r3, r3, #16
4453 0082 6364 str r3, [r4, #68]
ARM GAS /tmp/ccEimIdZ.s page 219
2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4454 .loc 1 2258 7 is_stmt 1 view .LVU1494
2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4455 .loc 1 2258 7 view .LVU1495
4456 0084 84F84020 strb r2, [r4, #64]
2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4457 .loc 1 2258 7 view .LVU1496
2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4458 .loc 1 2260 7 view .LVU1497
2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4459 .loc 1 2260 14 is_stmt 0 view .LVU1498
4460 0088 0125 movs r5, #1
4461 008a 26E0 b .L292
4462 .LVL265:
4463 .L301:
2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4464 .loc 1 2184 7 is_stmt 1 view .LVU1499
2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4465 .loc 1 2184 23 is_stmt 0 view .LVU1500
4466 008c 4FF40073 mov r3, #512
4467 0090 4364 str r3, [r0, #68]
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4468 .loc 1 2185 7 is_stmt 1 view .LVU1501
2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4469 .loc 1 2185 15 is_stmt 0 view .LVU1502
4470 0092 0125 movs r5, #1
4471 0094 21E0 b .L292
4472 .L294:
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4473 .loc 1 2219 7 is_stmt 1 view .LVU1503
2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4474 .loc 1 2219 23 is_stmt 0 view .LVU1504
4475 0096 2823 movs r3, #40
4476 0098 80F84130 strb r3, [r0, #65]
2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4477 .loc 1 2220 7 is_stmt 1 view .LVU1505
2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4478 .loc 1 2220 23 is_stmt 0 view .LVU1506
4479 009c 0022 movs r2, #0
4480 .LVL266:
2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4481 .loc 1 2220 23 view .LVU1507
4482 009e 80F84220 strb r2, [r0, #66]
2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4483 .loc 1 2223 7 is_stmt 1 view .LVU1508
2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4484 .loc 1 2223 23 is_stmt 0 view .LVU1509
4485 00a2 436C ldr r3, [r0, #68]
4486 00a4 43F08003 orr r3, r3, #128
4487 00a8 4364 str r3, [r0, #68]
2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4488 .loc 1 2226 7 is_stmt 1 view .LVU1510
2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4489 .loc 1 2226 7 view .LVU1511
4490 00aa 80F84020 strb r2, [r0, #64]
2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4491 .loc 1 2226 7 view .LVU1512
ARM GAS /tmp/ccEimIdZ.s page 220
2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4492 .loc 1 2228 7 view .LVU1513
2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4493 .loc 1 2228 14 is_stmt 0 view .LVU1514
4494 00ae 0125 movs r5, #1
4495 00b0 13E0 b .L292
4496 .LVL267:
4497 .L302:
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4498 .loc 1 2234 7 is_stmt 1 view .LVU1515
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4499 .loc 1 2234 11 is_stmt 0 view .LVU1516
4500 00b2 2268 ldr r2, [r4]
2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4501 .loc 1 2234 27 view .LVU1517
4502 00b4 5368 ldr r3, [r2, #4]
4503 00b6 23F40043 bic r3, r3, #32768
4504 00ba 5360 str r3, [r2, #4]
2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4505 .loc 1 2237 7 is_stmt 1 view .LVU1518
2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4506 .loc 1 2237 7 view .LVU1519
4507 00bc 0023 movs r3, #0
4508 00be 84F84030 strb r3, [r4, #64]
2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4509 .loc 1 2237 7 view .LVU1520
2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4510 .loc 1 2243 7 view .LVU1521
4511 00c2 4FF40041 mov r1, #32768
4512 00c6 2046 mov r0, r4
4513 .LVL268:
2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4514 .loc 1 2243 7 is_stmt 0 view .LVU1522
4515 00c8 FFF7FEFF bl I2C_Enable_IRQ
4516 .LVL269:
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4517 .loc 1 2246 7 is_stmt 1 view .LVU1523
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4518 .loc 1 2246 11 is_stmt 0 view .LVU1524
4519 00cc 2268 ldr r2, [r4]
2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4520 .loc 1 2246 27 view .LVU1525
4521 00ce 1368 ldr r3, [r2]
4522 00d0 43F40043 orr r3, r3, #32768
4523 00d4 1360 str r3, [r2]
2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4524 .loc 1 2263 5 is_stmt 1 view .LVU1526
2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4525 .loc 1 2263 12 is_stmt 0 view .LVU1527
4526 00d6 00E0 b .L292
4527 .LVL270:
4528 .L297:
2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4529 .loc 1 2267 12 view .LVU1528
4530 00d8 0225 movs r5, #2
4531 .LVL271:
4532 .L292:
ARM GAS /tmp/ccEimIdZ.s page 221
2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
4533 .loc 1 2269 1 view .LVU1529
4534 00da 2846 mov r0, r5
4535 00dc 38BD pop {r3, r4, r5, pc}
4536 .LVL272:
4537 .L298:
2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4538 .loc 1 2188 5 view .LVU1530
4539 00de 0225 movs r5, #2
4540 00e0 FBE7 b .L292
4541 .L304:
4542 00e2 00BF .align 2
4543 .L303:
4544 00e4 0000FFFF .word -65536
4545 00e8 00000000 .word I2C_Slave_ISR_DMA
4546 00ec 00000000 .word I2C_DMASlaveReceiveCplt
4547 00f0 00000000 .word I2C_DMAError
4548 .cfi_endproc
4549 .LFE156:
4551 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
4552 .align 1
4553 .global HAL_I2C_Mem_Write
4554 .syntax unified
4555 .thumb
4556 .thumb_func
4557 .fpu fpv5-d16
4559 HAL_I2C_Mem_Write:
4560 .LVL273:
4561 .LFB157:
2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
4562 .loc 1 2284 1 is_stmt 1 view -0
4563 .cfi_startproc
4564 @ args = 12, pretend = 0, frame = 0
4565 @ frame_needed = 0, uses_anonymous_args = 0
2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
4566 .loc 1 2284 1 is_stmt 0 view .LVU1532
4567 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4568 .LCFI55:
4569 .cfi_def_cfa_offset 36
4570 .cfi_offset 4, -36
4571 .cfi_offset 5, -32
4572 .cfi_offset 6, -28
4573 .cfi_offset 7, -24
4574 .cfi_offset 8, -20
4575 .cfi_offset 9, -16
4576 .cfi_offset 10, -12
4577 .cfi_offset 11, -8
4578 .cfi_offset 14, -4
4579 0004 83B0 sub sp, sp, #12
4580 .LCFI56:
4581 .cfi_def_cfa_offset 48
4582 0006 0D46 mov r5, r1
4583 0008 BDF834A0 ldrh r10, [sp, #52]
4584 000c 0E9F ldr r7, [sp, #56]
2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4585 .loc 1 2285 3 is_stmt 1 view .LVU1533
2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 222
4586 .loc 1 2288 3 view .LVU1534
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4587 .loc 1 2290 3 view .LVU1535
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4588 .loc 1 2290 11 is_stmt 0 view .LVU1536
4589 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
4590 .LVL274:
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4591 .loc 1 2290 11 view .LVU1537
4592 0012 C9B2 uxtb r1, r1
2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4593 .loc 1 2290 6 view .LVU1538
4594 0014 2029 cmp r1, #32
4595 0016 40F0BC80 bne .L314
4596 001a 0446 mov r4, r0
4597 001c 9046 mov r8, r2
4598 001e 9946 mov r9, r3
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4599 .loc 1 2292 5 is_stmt 1 view .LVU1539
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4600 .loc 1 2292 8 is_stmt 0 view .LVU1540
4601 0020 0C9B ldr r3, [sp, #48]
4602 .LVL275:
2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4603 .loc 1 2292 8 view .LVU1541
4604 0022 BAF1000F cmp r10, #0
4605 0026 18BF it ne
4606 0028 002B cmpne r3, #0
4607 002a 16D0 beq .L321
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4608 .loc 1 2299 5 is_stmt 1 view .LVU1542
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4609 .loc 1 2299 5 view .LVU1543
4610 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4611 0030 012B cmp r3, #1
4612 0032 00F0B280 beq .L315
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4613 .loc 1 2299 5 discriminator 2 view .LVU1544
4614 0036 4FF0010B mov fp, #1
4615 003a 80F840B0 strb fp, [r0, #64]
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4616 .loc 1 2299 5 discriminator 2 view .LVU1545
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4617 .loc 1 2302 5 discriminator 2 view .LVU1546
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4618 .loc 1 2302 17 is_stmt 0 discriminator 2 view .LVU1547
4619 003e FFF7FEFF bl HAL_GetTick
4620 .LVL276:
2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4621 .loc 1 2302 17 discriminator 2 view .LVU1548
4622 0042 0646 mov r6, r0
4623 .LVL277:
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4624 .loc 1 2304 5 is_stmt 1 discriminator 2 view .LVU1549
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4625 .loc 1 2304 9 is_stmt 0 discriminator 2 view .LVU1550
4626 0044 0090 str r0, [sp]
ARM GAS /tmp/ccEimIdZ.s page 223
4627 0046 1923 movs r3, #25
4628 0048 5A46 mov r2, fp
4629 004a 4FF40041 mov r1, #32768
4630 004e 2046 mov r0, r4
4631 .LVL278:
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4632 .loc 1 2304 9 discriminator 2 view .LVU1551
4633 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4634 .LVL279:
2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4635 .loc 1 2304 8 discriminator 2 view .LVU1552
4636 0054 30B1 cbz r0, .L322
2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4637 .loc 1 2306 14 view .LVU1553
4638 0056 0120 movs r0, #1
4639 0058 9CE0 b .L306
4640 .LVL280:
4641 .L321:
2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4642 .loc 1 2294 7 is_stmt 1 view .LVU1554
2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4643 .loc 1 2294 23 is_stmt 0 view .LVU1555
4644 005a 4FF40073 mov r3, #512
4645 005e 4364 str r3, [r0, #68]
2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4646 .loc 1 2295 7 is_stmt 1 view .LVU1556
2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4647 .loc 1 2295 15 is_stmt 0 view .LVU1557
4648 0060 0120 movs r0, #1
4649 .LVL281:
2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4650 .loc 1 2295 15 view .LVU1558
4651 0062 97E0 b .L306
4652 .LVL282:
4653 .L322:
2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4654 .loc 1 2309 5 is_stmt 1 view .LVU1559
2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4655 .loc 1 2309 21 is_stmt 0 view .LVU1560
4656 0064 2123 movs r3, #33
4657 0066 84F84130 strb r3, [r4, #65]
2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4658 .loc 1 2310 5 is_stmt 1 view .LVU1561
2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4659 .loc 1 2310 21 is_stmt 0 view .LVU1562
4660 006a 4023 movs r3, #64
4661 006c 84F84230 strb r3, [r4, #66]
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4662 .loc 1 2311 5 is_stmt 1 view .LVU1563
2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4663 .loc 1 2311 21 is_stmt 0 view .LVU1564
4664 0070 0023 movs r3, #0
4665 0072 6364 str r3, [r4, #68]
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4666 .loc 1 2314 5 is_stmt 1 view .LVU1565
2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
4667 .loc 1 2314 21 is_stmt 0 view .LVU1566
ARM GAS /tmp/ccEimIdZ.s page 224
4668 0074 0C9A ldr r2, [sp, #48]
4669 0076 6262 str r2, [r4, #36]
2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
4670 .loc 1 2315 5 is_stmt 1 view .LVU1567
2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
4671 .loc 1 2315 21 is_stmt 0 view .LVU1568
4672 0078 A4F82AA0 strh r10, [r4, #42] @ movhi
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4673 .loc 1 2316 5 is_stmt 1 view .LVU1569
2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4674 .loc 1 2316 21 is_stmt 0 view .LVU1570
4675 007c 6363 str r3, [r4, #52]
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4676 .loc 1 2319 5 is_stmt 1 view .LVU1571
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4677 .loc 1 2319 9 is_stmt 0 view .LVU1572
4678 007e 0196 str r6, [sp, #4]
4679 0080 0097 str r7, [sp]
4680 0082 4B46 mov r3, r9
4681 0084 4246 mov r2, r8
4682 0086 2946 mov r1, r5
4683 0088 2046 mov r0, r4
4684 008a FFF7FEFF bl I2C_RequestMemoryWrite
4685 .LVL283:
2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4686 .loc 1 2319 8 view .LVU1573
4687 008e 70B9 cbnz r0, .L323
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4688 .loc 1 2327 5 is_stmt 1 view .LVU1574
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4689 .loc 1 2327 13 is_stmt 0 view .LVU1575
4690 0090 638D ldrh r3, [r4, #42]
4691 0092 9BB2 uxth r3, r3
2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4692 .loc 1 2327 8 view .LVU1576
4693 0094 FF2B cmp r3, #255
4694 0096 0FD9 bls .L309
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
4695 .loc 1 2329 7 is_stmt 1 view .LVU1577
2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
4696 .loc 1 2329 22 is_stmt 0 view .LVU1578
4697 0098 FF22 movs r2, #255
4698 009a 2285 strh r2, [r4, #40] @ movhi
2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4699 .loc 1 2330 7 is_stmt 1 view .LVU1579
4700 009c 0023 movs r3, #0
4701 009e 0093 str r3, [sp]
4702 00a0 4FF08073 mov r3, #16777216
4703 00a4 2946 mov r1, r5
4704 00a6 2046 mov r0, r4
4705 00a8 FFF7FEFF bl I2C_TransferConfig
4706 .LVL284:
4707 00ac 21E0 b .L313
4708 .L323:
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4709 .loc 1 2322 7 view .LVU1580
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/ccEimIdZ.s page 225
4710 .loc 1 2322 7 view .LVU1581
4711 00ae 0023 movs r3, #0
4712 00b0 84F84030 strb r3, [r4, #64]
2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
4713 .loc 1 2322 7 view .LVU1582
2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4714 .loc 1 2323 7 view .LVU1583
2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4715 .loc 1 2323 14 is_stmt 0 view .LVU1584
4716 00b4 5846 mov r0, fp
4717 00b6 6DE0 b .L306
4718 .L309:
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
4719 .loc 1 2334 7 is_stmt 1 view .LVU1585
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
4720 .loc 1 2334 28 is_stmt 0 view .LVU1586
4721 00b8 628D ldrh r2, [r4, #42]
4722 00ba 92B2 uxth r2, r2
2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
4723 .loc 1 2334 22 view .LVU1587
4724 00bc 2285 strh r2, [r4, #40] @ movhi
2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4725 .loc 1 2335 7 is_stmt 1 view .LVU1588
4726 00be 0023 movs r3, #0
4727 00c0 0093 str r3, [sp]
4728 00c2 4FF00073 mov r3, #33554432
4729 00c6 D2B2 uxtb r2, r2
4730 00c8 2946 mov r1, r5
4731 00ca 2046 mov r0, r4
4732 00cc FFF7FEFF bl I2C_TransferConfig
4733 .LVL285:
4734 00d0 0FE0 b .L313
4735 .L312:
2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
4736 .loc 1 2370 11 view .LVU1589
2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
4737 .loc 1 2370 32 is_stmt 0 view .LVU1590
4738 00d2 628D ldrh r2, [r4, #42]
4739 00d4 92B2 uxth r2, r2
2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
4740 .loc 1 2370 26 view .LVU1591
4741 00d6 2285 strh r2, [r4, #40] @ movhi
2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4742 .loc 1 2371 11 is_stmt 1 view .LVU1592
4743 00d8 0023 movs r3, #0
4744 00da 0093 str r3, [sp]
4745 00dc 4FF00073 mov r3, #33554432
4746 00e0 D2B2 uxtb r2, r2
4747 00e2 2946 mov r1, r5
4748 00e4 2046 mov r0, r4
4749 00e6 FFF7FEFF bl I2C_TransferConfig
4750 .LVL286:
4751 .L311:
2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4752 .loc 1 2376 11 view .LVU1593
2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4753 .loc 1 2376 16 is_stmt 0 view .LVU1594
ARM GAS /tmp/ccEimIdZ.s page 226
4754 00ea 638D ldrh r3, [r4, #42]
4755 00ec 9BB2 uxth r3, r3
2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4756 .loc 1 2376 5 view .LVU1595
4757 00ee 002B cmp r3, #0
4758 00f0 33D0 beq .L324
4759 .L313:
2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4760 .loc 1 2338 5 is_stmt 1 view .LVU1596
2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4761 .loc 1 2341 7 view .LVU1597
2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4762 .loc 1 2341 11 is_stmt 0 view .LVU1598
4763 00f2 3246 mov r2, r6
4764 00f4 3946 mov r1, r7
4765 00f6 2046 mov r0, r4
4766 00f8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
4767 .LVL287:
2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4768 .loc 1 2341 10 view .LVU1599
4769 00fc 0028 cmp r0, #0
4770 00fe 4ED1 bne .L317
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4771 .loc 1 2347 7 is_stmt 1 view .LVU1600
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4772 .loc 1 2347 35 is_stmt 0 view .LVU1601
4773 0100 626A ldr r2, [r4, #36]
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4774 .loc 1 2347 11 view .LVU1602
4775 0102 2368 ldr r3, [r4]
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4776 .loc 1 2347 30 view .LVU1603
4777 0104 1278 ldrb r2, [r2] @ zero_extendqisi2
2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4778 .loc 1 2347 28 view .LVU1604
4779 0106 9A62 str r2, [r3, #40]
2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4780 .loc 1 2350 7 is_stmt 1 view .LVU1605
2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4781 .loc 1 2350 11 is_stmt 0 view .LVU1606
4782 0108 636A ldr r3, [r4, #36]
2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4783 .loc 1 2350 21 view .LVU1607
4784 010a 0133 adds r3, r3, #1
4785 010c 6362 str r3, [r4, #36]
2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4786 .loc 1 2352 7 is_stmt 1 view .LVU1608
2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4787 .loc 1 2352 11 is_stmt 0 view .LVU1609
4788 010e 638D ldrh r3, [r4, #42]
4789 0110 9BB2 uxth r3, r3
2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
4790 .loc 1 2352 22 view .LVU1610
4791 0112 013B subs r3, r3, #1
4792 0114 9BB2 uxth r3, r3
4793 0116 6385 strh r3, [r4, #42] @ movhi
2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 227
4794 .loc 1 2353 7 is_stmt 1 view .LVU1611
2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4795 .loc 1 2353 11 is_stmt 0 view .LVU1612
4796 0118 238D ldrh r3, [r4, #40]
2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4797 .loc 1 2353 21 view .LVU1613
4798 011a 013B subs r3, r3, #1
4799 011c 9BB2 uxth r3, r3
4800 011e 2385 strh r3, [r4, #40] @ movhi
2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4801 .loc 1 2355 7 is_stmt 1 view .LVU1614
2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4802 .loc 1 2355 16 is_stmt 0 view .LVU1615
4803 0120 628D ldrh r2, [r4, #42]
4804 0122 92B2 uxth r2, r2
2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4805 .loc 1 2355 10 view .LVU1616
4806 0124 002A cmp r2, #0
4807 0126 E0D0 beq .L311
2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4808 .loc 1 2355 35 discriminator 1 view .LVU1617
4809 0128 002B cmp r3, #0
4810 012a DED1 bne .L311
2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4811 .loc 1 2358 9 is_stmt 1 view .LVU1618
2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4812 .loc 1 2358 13 is_stmt 0 view .LVU1619
4813 012c 0096 str r6, [sp]
4814 012e 3B46 mov r3, r7
4815 0130 0022 movs r2, #0
4816 0132 8021 movs r1, #128
4817 0134 2046 mov r0, r4
4818 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4819 .LVL288:
2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4820 .loc 1 2358 12 view .LVU1620
4821 013a 90BB cbnz r0, .L318
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4822 .loc 1 2363 9 is_stmt 1 view .LVU1621
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4823 .loc 1 2363 17 is_stmt 0 view .LVU1622
4824 013c 638D ldrh r3, [r4, #42]
4825 013e 9BB2 uxth r3, r3
2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4826 .loc 1 2363 12 view .LVU1623
4827 0140 FF2B cmp r3, #255
4828 0142 C6D9 bls .L312
2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
4829 .loc 1 2365 11 is_stmt 1 view .LVU1624
2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA
4830 .loc 1 2365 26 is_stmt 0 view .LVU1625
4831 0144 FF22 movs r2, #255
4832 0146 2285 strh r2, [r4, #40] @ movhi
2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4833 .loc 1 2366 11 is_stmt 1 view .LVU1626
4834 0148 0023 movs r3, #0
4835 014a 0093 str r3, [sp]
ARM GAS /tmp/ccEimIdZ.s page 228
4836 014c 4FF08073 mov r3, #16777216
4837 0150 2946 mov r1, r5
4838 0152 2046 mov r0, r4
4839 0154 FFF7FEFF bl I2C_TransferConfig
4840 .LVL289:
4841 0158 C7E7 b .L311
4842 .L324:
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4843 .loc 1 2380 5 view .LVU1627
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4844 .loc 1 2380 9 is_stmt 0 view .LVU1628
4845 015a 3246 mov r2, r6
4846 015c 3946 mov r1, r7
4847 015e 2046 mov r0, r4
4848 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
4849 .LVL290:
2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4850 .loc 1 2380 8 view .LVU1629
4851 0164 F8B9 cbnz r0, .L319
2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4852 .loc 1 2386 5 is_stmt 1 view .LVU1630
4853 0166 2368 ldr r3, [r4]
4854 0168 2022 movs r2, #32
4855 016a DA61 str r2, [r3, #28]
2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4856 .loc 1 2389 5 view .LVU1631
4857 016c 2168 ldr r1, [r4]
4858 016e 4B68 ldr r3, [r1, #4]
4859 0170 23F0FF73 bic r3, r3, #33423360
4860 0174 23F48B33 bic r3, r3, #71168
4861 0178 23F4FF73 bic r3, r3, #510
4862 017c 23F00103 bic r3, r3, #1
4863 0180 4B60 str r3, [r1, #4]
2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4864 .loc 1 2391 5 view .LVU1632
2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4865 .loc 1 2391 17 is_stmt 0 view .LVU1633
4866 0182 84F84120 strb r2, [r4, #65]
2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4867 .loc 1 2392 5 is_stmt 1 view .LVU1634
2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4868 .loc 1 2392 17 is_stmt 0 view .LVU1635
4869 0186 0023 movs r3, #0
4870 0188 84F84230 strb r3, [r4, #66]
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4871 .loc 1 2395 5 is_stmt 1 view .LVU1636
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4872 .loc 1 2395 5 view .LVU1637
4873 018c 84F84030 strb r3, [r4, #64]
2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4874 .loc 1 2395 5 view .LVU1638
2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4875 .loc 1 2397 5 view .LVU1639
2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4876 .loc 1 2397 12 is_stmt 0 view .LVU1640
4877 0190 00E0 b .L306
4878 .LVL291:
ARM GAS /tmp/ccEimIdZ.s page 229
4879 .L314:
2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4880 .loc 1 2401 12 view .LVU1641
4881 0192 0220 movs r0, #2
4882 .LVL292:
4883 .L306:
2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4884 .loc 1 2403 1 view .LVU1642
4885 0194 03B0 add sp, sp, #12
4886 .LCFI57:
4887 .cfi_remember_state
4888 .cfi_def_cfa_offset 36
4889 @ sp needed
4890 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4891 .LVL293:
4892 .L315:
4893 .LCFI58:
4894 .cfi_restore_state
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4895 .loc 1 2299 5 view .LVU1643
4896 019a 0220 movs r0, #2
4897 .LVL294:
2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4898 .loc 1 2299 5 view .LVU1644
4899 019c FAE7 b .L306
4900 .LVL295:
4901 .L317:
2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4902 .loc 1 2343 16 view .LVU1645
4903 019e 0120 movs r0, #1
4904 01a0 F8E7 b .L306
4905 .L318:
2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4906 .loc 1 2360 18 view .LVU1646
4907 01a2 0120 movs r0, #1
4908 01a4 F6E7 b .L306
4909 .L319:
2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
4910 .loc 1 2382 14 view .LVU1647
4911 01a6 0120 movs r0, #1
4912 01a8 F4E7 b .L306
4913 .cfi_endproc
4914 .LFE157:
4916 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
4917 .align 1
4918 .global HAL_I2C_Mem_Read
4919 .syntax unified
4920 .thumb
4921 .thumb_func
4922 .fpu fpv5-d16
4924 HAL_I2C_Mem_Read:
4925 .LVL296:
4926 .LFB158:
2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
4927 .loc 1 2419 1 is_stmt 1 view -0
4928 .cfi_startproc
4929 @ args = 12, pretend = 0, frame = 0
ARM GAS /tmp/ccEimIdZ.s page 230
4930 @ frame_needed = 0, uses_anonymous_args = 0
2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
4931 .loc 1 2419 1 is_stmt 0 view .LVU1649
4932 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4933 .LCFI59:
4934 .cfi_def_cfa_offset 36
4935 .cfi_offset 4, -36
4936 .cfi_offset 5, -32
4937 .cfi_offset 6, -28
4938 .cfi_offset 7, -24
4939 .cfi_offset 8, -20
4940 .cfi_offset 9, -16
4941 .cfi_offset 10, -12
4942 .cfi_offset 11, -8
4943 .cfi_offset 14, -4
4944 0004 83B0 sub sp, sp, #12
4945 .LCFI60:
4946 .cfi_def_cfa_offset 48
4947 0006 0D46 mov r5, r1
4948 0008 BDF834A0 ldrh r10, [sp, #52]
4949 000c 0E9F ldr r7, [sp, #56]
2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4950 .loc 1 2420 3 is_stmt 1 view .LVU1650
2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4951 .loc 1 2423 3 view .LVU1651
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4952 .loc 1 2425 3 view .LVU1652
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4953 .loc 1 2425 11 is_stmt 0 view .LVU1653
4954 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
4955 .LVL297:
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4956 .loc 1 2425 11 view .LVU1654
4957 0012 C9B2 uxtb r1, r1
2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4958 .loc 1 2425 6 view .LVU1655
4959 0014 2029 cmp r1, #32
4960 0016 40F0BD80 bne .L334
4961 001a 0446 mov r4, r0
4962 001c 9046 mov r8, r2
4963 001e 9946 mov r9, r3
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4964 .loc 1 2427 5 is_stmt 1 view .LVU1656
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4965 .loc 1 2427 8 is_stmt 0 view .LVU1657
4966 0020 0C9B ldr r3, [sp, #48]
4967 .LVL298:
2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4968 .loc 1 2427 8 view .LVU1658
4969 0022 BAF1000F cmp r10, #0
4970 0026 18BF it ne
4971 0028 002B cmpne r3, #0
4972 002a 16D0 beq .L341
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4973 .loc 1 2434 5 is_stmt 1 view .LVU1659
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4974 .loc 1 2434 5 view .LVU1660
ARM GAS /tmp/ccEimIdZ.s page 231
4975 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4976 0030 012B cmp r3, #1
4977 0032 00F0B380 beq .L335
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4978 .loc 1 2434 5 discriminator 2 view .LVU1661
4979 0036 4FF0010B mov fp, #1
4980 003a 80F840B0 strb fp, [r0, #64]
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4981 .loc 1 2434 5 discriminator 2 view .LVU1662
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4982 .loc 1 2437 5 discriminator 2 view .LVU1663
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4983 .loc 1 2437 17 is_stmt 0 discriminator 2 view .LVU1664
4984 003e FFF7FEFF bl HAL_GetTick
4985 .LVL299:
2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
4986 .loc 1 2437 17 discriminator 2 view .LVU1665
4987 0042 0646 mov r6, r0
4988 .LVL300:
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4989 .loc 1 2439 5 is_stmt 1 discriminator 2 view .LVU1666
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4990 .loc 1 2439 9 is_stmt 0 discriminator 2 view .LVU1667
4991 0044 0090 str r0, [sp]
4992 0046 1923 movs r3, #25
4993 0048 5A46 mov r2, fp
4994 004a 4FF40041 mov r1, #32768
4995 004e 2046 mov r0, r4
4996 .LVL301:
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
4997 .loc 1 2439 9 discriminator 2 view .LVU1668
4998 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4999 .LVL302:
2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5000 .loc 1 2439 8 discriminator 2 view .LVU1669
5001 0054 30B1 cbz r0, .L342
2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5002 .loc 1 2441 14 view .LVU1670
5003 0056 0120 movs r0, #1
5004 0058 9DE0 b .L326
5005 .LVL303:
5006 .L341:
2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5007 .loc 1 2429 7 is_stmt 1 view .LVU1671
2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5008 .loc 1 2429 23 is_stmt 0 view .LVU1672
5009 005a 4FF40073 mov r3, #512
5010 005e 4364 str r3, [r0, #68]
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5011 .loc 1 2430 7 is_stmt 1 view .LVU1673
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5012 .loc 1 2430 15 is_stmt 0 view .LVU1674
5013 0060 0120 movs r0, #1
5014 .LVL304:
2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5015 .loc 1 2430 15 view .LVU1675
5016 0062 98E0 b .L326
ARM GAS /tmp/ccEimIdZ.s page 232
5017 .LVL305:
5018 .L342:
2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5019 .loc 1 2444 5 is_stmt 1 view .LVU1676
2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5020 .loc 1 2444 21 is_stmt 0 view .LVU1677
5021 0064 2223 movs r3, #34
5022 0066 84F84130 strb r3, [r4, #65]
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5023 .loc 1 2445 5 is_stmt 1 view .LVU1678
2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5024 .loc 1 2445 21 is_stmt 0 view .LVU1679
5025 006a 4023 movs r3, #64
5026 006c 84F84230 strb r3, [r4, #66]
2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5027 .loc 1 2446 5 is_stmt 1 view .LVU1680
2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5028 .loc 1 2446 21 is_stmt 0 view .LVU1681
5029 0070 0023 movs r3, #0
5030 0072 6364 str r3, [r4, #68]
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5031 .loc 1 2449 5 is_stmt 1 view .LVU1682
2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5032 .loc 1 2449 21 is_stmt 0 view .LVU1683
5033 0074 0C9A ldr r2, [sp, #48]
5034 0076 6262 str r2, [r4, #36]
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5035 .loc 1 2450 5 is_stmt 1 view .LVU1684
2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
5036 .loc 1 2450 21 is_stmt 0 view .LVU1685
5037 0078 A4F82AA0 strh r10, [r4, #42] @ movhi
2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5038 .loc 1 2451 5 is_stmt 1 view .LVU1686
2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5039 .loc 1 2451 21 is_stmt 0 view .LVU1687
5040 007c 6363 str r3, [r4, #52]
2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5041 .loc 1 2454 5 is_stmt 1 view .LVU1688
2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5042 .loc 1 2454 9 is_stmt 0 view .LVU1689
5043 007e 0196 str r6, [sp, #4]
5044 0080 0097 str r7, [sp]
5045 0082 4B46 mov r3, r9
5046 0084 4246 mov r2, r8
5047 0086 2946 mov r1, r5
5048 0088 2046 mov r0, r4
5049 008a FFF7FEFF bl I2C_RequestMemoryRead
5050 .LVL306:
2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5051 .loc 1 2454 8 view .LVU1690
5052 008e 70B9 cbnz r0, .L343
2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5053 .loc 1 2463 5 is_stmt 1 view .LVU1691
2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5054 .loc 1 2463 13 is_stmt 0 view .LVU1692
5055 0090 638D ldrh r3, [r4, #42]
5056 0092 9BB2 uxth r3, r3
ARM GAS /tmp/ccEimIdZ.s page 233
2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5057 .loc 1 2463 8 view .LVU1693
5058 0094 FF2B cmp r3, #255
5059 0096 0FD9 bls .L329
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
5060 .loc 1 2465 7 is_stmt 1 view .LVU1694
2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S
5061 .loc 1 2465 22 is_stmt 0 view .LVU1695
5062 0098 FF22 movs r2, #255
5063 009a 2285 strh r2, [r4, #40] @ movhi
2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5064 .loc 1 2466 7 is_stmt 1 view .LVU1696
5065 009c 434B ldr r3, .L345
5066 009e 0093 str r3, [sp]
5067 00a0 4FF08073 mov r3, #16777216
5068 00a4 2946 mov r1, r5
5069 00a6 2046 mov r0, r4
5070 00a8 FFF7FEFF bl I2C_TransferConfig
5071 .LVL307:
5072 00ac 21E0 b .L333
5073 .L343:
2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5074 .loc 1 2457 7 view .LVU1697
2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5075 .loc 1 2457 7 view .LVU1698
5076 00ae 0023 movs r3, #0
5077 00b0 84F84030 strb r3, [r4, #64]
2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5078 .loc 1 2457 7 view .LVU1699
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5079 .loc 1 2458 7 view .LVU1700
2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5080 .loc 1 2458 14 is_stmt 0 view .LVU1701
5081 00b4 5846 mov r0, fp
5082 00b6 6EE0 b .L326
5083 .L329:
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
5084 .loc 1 2470 7 is_stmt 1 view .LVU1702
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
5085 .loc 1 2470 28 is_stmt 0 view .LVU1703
5086 00b8 628D ldrh r2, [r4, #42]
5087 00ba 92B2 uxth r2, r2
2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_
5088 .loc 1 2470 22 view .LVU1704
5089 00bc 2285 strh r2, [r4, #40] @ movhi
2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5090 .loc 1 2471 7 is_stmt 1 view .LVU1705
5091 00be 3B4B ldr r3, .L345
5092 00c0 0093 str r3, [sp]
5093 00c2 4FF00073 mov r3, #33554432
5094 00c6 D2B2 uxtb r2, r2
5095 00c8 2946 mov r1, r5
5096 00ca 2046 mov r0, r4
5097 00cc FFF7FEFF bl I2C_TransferConfig
5098 .LVL308:
5099 00d0 0FE0 b .L333
5100 .L332:
ARM GAS /tmp/ccEimIdZ.s page 234
2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
5101 .loc 1 2506 11 view .LVU1706
2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
5102 .loc 1 2506 32 is_stmt 0 view .LVU1707
5103 00d2 628D ldrh r2, [r4, #42]
5104 00d4 92B2 uxth r2, r2
2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST
5105 .loc 1 2506 26 view .LVU1708
5106 00d6 2285 strh r2, [r4, #40] @ movhi
2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5107 .loc 1 2507 11 is_stmt 1 view .LVU1709
5108 00d8 0023 movs r3, #0
5109 00da 0093 str r3, [sp]
5110 00dc 4FF00073 mov r3, #33554432
5111 00e0 D2B2 uxtb r2, r2
5112 00e2 2946 mov r1, r5
5113 00e4 2046 mov r0, r4
5114 00e6 FFF7FEFF bl I2C_TransferConfig
5115 .LVL309:
5116 .L331:
2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5117 .loc 1 2511 11 view .LVU1710
2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5118 .loc 1 2511 16 is_stmt 0 view .LVU1711
5119 00ea 638D ldrh r3, [r4, #42]
5120 00ec 9BB2 uxth r3, r3
2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5121 .loc 1 2511 5 view .LVU1712
5122 00ee 002B cmp r3, #0
5123 00f0 34D0 beq .L344
5124 .L333:
2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5125 .loc 1 2474 5 is_stmt 1 view .LVU1713
2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5126 .loc 1 2477 7 view .LVU1714
2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5127 .loc 1 2477 11 is_stmt 0 view .LVU1715
5128 00f2 0096 str r6, [sp]
5129 00f4 3B46 mov r3, r7
5130 00f6 0022 movs r2, #0
5131 00f8 0421 movs r1, #4
5132 00fa 2046 mov r0, r4
5133 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5134 .LVL310:
2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5135 .loc 1 2477 10 view .LVU1716
5136 0100 0028 cmp r0, #0
5137 0102 4DD1 bne .L337
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5138 .loc 1 2483 7 is_stmt 1 view .LVU1717
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5139 .loc 1 2483 38 is_stmt 0 view .LVU1718
5140 0104 2368 ldr r3, [r4]
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5141 .loc 1 2483 48 view .LVU1719
5142 0106 5A6A ldr r2, [r3, #36]
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 235
5143 .loc 1 2483 12 view .LVU1720
5144 0108 636A ldr r3, [r4, #36]
2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5145 .loc 1 2483 23 view .LVU1721
5146 010a 1A70 strb r2, [r3]
2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5147 .loc 1 2486 7 is_stmt 1 view .LVU1722
2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5148 .loc 1 2486 11 is_stmt 0 view .LVU1723
5149 010c 636A ldr r3, [r4, #36]
2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5150 .loc 1 2486 21 view .LVU1724
5151 010e 0133 adds r3, r3, #1
5152 0110 6362 str r3, [r4, #36]
2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5153 .loc 1 2488 7 is_stmt 1 view .LVU1725
2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5154 .loc 1 2488 11 is_stmt 0 view .LVU1726
5155 0112 228D ldrh r2, [r4, #40]
2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
5156 .loc 1 2488 21 view .LVU1727
5157 0114 013A subs r2, r2, #1
5158 0116 92B2 uxth r2, r2
5159 0118 2285 strh r2, [r4, #40] @ movhi
2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5160 .loc 1 2489 7 is_stmt 1 view .LVU1728
2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5161 .loc 1 2489 11 is_stmt 0 view .LVU1729
5162 011a 638D ldrh r3, [r4, #42]
5163 011c 9BB2 uxth r3, r3
2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5164 .loc 1 2489 22 view .LVU1730
5165 011e 013B subs r3, r3, #1
5166 0120 9BB2 uxth r3, r3
5167 0122 6385 strh r3, [r4, #42] @ movhi
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5168 .loc 1 2491 7 is_stmt 1 view .LVU1731
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5169 .loc 1 2491 16 is_stmt 0 view .LVU1732
5170 0124 638D ldrh r3, [r4, #42]
5171 0126 9BB2 uxth r3, r3
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5172 .loc 1 2491 10 view .LVU1733
5173 0128 002B cmp r3, #0
5174 012a DED0 beq .L331
2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5175 .loc 1 2491 35 discriminator 1 view .LVU1734
5176 012c 002A cmp r2, #0
5177 012e DCD1 bne .L331
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5178 .loc 1 2494 9 is_stmt 1 view .LVU1735
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5179 .loc 1 2494 13 is_stmt 0 view .LVU1736
5180 0130 0096 str r6, [sp]
5181 0132 3B46 mov r3, r7
5182 0134 8021 movs r1, #128
5183 0136 2046 mov r0, r4
ARM GAS /tmp/ccEimIdZ.s page 236
5184 0138 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5185 .LVL311:
2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5186 .loc 1 2494 12 view .LVU1737
5187 013c 90BB cbnz r0, .L338
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5188 .loc 1 2499 9 is_stmt 1 view .LVU1738
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5189 .loc 1 2499 17 is_stmt 0 view .LVU1739
5190 013e 638D ldrh r3, [r4, #42]
5191 0140 9BB2 uxth r3, r3
2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5192 .loc 1 2499 12 view .LVU1740
5193 0142 FF2B cmp r3, #255
5194 0144 C5D9 bls .L332
2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST
5195 .loc 1 2501 11 is_stmt 1 view .LVU1741
2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST
5196 .loc 1 2501 26 is_stmt 0 view .LVU1742
5197 0146 FF22 movs r2, #255
5198 0148 2285 strh r2, [r4, #40] @ movhi
2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5199 .loc 1 2502 11 is_stmt 1 view .LVU1743
5200 014a 0023 movs r3, #0
5201 014c 0093 str r3, [sp]
5202 014e 4FF08073 mov r3, #16777216
5203 0152 2946 mov r1, r5
5204 0154 2046 mov r0, r4
5205 0156 FFF7FEFF bl I2C_TransferConfig
5206 .LVL312:
5207 015a C6E7 b .L331
5208 .L344:
2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5209 .loc 1 2515 5 view .LVU1744
2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5210 .loc 1 2515 9 is_stmt 0 view .LVU1745
5211 015c 3246 mov r2, r6
5212 015e 3946 mov r1, r7
5213 0160 2046 mov r0, r4
5214 0162 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5215 .LVL313:
2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5216 .loc 1 2515 8 view .LVU1746
5217 0166 F8B9 cbnz r0, .L339
2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5218 .loc 1 2521 5 is_stmt 1 view .LVU1747
5219 0168 2368 ldr r3, [r4]
5220 016a 2022 movs r2, #32
5221 016c DA61 str r2, [r3, #28]
2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5222 .loc 1 2524 5 view .LVU1748
5223 016e 2168 ldr r1, [r4]
5224 0170 4B68 ldr r3, [r1, #4]
5225 0172 23F0FF73 bic r3, r3, #33423360
5226 0176 23F48B33 bic r3, r3, #71168
5227 017a 23F4FF73 bic r3, r3, #510
5228 017e 23F00103 bic r3, r3, #1
ARM GAS /tmp/ccEimIdZ.s page 237
5229 0182 4B60 str r3, [r1, #4]
2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5230 .loc 1 2526 5 view .LVU1749
2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5231 .loc 1 2526 17 is_stmt 0 view .LVU1750
5232 0184 84F84120 strb r2, [r4, #65]
2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5233 .loc 1 2527 5 is_stmt 1 view .LVU1751
2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5234 .loc 1 2527 17 is_stmt 0 view .LVU1752
5235 0188 0023 movs r3, #0
5236 018a 84F84230 strb r3, [r4, #66]
2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5237 .loc 1 2530 5 is_stmt 1 view .LVU1753
2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5238 .loc 1 2530 5 view .LVU1754
5239 018e 84F84030 strb r3, [r4, #64]
2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5240 .loc 1 2530 5 view .LVU1755
2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5241 .loc 1 2532 5 view .LVU1756
2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5242 .loc 1 2532 12 is_stmt 0 view .LVU1757
5243 0192 00E0 b .L326
5244 .LVL314:
5245 .L334:
2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5246 .loc 1 2536 12 view .LVU1758
5247 0194 0220 movs r0, #2
5248 .LVL315:
5249 .L326:
2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5250 .loc 1 2538 1 view .LVU1759
5251 0196 03B0 add sp, sp, #12
5252 .LCFI61:
5253 .cfi_remember_state
5254 .cfi_def_cfa_offset 36
5255 @ sp needed
5256 0198 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5257 .LVL316:
5258 .L335:
5259 .LCFI62:
5260 .cfi_restore_state
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5261 .loc 1 2434 5 view .LVU1760
5262 019c 0220 movs r0, #2
5263 .LVL317:
2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5264 .loc 1 2434 5 view .LVU1761
5265 019e FAE7 b .L326
5266 .LVL318:
5267 .L337:
2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5268 .loc 1 2479 16 view .LVU1762
5269 01a0 0120 movs r0, #1
5270 01a2 F8E7 b .L326
5271 .L338:
ARM GAS /tmp/ccEimIdZ.s page 238
2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5272 .loc 1 2496 18 view .LVU1763
5273 01a4 0120 movs r0, #1
5274 01a6 F6E7 b .L326
5275 .L339:
2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5276 .loc 1 2517 14 view .LVU1764
5277 01a8 0120 movs r0, #1
5278 01aa F4E7 b .L326
5279 .L346:
5280 .align 2
5281 .L345:
5282 01ac 00240080 .word -2147474432
5283 .cfi_endproc
5284 .LFE158:
5286 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
5287 .align 1
5288 .global HAL_I2C_Mem_Write_IT
5289 .syntax unified
5290 .thumb
5291 .thumb_func
5292 .fpu fpv5-d16
5294 HAL_I2C_Mem_Write_IT:
5295 .LVL319:
5296 .LFB159:
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5297 .loc 1 2552 1 is_stmt 1 view -0
5298 .cfi_startproc
5299 @ args = 8, pretend = 0, frame = 0
5300 @ frame_needed = 0, uses_anonymous_args = 0
2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5301 .loc 1 2552 1 is_stmt 0 view .LVU1766
5302 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
5303 .LCFI63:
5304 .cfi_def_cfa_offset 24
5305 .cfi_offset 4, -24
5306 .cfi_offset 5, -20
5307 .cfi_offset 6, -16
5308 .cfi_offset 7, -12
5309 .cfi_offset 8, -8
5310 .cfi_offset 14, -4
5311 0004 82B0 sub sp, sp, #8
5312 .LCFI64:
5313 .cfi_def_cfa_offset 32
5314 0006 0446 mov r4, r0
5315 0008 BDF82480 ldrh r8, [sp, #36]
2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
5316 .loc 1 2553 3 is_stmt 1 view .LVU1767
2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5317 .loc 1 2554 3 view .LVU1768
2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5318 .loc 1 2557 3 view .LVU1769
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5319 .loc 1 2559 3 view .LVU1770
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5320 .loc 1 2559 11 is_stmt 0 view .LVU1771
5321 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
ARM GAS /tmp/ccEimIdZ.s page 239
5322 .LVL320:
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5323 .loc 1 2559 11 view .LVU1772
5324 0010 C0B2 uxtb r0, r0
2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5325 .loc 1 2559 6 view .LVU1773
5326 0012 2028 cmp r0, #32
5327 0014 58D1 bne .L353
5328 0016 0D46 mov r5, r1
5329 0018 1746 mov r7, r2
5330 001a 1E46 mov r6, r3
2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5331 .loc 1 2561 5 is_stmt 1 view .LVU1774
2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5332 .loc 1 2561 8 is_stmt 0 view .LVU1775
5333 001c 089B ldr r3, [sp, #32]
5334 .LVL321:
2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5335 .loc 1 2561 8 view .LVU1776
5336 001e B8F1000F cmp r8, #0
5337 0022 18BF it ne
5338 0024 002B cmpne r3, #0
5339 0026 35D0 beq .L357
2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5340 .loc 1 2567 5 is_stmt 1 view .LVU1777
2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5341 .loc 1 2567 9 is_stmt 0 view .LVU1778
5342 0028 2368 ldr r3, [r4]
5343 002a 9B69 ldr r3, [r3, #24]
2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5344 .loc 1 2567 8 view .LVU1779
5345 002c 13F4004F tst r3, #32768
5346 0030 4FD1 bne .L354
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5347 .loc 1 2573 5 is_stmt 1 view .LVU1780
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5348 .loc 1 2573 5 view .LVU1781
5349 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
5350 0036 012B cmp r3, #1
5351 0038 4DD0 beq .L355
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5352 .loc 1 2573 5 discriminator 2 view .LVU1782
5353 003a 0123 movs r3, #1
5354 003c 84F84030 strb r3, [r4, #64]
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5355 .loc 1 2573 5 discriminator 2 view .LVU1783
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5356 .loc 1 2576 5 discriminator 2 view .LVU1784
2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5357 .loc 1 2576 17 is_stmt 0 discriminator 2 view .LVU1785
5358 0040 FFF7FEFF bl HAL_GetTick
5359 .LVL322:
2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5360 .loc 1 2578 5 is_stmt 1 discriminator 2 view .LVU1786
2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5361 .loc 1 2578 23 is_stmt 0 discriminator 2 view .LVU1787
5362 0044 2123 movs r3, #33
ARM GAS /tmp/ccEimIdZ.s page 240
5363 0046 84F84130 strb r3, [r4, #65]
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5364 .loc 1 2579 5 is_stmt 1 discriminator 2 view .LVU1788
2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5365 .loc 1 2579 23 is_stmt 0 discriminator 2 view .LVU1789
5366 004a 4023 movs r3, #64
5367 004c 84F84230 strb r3, [r4, #66]
2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5368 .loc 1 2580 5 is_stmt 1 discriminator 2 view .LVU1790
2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5369 .loc 1 2580 23 is_stmt 0 discriminator 2 view .LVU1791
5370 0050 0023 movs r3, #0
5371 0052 6364 str r3, [r4, #68]
2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5372 .loc 1 2583 5 is_stmt 1 discriminator 2 view .LVU1792
2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5373 .loc 1 2583 23 is_stmt 0 discriminator 2 view .LVU1793
5374 0054 089B ldr r3, [sp, #32]
5375 0056 6362 str r3, [r4, #36]
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5376 .loc 1 2584 5 is_stmt 1 discriminator 2 view .LVU1794
2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5377 .loc 1 2584 23 is_stmt 0 discriminator 2 view .LVU1795
5378 0058 A4F82A80 strh r8, [r4, #42] @ movhi
2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5379 .loc 1 2585 5 is_stmt 1 discriminator 2 view .LVU1796
2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5380 .loc 1 2585 23 is_stmt 0 discriminator 2 view .LVU1797
5381 005c 1F4B ldr r3, .L358
5382 005e E362 str r3, [r4, #44]
2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5383 .loc 1 2586 5 is_stmt 1 discriminator 2 view .LVU1798
2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5384 .loc 1 2586 23 is_stmt 0 discriminator 2 view .LVU1799
5385 0060 1F4B ldr r3, .L358+4
5386 0062 6363 str r3, [r4, #52]
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5387 .loc 1 2588 5 is_stmt 1 discriminator 2 view .LVU1800
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5388 .loc 1 2588 13 is_stmt 0 discriminator 2 view .LVU1801
5389 0064 638D ldrh r3, [r4, #42]
5390 0066 9BB2 uxth r3, r3
2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5391 .loc 1 2588 8 discriminator 2 view .LVU1802
5392 0068 FF2B cmp r3, #255
5393 006a 18D9 bls .L350
2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5394 .loc 1 2590 7 is_stmt 1 view .LVU1803
2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5395 .loc 1 2590 22 is_stmt 0 view .LVU1804
5396 006c FF23 movs r3, #255
5397 006e 2385 strh r3, [r4, #40] @ movhi
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5398 .loc 1 2591 7 is_stmt 1 view .LVU1805
5399 .LVL323:
2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5400 .loc 1 2591 16 is_stmt 0 view .LVU1806
ARM GAS /tmp/ccEimIdZ.s page 241
5401 0070 4FF08078 mov r8, #16777216
5402 .LVL324:
5403 .L351:
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5404 .loc 1 2600 5 is_stmt 1 view .LVU1807
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5405 .loc 1 2600 9 is_stmt 0 view .LVU1808
5406 0074 0190 str r0, [sp, #4]
5407 0076 1923 movs r3, #25
5408 0078 0093 str r3, [sp]
5409 007a 3346 mov r3, r6
5410 007c 3A46 mov r2, r7
5411 007e 2946 mov r1, r5
5412 0080 2046 mov r0, r4
5413 .LVL325:
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5414 .loc 1 2600 9 view .LVU1809
5415 0082 FFF7FEFF bl I2C_RequestMemoryWrite
5416 .LVL326:
2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5417 .loc 1 2600 8 view .LVU1810
5418 0086 0646 mov r6, r0
5419 0088 70B1 cbz r0, .L352
2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5420 .loc 1 2603 7 is_stmt 1 view .LVU1811
2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5421 .loc 1 2603 7 view .LVU1812
5422 008a 0023 movs r3, #0
5423 008c 84F84030 strb r3, [r4, #64]
2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5424 .loc 1 2603 7 view .LVU1813
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5425 .loc 1 2604 7 view .LVU1814
2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5426 .loc 1 2604 14 is_stmt 0 view .LVU1815
5427 0090 0126 movs r6, #1
5428 0092 1AE0 b .L348
5429 .LVL327:
5430 .L357:
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5431 .loc 1 2563 7 is_stmt 1 view .LVU1816
2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5432 .loc 1 2563 23 is_stmt 0 view .LVU1817
5433 0094 4FF40073 mov r3, #512
5434 0098 6364 str r3, [r4, #68]
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5435 .loc 1 2564 7 is_stmt 1 view .LVU1818
2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5436 .loc 1 2564 15 is_stmt 0 view .LVU1819
5437 009a 0126 movs r6, #1
5438 009c 15E0 b .L348
5439 .LVL328:
5440 .L350:
2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5441 .loc 1 2595 7 is_stmt 1 view .LVU1820
2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5442 .loc 1 2595 28 is_stmt 0 view .LVU1821
ARM GAS /tmp/ccEimIdZ.s page 242
5443 009e 638D ldrh r3, [r4, #42]
2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5444 .loc 1 2595 22 view .LVU1822
5445 00a0 2385 strh r3, [r4, #40] @ movhi
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5446 .loc 1 2596 7 is_stmt 1 view .LVU1823
5447 .LVL329:
2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5448 .loc 1 2596 16 is_stmt 0 view .LVU1824
5449 00a2 4FF00078 mov r8, #33554432
5450 00a6 E5E7 b .L351
5451 .LVL330:
5452 .L352:
2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5453 .loc 1 2608 5 is_stmt 1 view .LVU1825
5454 00a8 0027 movs r7, #0
5455 00aa 0097 str r7, [sp]
5456 00ac 4346 mov r3, r8
5457 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
5458 00b2 2946 mov r1, r5
5459 00b4 2046 mov r0, r4
5460 00b6 FFF7FEFF bl I2C_TransferConfig
5461 .LVL331:
2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5462 .loc 1 2611 5 view .LVU1826
2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5463 .loc 1 2611 5 view .LVU1827
5464 00ba 84F84070 strb r7, [r4, #64]
2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5465 .loc 1 2611 5 view .LVU1828
2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5466 .loc 1 2620 5 view .LVU1829
5467 00be 0121 movs r1, #1
5468 00c0 2046 mov r0, r4
5469 00c2 FFF7FEFF bl I2C_Enable_IRQ
5470 .LVL332:
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5471 .loc 1 2622 5 view .LVU1830
2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5472 .loc 1 2622 12 is_stmt 0 view .LVU1831
5473 00c6 00E0 b .L348
5474 .LVL333:
5475 .L353:
2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5476 .loc 1 2626 12 view .LVU1832
5477 00c8 0226 movs r6, #2
5478 .LVL334:
5479 .L348:
2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5480 .loc 1 2628 1 view .LVU1833
5481 00ca 3046 mov r0, r6
5482 00cc 02B0 add sp, sp, #8
5483 .LCFI65:
5484 .cfi_remember_state
5485 .cfi_def_cfa_offset 24
5486 @ sp needed
5487 00ce BDE8F081 pop {r4, r5, r6, r7, r8, pc}
ARM GAS /tmp/ccEimIdZ.s page 243
5488 .LVL335:
5489 .L354:
5490 .LCFI66:
5491 .cfi_restore_state
2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5492 .loc 1 2569 14 view .LVU1834
5493 00d2 0226 movs r6, #2
5494 00d4 F9E7 b .L348
5495 .L355:
2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5496 .loc 1 2573 5 view .LVU1835
5497 00d6 0226 movs r6, #2
5498 00d8 F7E7 b .L348
5499 .L359:
5500 00da 00BF .align 2
5501 .L358:
5502 00dc 0000FFFF .word -65536
5503 00e0 00000000 .word I2C_Master_ISR_IT
5504 .cfi_endproc
5505 .LFE159:
5507 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
5508 .align 1
5509 .global HAL_I2C_Mem_Read_IT
5510 .syntax unified
5511 .thumb
5512 .thumb_func
5513 .fpu fpv5-d16
5515 HAL_I2C_Mem_Read_IT:
5516 .LVL336:
5517 .LFB160:
2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5518 .loc 1 2643 1 is_stmt 1 view -0
5519 .cfi_startproc
5520 @ args = 8, pretend = 0, frame = 0
5521 @ frame_needed = 0, uses_anonymous_args = 0
2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5522 .loc 1 2643 1 is_stmt 0 view .LVU1837
5523 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
5524 .LCFI67:
5525 .cfi_def_cfa_offset 24
5526 .cfi_offset 4, -24
5527 .cfi_offset 5, -20
5528 .cfi_offset 6, -16
5529 .cfi_offset 7, -12
5530 .cfi_offset 8, -8
5531 .cfi_offset 14, -4
5532 0004 82B0 sub sp, sp, #8
5533 .LCFI68:
5534 .cfi_def_cfa_offset 32
5535 0006 0446 mov r4, r0
5536 0008 BDF82480 ldrh r8, [sp, #36]
2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
5537 .loc 1 2644 3 is_stmt 1 view .LVU1838
2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5538 .loc 1 2645 3 view .LVU1839
2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5539 .loc 1 2648 3 view .LVU1840
ARM GAS /tmp/ccEimIdZ.s page 244
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5540 .loc 1 2650 3 view .LVU1841
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5541 .loc 1 2650 11 is_stmt 0 view .LVU1842
5542 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5543 .LVL337:
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5544 .loc 1 2650 11 view .LVU1843
5545 0010 C0B2 uxtb r0, r0
2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5546 .loc 1 2650 6 view .LVU1844
5547 0012 2028 cmp r0, #32
5548 0014 59D1 bne .L366
5549 0016 0D46 mov r5, r1
5550 0018 1746 mov r7, r2
5551 001a 1E46 mov r6, r3
2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5552 .loc 1 2652 5 is_stmt 1 view .LVU1845
2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5553 .loc 1 2652 8 is_stmt 0 view .LVU1846
5554 001c 089B ldr r3, [sp, #32]
5555 .LVL338:
2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5556 .loc 1 2652 8 view .LVU1847
5557 001e B8F1000F cmp r8, #0
5558 0022 18BF it ne
5559 0024 002B cmpne r3, #0
5560 0026 35D0 beq .L370
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5561 .loc 1 2658 5 is_stmt 1 view .LVU1848
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5562 .loc 1 2658 9 is_stmt 0 view .LVU1849
5563 0028 2368 ldr r3, [r4]
5564 002a 9B69 ldr r3, [r3, #24]
2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5565 .loc 1 2658 8 view .LVU1850
5566 002c 13F4004F tst r3, #32768
5567 0030 50D1 bne .L367
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5568 .loc 1 2664 5 is_stmt 1 view .LVU1851
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5569 .loc 1 2664 5 view .LVU1852
5570 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
5571 0036 012B cmp r3, #1
5572 0038 4ED0 beq .L368
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5573 .loc 1 2664 5 discriminator 2 view .LVU1853
5574 003a 0123 movs r3, #1
5575 003c 84F84030 strb r3, [r4, #64]
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5576 .loc 1 2664 5 discriminator 2 view .LVU1854
2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5577 .loc 1 2667 5 discriminator 2 view .LVU1855
2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5578 .loc 1 2667 17 is_stmt 0 discriminator 2 view .LVU1856
5579 0040 FFF7FEFF bl HAL_GetTick
5580 .LVL339:
ARM GAS /tmp/ccEimIdZ.s page 245
2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5581 .loc 1 2669 5 is_stmt 1 discriminator 2 view .LVU1857
2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5582 .loc 1 2669 23 is_stmt 0 discriminator 2 view .LVU1858
5583 0044 2223 movs r3, #34
5584 0046 84F84130 strb r3, [r4, #65]
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5585 .loc 1 2670 5 is_stmt 1 discriminator 2 view .LVU1859
2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5586 .loc 1 2670 23 is_stmt 0 discriminator 2 view .LVU1860
5587 004a 4023 movs r3, #64
5588 004c 84F84230 strb r3, [r4, #66]
2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5589 .loc 1 2671 5 is_stmt 1 discriminator 2 view .LVU1861
2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5590 .loc 1 2671 23 is_stmt 0 discriminator 2 view .LVU1862
5591 0050 0023 movs r3, #0
5592 0052 6364 str r3, [r4, #68]
2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5593 .loc 1 2674 5 is_stmt 1 discriminator 2 view .LVU1863
2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5594 .loc 1 2674 23 is_stmt 0 discriminator 2 view .LVU1864
5595 0054 089B ldr r3, [sp, #32]
5596 0056 6362 str r3, [r4, #36]
2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5597 .loc 1 2675 5 is_stmt 1 discriminator 2 view .LVU1865
2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5598 .loc 1 2675 23 is_stmt 0 discriminator 2 view .LVU1866
5599 0058 A4F82A80 strh r8, [r4, #42] @ movhi
2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5600 .loc 1 2676 5 is_stmt 1 discriminator 2 view .LVU1867
2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5601 .loc 1 2676 23 is_stmt 0 discriminator 2 view .LVU1868
5602 005c 1F4B ldr r3, .L371
5603 005e E362 str r3, [r4, #44]
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5604 .loc 1 2677 5 is_stmt 1 discriminator 2 view .LVU1869
2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5605 .loc 1 2677 23 is_stmt 0 discriminator 2 view .LVU1870
5606 0060 1F4B ldr r3, .L371+4
5607 0062 6363 str r3, [r4, #52]
2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5608 .loc 1 2679 5 is_stmt 1 discriminator 2 view .LVU1871
2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5609 .loc 1 2679 13 is_stmt 0 discriminator 2 view .LVU1872
5610 0064 638D ldrh r3, [r4, #42]
5611 0066 9BB2 uxth r3, r3
2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5612 .loc 1 2679 8 discriminator 2 view .LVU1873
5613 0068 FF2B cmp r3, #255
5614 006a 18D9 bls .L363
2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5615 .loc 1 2681 7 is_stmt 1 view .LVU1874
2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5616 .loc 1 2681 22 is_stmt 0 view .LVU1875
5617 006c FF23 movs r3, #255
5618 006e 2385 strh r3, [r4, #40] @ movhi
ARM GAS /tmp/ccEimIdZ.s page 246
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5619 .loc 1 2682 7 is_stmt 1 view .LVU1876
5620 .LVL340:
2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5621 .loc 1 2682 16 is_stmt 0 view .LVU1877
5622 0070 4FF08078 mov r8, #16777216
5623 .LVL341:
5624 .L364:
2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5625 .loc 1 2691 5 is_stmt 1 view .LVU1878
2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5626 .loc 1 2691 9 is_stmt 0 view .LVU1879
5627 0074 0190 str r0, [sp, #4]
5628 0076 1923 movs r3, #25
5629 0078 0093 str r3, [sp]
5630 007a 3346 mov r3, r6
5631 007c 3A46 mov r2, r7
5632 007e 2946 mov r1, r5
5633 0080 2046 mov r0, r4
5634 .LVL342:
2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5635 .loc 1 2691 9 view .LVU1880
5636 0082 FFF7FEFF bl I2C_RequestMemoryRead
5637 .LVL343:
2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5638 .loc 1 2691 8 view .LVU1881
5639 0086 0646 mov r6, r0
5640 0088 70B1 cbz r0, .L365
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5641 .loc 1 2694 7 is_stmt 1 view .LVU1882
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5642 .loc 1 2694 7 view .LVU1883
5643 008a 0023 movs r3, #0
5644 008c 84F84030 strb r3, [r4, #64]
2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5645 .loc 1 2694 7 view .LVU1884
2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5646 .loc 1 2695 7 view .LVU1885
2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5647 .loc 1 2695 14 is_stmt 0 view .LVU1886
5648 0090 0126 movs r6, #1
5649 0092 1BE0 b .L361
5650 .LVL344:
5651 .L370:
2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5652 .loc 1 2654 7 is_stmt 1 view .LVU1887
2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5653 .loc 1 2654 23 is_stmt 0 view .LVU1888
5654 0094 4FF40073 mov r3, #512
5655 0098 6364 str r3, [r4, #68]
2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5656 .loc 1 2655 7 is_stmt 1 view .LVU1889
2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5657 .loc 1 2655 15 is_stmt 0 view .LVU1890
5658 009a 0126 movs r6, #1
5659 009c 16E0 b .L361
5660 .LVL345:
ARM GAS /tmp/ccEimIdZ.s page 247
5661 .L363:
2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5662 .loc 1 2686 7 is_stmt 1 view .LVU1891
2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5663 .loc 1 2686 28 is_stmt 0 view .LVU1892
5664 009e 638D ldrh r3, [r4, #42]
2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5665 .loc 1 2686 22 view .LVU1893
5666 00a0 2385 strh r3, [r4, #40] @ movhi
2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5667 .loc 1 2687 7 is_stmt 1 view .LVU1894
5668 .LVL346:
2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5669 .loc 1 2687 16 is_stmt 0 view .LVU1895
5670 00a2 4FF00078 mov r8, #33554432
5671 00a6 E5E7 b .L364
5672 .LVL347:
5673 .L365:
2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5674 .loc 1 2699 5 is_stmt 1 view .LVU1896
5675 00a8 0E4B ldr r3, .L371+8
5676 00aa 0093 str r3, [sp]
5677 00ac 4346 mov r3, r8
5678 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
5679 00b2 2946 mov r1, r5
5680 00b4 2046 mov r0, r4
5681 00b6 FFF7FEFF bl I2C_TransferConfig
5682 .LVL348:
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5683 .loc 1 2702 5 view .LVU1897
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5684 .loc 1 2702 5 view .LVU1898
5685 00ba 0023 movs r3, #0
5686 00bc 84F84030 strb r3, [r4, #64]
2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5687 .loc 1 2702 5 view .LVU1899
2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5688 .loc 1 2711 5 view .LVU1900
5689 00c0 0221 movs r1, #2
5690 00c2 2046 mov r0, r4
5691 00c4 FFF7FEFF bl I2C_Enable_IRQ
5692 .LVL349:
2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5693 .loc 1 2713 5 view .LVU1901
2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5694 .loc 1 2713 12 is_stmt 0 view .LVU1902
5695 00c8 00E0 b .L361
5696 .LVL350:
5697 .L366:
2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5698 .loc 1 2717 12 view .LVU1903
5699 00ca 0226 movs r6, #2
5700 .LVL351:
5701 .L361:
2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /**
5702 .loc 1 2719 1 view .LVU1904
5703 00cc 3046 mov r0, r6
ARM GAS /tmp/ccEimIdZ.s page 248
5704 00ce 02B0 add sp, sp, #8
5705 .LCFI69:
5706 .cfi_remember_state
5707 .cfi_def_cfa_offset 24
5708 @ sp needed
5709 00d0 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
5710 .LVL352:
5711 .L367:
5712 .LCFI70:
5713 .cfi_restore_state
2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5714 .loc 1 2660 14 view .LVU1905
5715 00d4 0226 movs r6, #2
5716 00d6 F9E7 b .L361
5717 .L368:
2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5718 .loc 1 2664 5 view .LVU1906
5719 00d8 0226 movs r6, #2
5720 00da F7E7 b .L361
5721 .L372:
5722 .align 2
5723 .L371:
5724 00dc 0000FFFF .word -65536
5725 00e0 00000000 .word I2C_Master_ISR_IT
5726 00e4 00240080 .word -2147474432
5727 .cfi_endproc
5728 .LFE160:
5730 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
5731 .align 1
5732 .global HAL_I2C_Mem_Write_DMA
5733 .syntax unified
5734 .thumb
5735 .thumb_func
5736 .fpu fpv5-d16
5738 HAL_I2C_Mem_Write_DMA:
5739 .LVL353:
5740 .LFB161:
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5741 .loc 1 2733 1 is_stmt 1 view -0
5742 .cfi_startproc
5743 @ args = 8, pretend = 0, frame = 0
5744 @ frame_needed = 0, uses_anonymous_args = 0
2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
5745 .loc 1 2733 1 is_stmt 0 view .LVU1908
5746 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
5747 .LCFI71:
5748 .cfi_def_cfa_offset 28
5749 .cfi_offset 4, -28
5750 .cfi_offset 5, -24
5751 .cfi_offset 6, -20
5752 .cfi_offset 7, -16
5753 .cfi_offset 8, -12
5754 .cfi_offset 9, -8
5755 .cfi_offset 14, -4
5756 0004 83B0 sub sp, sp, #12
5757 .LCFI72:
5758 .cfi_def_cfa_offset 40
ARM GAS /tmp/ccEimIdZ.s page 249
5759 0006 0446 mov r4, r0
5760 0008 0A9D ldr r5, [sp, #40]
5761 000a BDF82C90 ldrh r9, [sp, #44]
2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
5762 .loc 1 2734 3 is_stmt 1 view .LVU1909
2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
5763 .loc 1 2735 3 view .LVU1910
2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5764 .loc 1 2736 3 view .LVU1911
2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5765 .loc 1 2739 3 view .LVU1912
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5766 .loc 1 2741 3 view .LVU1913
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5767 .loc 1 2741 11 is_stmt 0 view .LVU1914
5768 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5769 .LVL354:
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5770 .loc 1 2741 11 view .LVU1915
5771 0012 C0B2 uxtb r0, r0
2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5772 .loc 1 2741 6 view .LVU1916
5773 0014 2028 cmp r0, #32
5774 0016 40F09780 bne .L382
5775 001a 0E46 mov r6, r1
5776 001c 9046 mov r8, r2
5777 001e 1F46 mov r7, r3
2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5778 .loc 1 2743 5 is_stmt 1 view .LVU1917
2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5779 .loc 1 2743 8 is_stmt 0 view .LVU1918
5780 0020 B9F1000F cmp r9, #0
5781 0024 18BF it ne
5782 0026 002D cmpne r5, #0
5783 0028 56D0 beq .L387
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5784 .loc 1 2749 5 is_stmt 1 view .LVU1919
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5785 .loc 1 2749 9 is_stmt 0 view .LVU1920
5786 002a 2368 ldr r3, [r4]
5787 .LVL355:
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5788 .loc 1 2749 9 view .LVU1921
5789 002c 9B69 ldr r3, [r3, #24]
2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5790 .loc 1 2749 8 view .LVU1922
5791 002e 13F4004F tst r3, #32768
5792 0032 40F08E80 bne .L383
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5793 .loc 1 2755 5 is_stmt 1 view .LVU1923
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5794 .loc 1 2755 5 view .LVU1924
5795 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
5796 003a 012B cmp r3, #1
5797 003c 00F08B80 beq .L384
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5798 .loc 1 2755 5 discriminator 2 view .LVU1925
ARM GAS /tmp/ccEimIdZ.s page 250
5799 0040 0123 movs r3, #1
5800 0042 84F84030 strb r3, [r4, #64]
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5801 .loc 1 2755 5 discriminator 2 view .LVU1926
2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5802 .loc 1 2758 5 discriminator 2 view .LVU1927
2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5803 .loc 1 2758 17 is_stmt 0 discriminator 2 view .LVU1928
5804 0046 FFF7FEFF bl HAL_GetTick
5805 .LVL356:
2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5806 .loc 1 2760 5 is_stmt 1 discriminator 2 view .LVU1929
2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5807 .loc 1 2760 23 is_stmt 0 discriminator 2 view .LVU1930
5808 004a 2123 movs r3, #33
5809 004c 84F84130 strb r3, [r4, #65]
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5810 .loc 1 2761 5 is_stmt 1 discriminator 2 view .LVU1931
2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5811 .loc 1 2761 23 is_stmt 0 discriminator 2 view .LVU1932
5812 0050 4023 movs r3, #64
5813 0052 84F84230 strb r3, [r4, #66]
2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5814 .loc 1 2762 5 is_stmt 1 discriminator 2 view .LVU1933
2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5815 .loc 1 2762 23 is_stmt 0 discriminator 2 view .LVU1934
5816 0056 0023 movs r3, #0
5817 0058 6364 str r3, [r4, #68]
2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5818 .loc 1 2765 5 is_stmt 1 discriminator 2 view .LVU1935
2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
5819 .loc 1 2765 23 is_stmt 0 discriminator 2 view .LVU1936
5820 005a 6562 str r5, [r4, #36]
2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5821 .loc 1 2766 5 is_stmt 1 discriminator 2 view .LVU1937
2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5822 .loc 1 2766 23 is_stmt 0 discriminator 2 view .LVU1938
5823 005c A4F82A90 strh r9, [r4, #42] @ movhi
2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
5824 .loc 1 2767 5 is_stmt 1 discriminator 2 view .LVU1939
2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
5825 .loc 1 2767 23 is_stmt 0 discriminator 2 view .LVU1940
5826 0060 A3F58033 sub r3, r3, #65536
5827 0064 E362 str r3, [r4, #44]
2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5828 .loc 1 2768 5 is_stmt 1 discriminator 2 view .LVU1941
2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5829 .loc 1 2768 23 is_stmt 0 discriminator 2 view .LVU1942
5830 0066 3D4B ldr r3, .L390
5831 0068 6363 str r3, [r4, #52]
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5832 .loc 1 2770 5 is_stmt 1 discriminator 2 view .LVU1943
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5833 .loc 1 2770 13 is_stmt 0 discriminator 2 view .LVU1944
5834 006a 638D ldrh r3, [r4, #42]
5835 006c 9BB2 uxth r3, r3
2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 251
5836 .loc 1 2770 8 discriminator 2 view .LVU1945
5837 006e FF2B cmp r3, #255
5838 0070 37D9 bls .L376
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5839 .loc 1 2772 7 is_stmt 1 view .LVU1946
2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5840 .loc 1 2772 22 is_stmt 0 view .LVU1947
5841 0072 FF23 movs r3, #255
5842 0074 2385 strh r3, [r4, #40] @ movhi
2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5843 .loc 1 2773 7 is_stmt 1 view .LVU1948
5844 .LVL357:
2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5845 .loc 1 2773 16 is_stmt 0 view .LVU1949
5846 0076 4FF08079 mov r9, #16777216
5847 .LVL358:
5848 .L377:
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5849 .loc 1 2782 5 is_stmt 1 view .LVU1950
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5850 .loc 1 2782 9 is_stmt 0 view .LVU1951
5851 007a 0190 str r0, [sp, #4]
5852 007c 1923 movs r3, #25
5853 007e 0093 str r3, [sp]
5854 0080 3B46 mov r3, r7
5855 0082 4246 mov r2, r8
5856 0084 3146 mov r1, r6
5857 0086 2046 mov r0, r4
5858 .LVL359:
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5859 .loc 1 2782 9 view .LVU1952
5860 0088 FFF7FEFF bl I2C_RequestMemoryWrite
5861 .LVL360:
2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5862 .loc 1 2782 8 view .LVU1953
5863 008c 0028 cmp r0, #0
5864 008e 2DD1 bne .L388
2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5865 .loc 1 2790 5 is_stmt 1 view .LVU1954
2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5866 .loc 1 2790 13 is_stmt 0 view .LVU1955
5867 0090 A36B ldr r3, [r4, #56]
2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5868 .loc 1 2790 8 view .LVU1956
5869 0092 002B cmp r3, #0
5870 0094 2FD0 beq .L379
2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5871 .loc 1 2793 7 is_stmt 1 view .LVU1957
2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5872 .loc 1 2793 38 is_stmt 0 view .LVU1958
5873 0096 324A ldr r2, .L390+4
5874 0098 DA63 str r2, [r3, #60]
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5875 .loc 1 2796 7 is_stmt 1 view .LVU1959
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5876 .loc 1 2796 11 is_stmt 0 view .LVU1960
5877 009a A36B ldr r3, [r4, #56]
ARM GAS /tmp/ccEimIdZ.s page 252
2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5878 .loc 1 2796 39 view .LVU1961
5879 009c 314A ldr r2, .L390+8
5880 009e DA64 str r2, [r3, #76]
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
5881 .loc 1 2799 7 is_stmt 1 view .LVU1962
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
5882 .loc 1 2799 11 is_stmt 0 view .LVU1963
5883 00a0 A26B ldr r2, [r4, #56]
2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
5884 .loc 1 2799 42 view .LVU1964
5885 00a2 0023 movs r3, #0
5886 00a4 1364 str r3, [r2, #64]
2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5887 .loc 1 2800 7 is_stmt 1 view .LVU1965
2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5888 .loc 1 2800 11 is_stmt 0 view .LVU1966
5889 00a6 A26B ldr r2, [r4, #56]
2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5890 .loc 1 2800 39 view .LVU1967
5891 00a8 1365 str r3, [r2, #80]
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5892 .loc 1 2803 7 is_stmt 1 view .LVU1968
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5893 .loc 1 2803 86 is_stmt 0 view .LVU1969
5894 00aa 2268 ldr r2, [r4]
2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5895 .loc 1 2803 23 view .LVU1970
5896 00ac 238D ldrh r3, [r4, #40]
5897 00ae 2832 adds r2, r2, #40
5898 00b0 2946 mov r1, r5
5899 00b2 A06B ldr r0, [r4, #56]
5900 00b4 FFF7FEFF bl HAL_DMA_Start_IT
5901 .LVL361:
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5902 .loc 1 2820 5 is_stmt 1 view .LVU1971
2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
5903 .loc 1 2820 8 is_stmt 0 view .LVU1972
5904 00b8 0546 mov r5, r0
5905 00ba 50B3 cbz r0, .L389
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5906 .loc 1 2844 7 is_stmt 1 view .LVU1973
2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5907 .loc 1 2844 23 is_stmt 0 view .LVU1974
5908 00bc 2023 movs r3, #32
5909 00be 84F84130 strb r3, [r4, #65]
2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5910 .loc 1 2845 7 is_stmt 1 view .LVU1975
2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5911 .loc 1 2845 23 is_stmt 0 view .LVU1976
5912 00c2 0022 movs r2, #0
5913 00c4 84F84220 strb r2, [r4, #66]
2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5914 .loc 1 2848 7 is_stmt 1 view .LVU1977
2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5915 .loc 1 2848 23 is_stmt 0 view .LVU1978
5916 00c8 636C ldr r3, [r4, #68]
ARM GAS /tmp/ccEimIdZ.s page 253
5917 00ca 43F01003 orr r3, r3, #16
5918 00ce 6364 str r3, [r4, #68]
2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5919 .loc 1 2851 7 is_stmt 1 view .LVU1979
2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5920 .loc 1 2851 7 view .LVU1980
5921 00d0 84F84020 strb r2, [r4, #64]
2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5922 .loc 1 2851 7 view .LVU1981
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5923 .loc 1 2853 7 view .LVU1982
2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5924 .loc 1 2853 14 is_stmt 0 view .LVU1983
5925 00d4 0125 movs r5, #1
5926 00d6 38E0 b .L374
5927 .LVL362:
5928 .L387:
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5929 .loc 1 2745 7 is_stmt 1 view .LVU1984
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5930 .loc 1 2745 23 is_stmt 0 view .LVU1985
5931 00d8 4FF40073 mov r3, #512
5932 .LVL363:
2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5933 .loc 1 2745 23 view .LVU1986
5934 00dc 6364 str r3, [r4, #68]
2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5935 .loc 1 2746 7 is_stmt 1 view .LVU1987
2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5936 .loc 1 2746 15 is_stmt 0 view .LVU1988
5937 00de 0125 movs r5, #1
5938 00e0 33E0 b .L374
5939 .LVL364:
5940 .L376:
2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5941 .loc 1 2777 7 is_stmt 1 view .LVU1989
2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5942 .loc 1 2777 28 is_stmt 0 view .LVU1990
5943 00e2 638D ldrh r3, [r4, #42]
2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5944 .loc 1 2777 22 view .LVU1991
5945 00e4 2385 strh r3, [r4, #40] @ movhi
2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5946 .loc 1 2778 7 is_stmt 1 view .LVU1992
5947 .LVL365:
2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5948 .loc 1 2778 16 is_stmt 0 view .LVU1993
5949 00e6 4FF00079 mov r9, #33554432
5950 00ea C6E7 b .L377
5951 .LVL366:
5952 .L388:
2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5953 .loc 1 2785 7 is_stmt 1 view .LVU1994
2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5954 .loc 1 2785 7 view .LVU1995
5955 00ec 0023 movs r3, #0
5956 00ee 84F84030 strb r3, [r4, #64]
ARM GAS /tmp/ccEimIdZ.s page 254
2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
5957 .loc 1 2785 7 view .LVU1996
2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5958 .loc 1 2786 7 view .LVU1997
2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5959 .loc 1 2786 14 is_stmt 0 view .LVU1998
5960 00f2 0125 movs r5, #1
5961 00f4 29E0 b .L374
5962 .L379:
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5963 .loc 1 2808 7 is_stmt 1 view .LVU1999
2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5964 .loc 1 2808 23 is_stmt 0 view .LVU2000
5965 00f6 2023 movs r3, #32
5966 00f8 84F84130 strb r3, [r4, #65]
2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5967 .loc 1 2809 7 is_stmt 1 view .LVU2001
2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5968 .loc 1 2809 23 is_stmt 0 view .LVU2002
5969 00fc 0022 movs r2, #0
5970 00fe 84F84220 strb r2, [r4, #66]
2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5971 .loc 1 2812 7 is_stmt 1 view .LVU2003
2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5972 .loc 1 2812 23 is_stmt 0 view .LVU2004
5973 0102 636C ldr r3, [r4, #68]
5974 0104 43F08003 orr r3, r3, #128
5975 0108 6364 str r3, [r4, #68]
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5976 .loc 1 2815 7 is_stmt 1 view .LVU2005
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5977 .loc 1 2815 7 view .LVU2006
5978 010a 84F84020 strb r2, [r4, #64]
2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5979 .loc 1 2815 7 view .LVU2007
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5980 .loc 1 2817 7 view .LVU2008
2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
5981 .loc 1 2817 14 is_stmt 0 view .LVU2009
5982 010e 0125 movs r5, #1
5983 0110 1BE0 b .L374
5984 .LVL367:
5985 .L389:
2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5986 .loc 1 2824 7 is_stmt 1 view .LVU2010
5987 0112 0027 movs r7, #0
5988 0114 0097 str r7, [sp]
5989 0116 4B46 mov r3, r9
5990 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
5991 011c 3146 mov r1, r6
5992 011e 2046 mov r0, r4
5993 .LVL368:
2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5994 .loc 1 2824 7 is_stmt 0 view .LVU2011
5995 0120 FFF7FEFF bl I2C_TransferConfig
5996 .LVL369:
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 255
5997 .loc 1 2827 7 is_stmt 1 view .LVU2012
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
5998 .loc 1 2827 23 is_stmt 0 view .LVU2013
5999 0124 638D ldrh r3, [r4, #42]
6000 0126 9BB2 uxth r3, r3
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6001 .loc 1 2827 30 view .LVU2014
6002 0128 228D ldrh r2, [r4, #40]
2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6003 .loc 1 2827 23 view .LVU2015
6004 012a 9B1A subs r3, r3, r2
6005 012c 9BB2 uxth r3, r3
6006 012e 6385 strh r3, [r4, #42] @ movhi
2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6007 .loc 1 2830 7 is_stmt 1 view .LVU2016
2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6008 .loc 1 2830 7 view .LVU2017
6009 0130 84F84070 strb r7, [r4, #64]
2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6010 .loc 1 2830 7 view .LVU2018
2836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6011 .loc 1 2836 7 view .LVU2019
6012 0134 1021 movs r1, #16
6013 0136 2046 mov r0, r4
6014 0138 FFF7FEFF bl I2C_Enable_IRQ
6015 .LVL370:
2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6016 .loc 1 2839 7 view .LVU2020
2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6017 .loc 1 2839 11 is_stmt 0 view .LVU2021
6018 013c 2268 ldr r2, [r4]
2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6019 .loc 1 2839 27 view .LVU2022
6020 013e 1368 ldr r3, [r2]
6021 0140 43F48043 orr r3, r3, #16384
6022 0144 1360 str r3, [r2]
2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6023 .loc 1 2856 5 is_stmt 1 view .LVU2023
2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6024 .loc 1 2856 12 is_stmt 0 view .LVU2024
6025 0146 00E0 b .L374
6026 .LVL371:
6027 .L382:
2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6028 .loc 1 2860 12 view .LVU2025
6029 0148 0225 movs r5, #2
6030 .LVL372:
6031 .L374:
2862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6032 .loc 1 2862 1 view .LVU2026
6033 014a 2846 mov r0, r5
6034 014c 03B0 add sp, sp, #12
6035 .LCFI73:
6036 .cfi_remember_state
6037 .cfi_def_cfa_offset 28
6038 @ sp needed
6039 014e BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
ARM GAS /tmp/ccEimIdZ.s page 256
6040 .LVL373:
6041 .L383:
6042 .LCFI74:
6043 .cfi_restore_state
2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6044 .loc 1 2751 14 view .LVU2027
6045 0152 0225 movs r5, #2
6046 0154 F9E7 b .L374
6047 .L384:
2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6048 .loc 1 2755 5 view .LVU2028
6049 0156 0225 movs r5, #2
6050 0158 F7E7 b .L374
6051 .L391:
6052 015a 00BF .align 2
6053 .L390:
6054 015c 00000000 .word I2C_Master_ISR_DMA
6055 0160 00000000 .word I2C_DMAMasterTransmitCplt
6056 0164 00000000 .word I2C_DMAError
6057 .cfi_endproc
6058 .LFE161:
6060 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
6061 .align 1
6062 .global HAL_I2C_Mem_Read_DMA
6063 .syntax unified
6064 .thumb
6065 .thumb_func
6066 .fpu fpv5-d16
6068 HAL_I2C_Mem_Read_DMA:
6069 .LVL374:
6070 .LFB162:
2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6071 .loc 1 2877 1 is_stmt 1 view -0
6072 .cfi_startproc
6073 @ args = 8, pretend = 0, frame = 0
6074 @ frame_needed = 0, uses_anonymous_args = 0
2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6075 .loc 1 2877 1 is_stmt 0 view .LVU2030
6076 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
6077 .LCFI75:
6078 .cfi_def_cfa_offset 28
6079 .cfi_offset 4, -28
6080 .cfi_offset 5, -24
6081 .cfi_offset 6, -20
6082 .cfi_offset 7, -16
6083 .cfi_offset 8, -12
6084 .cfi_offset 9, -8
6085 .cfi_offset 14, -4
6086 0004 83B0 sub sp, sp, #12
6087 .LCFI76:
6088 .cfi_def_cfa_offset 40
6089 0006 0446 mov r4, r0
6090 0008 0A9D ldr r5, [sp, #40]
6091 000a BDF82C90 ldrh r9, [sp, #44]
2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
6092 .loc 1 2878 3 is_stmt 1 view .LVU2031
2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
ARM GAS /tmp/ccEimIdZ.s page 257
6093 .loc 1 2879 3 view .LVU2032
2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6094 .loc 1 2880 3 view .LVU2033
2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6095 .loc 1 2883 3 view .LVU2034
2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6096 .loc 1 2885 3 view .LVU2035
2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6097 .loc 1 2885 11 is_stmt 0 view .LVU2036
6098 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6099 .LVL375:
2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6100 .loc 1 2885 11 view .LVU2037
6101 0012 C0B2 uxtb r0, r0
2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6102 .loc 1 2885 6 view .LVU2038
6103 0014 2028 cmp r0, #32
6104 0016 40F09880 bne .L401
6105 001a 0E46 mov r6, r1
6106 001c 9046 mov r8, r2
6107 001e 1F46 mov r7, r3
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6108 .loc 1 2887 5 is_stmt 1 view .LVU2039
2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6109 .loc 1 2887 8 is_stmt 0 view .LVU2040
6110 0020 B9F1000F cmp r9, #0
6111 0024 18BF it ne
6112 0026 002D cmpne r5, #0
6113 0028 56D0 beq .L406
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6114 .loc 1 2893 5 is_stmt 1 view .LVU2041
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6115 .loc 1 2893 9 is_stmt 0 view .LVU2042
6116 002a 2368 ldr r3, [r4]
6117 .LVL376:
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6118 .loc 1 2893 9 view .LVU2043
6119 002c 9B69 ldr r3, [r3, #24]
2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6120 .loc 1 2893 8 view .LVU2044
6121 002e 13F4004F tst r3, #32768
6122 0032 40F08F80 bne .L402
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6123 .loc 1 2899 5 is_stmt 1 view .LVU2045
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6124 .loc 1 2899 5 view .LVU2046
6125 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
6126 003a 012B cmp r3, #1
6127 003c 00F08C80 beq .L403
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6128 .loc 1 2899 5 discriminator 2 view .LVU2047
6129 0040 0123 movs r3, #1
6130 0042 84F84030 strb r3, [r4, #64]
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6131 .loc 1 2899 5 discriminator 2 view .LVU2048
2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6132 .loc 1 2902 5 discriminator 2 view .LVU2049
ARM GAS /tmp/ccEimIdZ.s page 258
2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6133 .loc 1 2902 17 is_stmt 0 discriminator 2 view .LVU2050
6134 0046 FFF7FEFF bl HAL_GetTick
6135 .LVL377:
2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6136 .loc 1 2904 5 is_stmt 1 discriminator 2 view .LVU2051
2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6137 .loc 1 2904 23 is_stmt 0 discriminator 2 view .LVU2052
6138 004a 2223 movs r3, #34
6139 004c 84F84130 strb r3, [r4, #65]
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6140 .loc 1 2905 5 is_stmt 1 discriminator 2 view .LVU2053
2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6141 .loc 1 2905 23 is_stmt 0 discriminator 2 view .LVU2054
6142 0050 4023 movs r3, #64
6143 0052 84F84230 strb r3, [r4, #66]
2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6144 .loc 1 2906 5 is_stmt 1 discriminator 2 view .LVU2055
2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6145 .loc 1 2906 23 is_stmt 0 discriminator 2 view .LVU2056
6146 0056 0023 movs r3, #0
6147 0058 6364 str r3, [r4, #68]
2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6148 .loc 1 2909 5 is_stmt 1 discriminator 2 view .LVU2057
2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6149 .loc 1 2909 23 is_stmt 0 discriminator 2 view .LVU2058
6150 005a 6562 str r5, [r4, #36]
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6151 .loc 1 2910 5 is_stmt 1 discriminator 2 view .LVU2059
2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6152 .loc 1 2910 23 is_stmt 0 discriminator 2 view .LVU2060
6153 005c A4F82A90 strh r9, [r4, #42] @ movhi
2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6154 .loc 1 2911 5 is_stmt 1 discriminator 2 view .LVU2061
2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6155 .loc 1 2911 23 is_stmt 0 discriminator 2 view .LVU2062
6156 0060 A3F58033 sub r3, r3, #65536
6157 0064 E362 str r3, [r4, #44]
2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6158 .loc 1 2912 5 is_stmt 1 discriminator 2 view .LVU2063
2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6159 .loc 1 2912 23 is_stmt 0 discriminator 2 view .LVU2064
6160 0066 3D4B ldr r3, .L409
6161 0068 6363 str r3, [r4, #52]
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6162 .loc 1 2914 5 is_stmt 1 discriminator 2 view .LVU2065
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6163 .loc 1 2914 13 is_stmt 0 discriminator 2 view .LVU2066
6164 006a 638D ldrh r3, [r4, #42]
6165 006c 9BB2 uxth r3, r3
2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6166 .loc 1 2914 8 discriminator 2 view .LVU2067
6167 006e FF2B cmp r3, #255
6168 0070 37D9 bls .L395
2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6169 .loc 1 2916 7 is_stmt 1 view .LVU2068
2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS /tmp/ccEimIdZ.s page 259
6170 .loc 1 2916 22 is_stmt 0 view .LVU2069
6171 0072 FF23 movs r3, #255
6172 0074 2385 strh r3, [r4, #40] @ movhi
2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6173 .loc 1 2917 7 is_stmt 1 view .LVU2070
6174 .LVL378:
2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6175 .loc 1 2917 16 is_stmt 0 view .LVU2071
6176 0076 4FF08079 mov r9, #16777216
6177 .LVL379:
6178 .L396:
2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6179 .loc 1 2926 5 is_stmt 1 view .LVU2072
2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6180 .loc 1 2926 9 is_stmt 0 view .LVU2073
6181 007a 0190 str r0, [sp, #4]
6182 007c 1923 movs r3, #25
6183 007e 0093 str r3, [sp]
6184 0080 3B46 mov r3, r7
6185 0082 4246 mov r2, r8
6186 0084 3146 mov r1, r6
6187 0086 2046 mov r0, r4
6188 .LVL380:
2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6189 .loc 1 2926 9 view .LVU2074
6190 0088 FFF7FEFF bl I2C_RequestMemoryRead
6191 .LVL381:
2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6192 .loc 1 2926 8 view .LVU2075
6193 008c 0028 cmp r0, #0
6194 008e 2DD1 bne .L407
2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6195 .loc 1 2933 5 is_stmt 1 view .LVU2076
2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6196 .loc 1 2933 13 is_stmt 0 view .LVU2077
6197 0090 E36B ldr r3, [r4, #60]
2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6198 .loc 1 2933 8 view .LVU2078
6199 0092 002B cmp r3, #0
6200 0094 2FD0 beq .L398
2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6201 .loc 1 2936 7 is_stmt 1 view .LVU2079
2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6202 .loc 1 2936 38 is_stmt 0 view .LVU2080
6203 0096 324A ldr r2, .L409+4
6204 0098 DA63 str r2, [r3, #60]
2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6205 .loc 1 2939 7 is_stmt 1 view .LVU2081
2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6206 .loc 1 2939 11 is_stmt 0 view .LVU2082
6207 009a E36B ldr r3, [r4, #60]
2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6208 .loc 1 2939 39 view .LVU2083
6209 009c 314A ldr r2, .L409+8
6210 009e DA64 str r2, [r3, #76]
2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6211 .loc 1 2942 7 is_stmt 1 view .LVU2084
ARM GAS /tmp/ccEimIdZ.s page 260
2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6212 .loc 1 2942 11 is_stmt 0 view .LVU2085
6213 00a0 E26B ldr r2, [r4, #60]
2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6214 .loc 1 2942 42 view .LVU2086
6215 00a2 0023 movs r3, #0
6216 00a4 1364 str r3, [r2, #64]
2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6217 .loc 1 2943 7 is_stmt 1 view .LVU2087
2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6218 .loc 1 2943 11 is_stmt 0 view .LVU2088
6219 00a6 E26B ldr r2, [r4, #60]
2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6220 .loc 1 2943 39 view .LVU2089
6221 00a8 1365 str r3, [r2, #80]
2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6222 .loc 1 2946 7 is_stmt 1 view .LVU2090
2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6223 .loc 1 2946 69 is_stmt 0 view .LVU2091
6224 00aa 2168 ldr r1, [r4]
2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6225 .loc 1 2946 23 view .LVU2092
6226 00ac 238D ldrh r3, [r4, #40]
6227 00ae 2A46 mov r2, r5
6228 00b0 2431 adds r1, r1, #36
6229 00b2 E06B ldr r0, [r4, #60]
6230 00b4 FFF7FEFF bl HAL_DMA_Start_IT
6231 .LVL382:
2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6232 .loc 1 2963 5 is_stmt 1 view .LVU2093
2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6233 .loc 1 2963 8 is_stmt 0 view .LVU2094
6234 00b8 0546 mov r5, r0
6235 00ba 50B3 cbz r0, .L408
2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6236 .loc 1 2986 7 is_stmt 1 view .LVU2095
2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6237 .loc 1 2986 23 is_stmt 0 view .LVU2096
6238 00bc 2023 movs r3, #32
6239 00be 84F84130 strb r3, [r4, #65]
2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6240 .loc 1 2987 7 is_stmt 1 view .LVU2097
2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6241 .loc 1 2987 23 is_stmt 0 view .LVU2098
6242 00c2 0022 movs r2, #0
6243 00c4 84F84220 strb r2, [r4, #66]
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6244 .loc 1 2990 7 is_stmt 1 view .LVU2099
2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6245 .loc 1 2990 23 is_stmt 0 view .LVU2100
6246 00c8 636C ldr r3, [r4, #68]
6247 00ca 43F01003 orr r3, r3, #16
6248 00ce 6364 str r3, [r4, #68]
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6249 .loc 1 2993 7 is_stmt 1 view .LVU2101
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6250 .loc 1 2993 7 view .LVU2102
ARM GAS /tmp/ccEimIdZ.s page 261
6251 00d0 84F84020 strb r2, [r4, #64]
2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6252 .loc 1 2993 7 view .LVU2103
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6253 .loc 1 2995 7 view .LVU2104
2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6254 .loc 1 2995 14 is_stmt 0 view .LVU2105
6255 00d4 0125 movs r5, #1
6256 00d6 39E0 b .L393
6257 .LVL383:
6258 .L406:
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6259 .loc 1 2889 7 is_stmt 1 view .LVU2106
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6260 .loc 1 2889 23 is_stmt 0 view .LVU2107
6261 00d8 4FF40073 mov r3, #512
6262 .LVL384:
2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6263 .loc 1 2889 23 view .LVU2108
6264 00dc 6364 str r3, [r4, #68]
2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6265 .loc 1 2890 7 is_stmt 1 view .LVU2109
2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6266 .loc 1 2890 15 is_stmt 0 view .LVU2110
6267 00de 0125 movs r5, #1
6268 00e0 34E0 b .L393
6269 .LVL385:
6270 .L395:
2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6271 .loc 1 2921 7 is_stmt 1 view .LVU2111
2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6272 .loc 1 2921 28 is_stmt 0 view .LVU2112
6273 00e2 638D ldrh r3, [r4, #42]
2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6274 .loc 1 2921 22 view .LVU2113
6275 00e4 2385 strh r3, [r4, #40] @ movhi
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6276 .loc 1 2922 7 is_stmt 1 view .LVU2114
6277 .LVL386:
2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6278 .loc 1 2922 16 is_stmt 0 view .LVU2115
6279 00e6 4FF00079 mov r9, #33554432
6280 00ea C6E7 b .L396
6281 .LVL387:
6282 .L407:
2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6283 .loc 1 2929 7 is_stmt 1 view .LVU2116
2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6284 .loc 1 2929 7 view .LVU2117
6285 00ec 0023 movs r3, #0
6286 00ee 84F84030 strb r3, [r4, #64]
2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
6287 .loc 1 2929 7 view .LVU2118
2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6288 .loc 1 2930 7 view .LVU2119
2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6289 .loc 1 2930 14 is_stmt 0 view .LVU2120
ARM GAS /tmp/ccEimIdZ.s page 262
6290 00f2 0125 movs r5, #1
6291 00f4 2AE0 b .L393
6292 .L398:
2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6293 .loc 1 2951 7 is_stmt 1 view .LVU2121
2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6294 .loc 1 2951 23 is_stmt 0 view .LVU2122
6295 00f6 2023 movs r3, #32
6296 00f8 84F84130 strb r3, [r4, #65]
2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6297 .loc 1 2952 7 is_stmt 1 view .LVU2123
2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6298 .loc 1 2952 23 is_stmt 0 view .LVU2124
6299 00fc 0022 movs r2, #0
6300 00fe 84F84220 strb r2, [r4, #66]
2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6301 .loc 1 2955 7 is_stmt 1 view .LVU2125
2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6302 .loc 1 2955 23 is_stmt 0 view .LVU2126
6303 0102 636C ldr r3, [r4, #68]
6304 0104 43F08003 orr r3, r3, #128
6305 0108 6364 str r3, [r4, #68]
2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6306 .loc 1 2958 7 is_stmt 1 view .LVU2127
2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6307 .loc 1 2958 7 view .LVU2128
6308 010a 84F84020 strb r2, [r4, #64]
2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6309 .loc 1 2958 7 view .LVU2129
2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6310 .loc 1 2960 7 view .LVU2130
2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6311 .loc 1 2960 14 is_stmt 0 view .LVU2131
6312 010e 0125 movs r5, #1
6313 0110 1CE0 b .L393
6314 .LVL388:
6315 .L408:
2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6316 .loc 1 2966 7 is_stmt 1 view .LVU2132
6317 0112 154B ldr r3, .L409+12
6318 0114 0093 str r3, [sp]
6319 0116 4B46 mov r3, r9
6320 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
6321 011c 3146 mov r1, r6
6322 011e 2046 mov r0, r4
6323 .LVL389:
2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6324 .loc 1 2966 7 is_stmt 0 view .LVU2133
6325 0120 FFF7FEFF bl I2C_TransferConfig
6326 .LVL390:
2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6327 .loc 1 2969 7 is_stmt 1 view .LVU2134
2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6328 .loc 1 2969 23 is_stmt 0 view .LVU2135
6329 0124 638D ldrh r3, [r4, #42]
6330 0126 9BB2 uxth r3, r3
2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 263
6331 .loc 1 2969 30 view .LVU2136
6332 0128 228D ldrh r2, [r4, #40]
2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6333 .loc 1 2969 23 view .LVU2137
6334 012a 9B1A subs r3, r3, r2
6335 012c 9BB2 uxth r3, r3
6336 012e 6385 strh r3, [r4, #42] @ movhi
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6337 .loc 1 2972 7 is_stmt 1 view .LVU2138
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6338 .loc 1 2972 7 view .LVU2139
6339 0130 0023 movs r3, #0
6340 0132 84F84030 strb r3, [r4, #64]
2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6341 .loc 1 2972 7 view .LVU2140
2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6342 .loc 1 2978 7 view .LVU2141
6343 0136 1021 movs r1, #16
6344 0138 2046 mov r0, r4
6345 013a FFF7FEFF bl I2C_Enable_IRQ
6346 .LVL391:
2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6347 .loc 1 2981 7 view .LVU2142
2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6348 .loc 1 2981 11 is_stmt 0 view .LVU2143
6349 013e 2268 ldr r2, [r4]
2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6350 .loc 1 2981 27 view .LVU2144
6351 0140 1368 ldr r3, [r2]
6352 0142 43F40043 orr r3, r3, #32768
6353 0146 1360 str r3, [r2]
2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6354 .loc 1 2998 5 is_stmt 1 view .LVU2145
2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6355 .loc 1 2998 12 is_stmt 0 view .LVU2146
6356 0148 00E0 b .L393
6357 .LVL392:
6358 .L401:
3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6359 .loc 1 3002 12 view .LVU2147
6360 014a 0225 movs r5, #2
6361 .LVL393:
6362 .L393:
3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6363 .loc 1 3004 1 view .LVU2148
6364 014c 2846 mov r0, r5
6365 014e 03B0 add sp, sp, #12
6366 .LCFI77:
6367 .cfi_remember_state
6368 .cfi_def_cfa_offset 28
6369 @ sp needed
6370 0150 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
6371 .LVL394:
6372 .L402:
6373 .LCFI78:
6374 .cfi_restore_state
2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 264
6375 .loc 1 2895 14 view .LVU2149
6376 0154 0225 movs r5, #2
6377 0156 F9E7 b .L393
6378 .L403:
2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6379 .loc 1 2899 5 view .LVU2150
6380 0158 0225 movs r5, #2
6381 015a F7E7 b .L393
6382 .L410:
6383 .align 2
6384 .L409:
6385 015c 00000000 .word I2C_Master_ISR_DMA
6386 0160 00000000 .word I2C_DMAMasterReceiveCplt
6387 0164 00000000 .word I2C_DMAError
6388 0168 00240080 .word -2147474432
6389 .cfi_endproc
6390 .LFE162:
6392 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
6393 .align 1
6394 .global HAL_I2C_IsDeviceReady
6395 .syntax unified
6396 .thumb
6397 .thumb_func
6398 .fpu fpv5-d16
6400 HAL_I2C_IsDeviceReady:
6401 .LVL395:
6402 .LFB163:
3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6403 .loc 1 3018 1 is_stmt 1 view -0
6404 .cfi_startproc
6405 @ args = 0, pretend = 0, frame = 8
6406 @ frame_needed = 0, uses_anonymous_args = 0
3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart;
6407 .loc 1 3018 1 is_stmt 0 view .LVU2152
6408 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
6409 .LCFI79:
6410 .cfi_def_cfa_offset 28
6411 .cfi_offset 4, -28
6412 .cfi_offset 5, -24
6413 .cfi_offset 6, -20
6414 .cfi_offset 7, -16
6415 .cfi_offset 8, -12
6416 .cfi_offset 9, -8
6417 .cfi_offset 14, -4
6418 0004 85B0 sub sp, sp, #20
6419 .LCFI80:
6420 .cfi_def_cfa_offset 48
6421 0006 1D46 mov r5, r3
3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6422 .loc 1 3019 3 is_stmt 1 view .LVU2153
3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6423 .loc 1 3021 3 view .LVU2154
3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6424 .loc 1 3021 17 is_stmt 0 view .LVU2155
6425 0008 0023 movs r3, #0
6426 .LVL396:
3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 265
6427 .loc 1 3021 17 view .LVU2156
6428 000a 0393 str r3, [sp, #12]
3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2;
6429 .loc 1 3023 3 is_stmt 1 view .LVU2157
3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6430 .loc 1 3024 3 view .LVU2158
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6431 .loc 1 3026 3 view .LVU2159
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6432 .loc 1 3026 11 is_stmt 0 view .LVU2160
6433 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6434 0010 DBB2 uxtb r3, r3
3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6435 .loc 1 3026 6 view .LVU2161
6436 0012 202B cmp r3, #32
6437 0014 40F09C80 bne .L422
6438 0018 0646 mov r6, r0
6439 001a 8946 mov r9, r1
6440 001c 9046 mov r8, r2
3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6441 .loc 1 3028 5 is_stmt 1 view .LVU2162
3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6442 .loc 1 3028 9 is_stmt 0 view .LVU2163
6443 001e 0368 ldr r3, [r0]
6444 0020 9B69 ldr r3, [r3, #24]
3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6445 .loc 1 3028 8 view .LVU2164
6446 0022 13F4004F tst r3, #32768
6447 0026 40F09580 bne .L423
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6448 .loc 1 3034 5 is_stmt 1 view .LVU2165
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6449 .loc 1 3034 5 view .LVU2166
6450 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
6451 002e 012B cmp r3, #1
6452 0030 00F09280 beq .L424
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6453 .loc 1 3034 5 discriminator 2 view .LVU2167
6454 0034 0123 movs r3, #1
6455 0036 80F84030 strb r3, [r0, #64]
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6456 .loc 1 3034 5 discriminator 2 view .LVU2168
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6457 .loc 1 3036 5 discriminator 2 view .LVU2169
3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6458 .loc 1 3036 17 is_stmt 0 discriminator 2 view .LVU2170
6459 003a 2423 movs r3, #36
6460 003c 80F84130 strb r3, [r0, #65]
3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6461 .loc 1 3037 5 is_stmt 1 discriminator 2 view .LVU2171
3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6462 .loc 1 3037 21 is_stmt 0 discriminator 2 view .LVU2172
6463 0040 0023 movs r3, #0
6464 0042 4364 str r3, [r0, #68]
6465 .LVL397:
6466 .L421:
3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 266
6467 .loc 1 3039 5 is_stmt 1 view .LVU2173
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6468 .loc 1 3042 7 view .LVU2174
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6469 .loc 1 3042 29 is_stmt 0 view .LVU2175
6470 0044 F368 ldr r3, [r6, #12]
6471 0046 012B cmp r3, #1
6472 0048 10D0 beq .L429
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6473 .loc 1 3042 29 discriminator 2 view .LVU2176
6474 004a C9F30903 ubfx r3, r9, #0, #10
6475 004e 43F42053 orr r3, r3, #10240
6476 .L414:
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6477 .loc 1 3042 11 discriminator 4 view .LVU2177
6478 0052 3268 ldr r2, [r6]
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6479 .loc 1 3042 27 discriminator 4 view .LVU2178
6480 0054 5360 str r3, [r2, #4]
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6481 .loc 1 3046 7 is_stmt 1 discriminator 4 view .LVU2179
3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6482 .loc 1 3046 19 is_stmt 0 discriminator 4 view .LVU2180
6483 0056 FFF7FEFF bl HAL_GetTick
6484 .LVL398:
6485 005a 0746 mov r7, r0
6486 .LVL399:
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6487 .loc 1 3048 7 is_stmt 1 discriminator 4 view .LVU2181
3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6488 .loc 1 3048 14 is_stmt 0 discriminator 4 view .LVU2182
6489 005c 3268 ldr r2, [r6]
6490 005e 9369 ldr r3, [r2, #24]
6491 0060 C3F34013 ubfx r3, r3, #5, #1
6492 .LVL400:
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6493 .loc 1 3049 7 is_stmt 1 discriminator 4 view .LVU2183
3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6494 .loc 1 3049 14 is_stmt 0 discriminator 4 view .LVU2184
6495 0064 9469 ldr r4, [r2, #24]
6496 0066 C4F3001C ubfx ip, r4, #4, #1
6497 .LVL401:
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6498 .loc 1 3051 7 is_stmt 1 discriminator 4 view .LVU2185
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6499 .loc 1 3051 13 is_stmt 0 discriminator 4 view .LVU2186
6500 006a 0BE0 b .L415
6501 .LVL402:
6502 .L429:
3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6503 .loc 1 3042 29 discriminator 1 view .LVU2187
6504 006c C9F30902 ubfx r2, r9, #0, #10
6505 0070 3D4B ldr r3, .L433
6506 0072 1343 orrs r3, r3, r2
6507 0074 EDE7 b .L414
6508 .LVL403:
6509 .L416:
ARM GAS /tmp/ccEimIdZ.s page 267
3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6510 .loc 1 3070 9 is_stmt 1 view .LVU2188
3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6511 .loc 1 3070 16 is_stmt 0 view .LVU2189
6512 0076 3268 ldr r2, [r6]
6513 0078 9369 ldr r3, [r2, #24]
6514 007a C3F34013 ubfx r3, r3, #5, #1
6515 .LVL404:
3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6516 .loc 1 3071 9 is_stmt 1 view .LVU2190
3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6517 .loc 1 3071 16 is_stmt 0 view .LVU2191
6518 007e 9469 ldr r4, [r2, #24]
6519 0080 C4F3001C ubfx ip, r4, #4, #1
6520 .LVL405:
6521 .L415:
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6522 .loc 1 3051 13 is_stmt 1 view .LVU2192
6523 0084 53EA0C03 orrs r3, r3, ip
6524 .LVL406:
3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6525 .loc 1 3051 13 is_stmt 0 view .LVU2193
6526 0088 17D1 bne .L430
3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6527 .loc 1 3053 9 is_stmt 1 view .LVU2194
3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6528 .loc 1 3053 12 is_stmt 0 view .LVU2195
6529 008a B5F1FF3F cmp r5, #-1
6530 008e F2D0 beq .L416
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6531 .loc 1 3055 11 is_stmt 1 view .LVU2196
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6532 .loc 1 3055 17 is_stmt 0 view .LVU2197
6533 0090 FFF7FEFF bl HAL_GetTick
6534 .LVL407:
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6535 .loc 1 3055 31 view .LVU2198
6536 0094 C01B subs r0, r0, r7
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6537 .loc 1 3055 14 view .LVU2199
6538 0096 A842 cmp r0, r5
6539 0098 01D8 bhi .L417
3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6540 .loc 1 3055 55 discriminator 1 view .LVU2200
6541 009a 002D cmp r5, #0
6542 009c EBD1 bne .L416
6543 .L417:
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6544 .loc 1 3058 13 is_stmt 1 view .LVU2201
3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6545 .loc 1 3058 25 is_stmt 0 view .LVU2202
6546 009e 2023 movs r3, #32
6547 00a0 86F84130 strb r3, [r6, #65]
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6548 .loc 1 3061 13 is_stmt 1 view .LVU2203
3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6549 .loc 1 3061 29 is_stmt 0 view .LVU2204
ARM GAS /tmp/ccEimIdZ.s page 268
6550 00a4 736C ldr r3, [r6, #68]
6551 00a6 43F02003 orr r3, r3, #32
6552 00aa 7364 str r3, [r6, #68]
3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6553 .loc 1 3064 13 is_stmt 1 view .LVU2205
3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6554 .loc 1 3064 13 view .LVU2206
6555 00ac 0023 movs r3, #0
6556 00ae 86F84030 strb r3, [r6, #64]
3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6557 .loc 1 3064 13 view .LVU2207
3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6558 .loc 1 3066 13 view .LVU2208
3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6559 .loc 1 3066 20 is_stmt 0 view .LVU2209
6560 00b2 0120 movs r0, #1
6561 .LVL408:
6562 .L412:
3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6563 .loc 1 3145 1 view .LVU2210
6564 00b4 05B0 add sp, sp, #20
6565 .LCFI81:
6566 .cfi_remember_state
6567 .cfi_def_cfa_offset 28
6568 @ sp needed
6569 00b6 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
6570 .LVL409:
6571 .L430:
6572 .LCFI82:
6573 .cfi_restore_state
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6574 .loc 1 3075 7 is_stmt 1 view .LVU2211
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6575 .loc 1 3075 11 is_stmt 0 view .LVU2212
6576 00ba 3368 ldr r3, [r6]
6577 00bc 9B69 ldr r3, [r3, #24]
3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6578 .loc 1 3075 10 view .LVU2213
6579 00be 13F0100F tst r3, #16
6580 00c2 23D0 beq .L431
3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6581 .loc 1 3097 9 is_stmt 1 view .LVU2214
3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6582 .loc 1 3097 13 is_stmt 0 view .LVU2215
6583 00c4 0097 str r7, [sp]
6584 00c6 2B46 mov r3, r5
6585 00c8 0022 movs r2, #0
6586 00ca 2021 movs r1, #32
6587 00cc 3046 mov r0, r6
6588 00ce FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6589 .LVL410:
3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6590 .loc 1 3097 12 view .LVU2216
6591 00d2 0028 cmp r0, #0
6592 00d4 44D1 bne .L426
3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6593 .loc 1 3103 9 is_stmt 1 view .LVU2217
ARM GAS /tmp/ccEimIdZ.s page 269
6594 00d6 3368 ldr r3, [r6]
6595 00d8 1022 movs r2, #16
6596 00da DA61 str r2, [r3, #28]
3106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6597 .loc 1 3106 9 view .LVU2218
6598 00dc 3368 ldr r3, [r6]
6599 00de 2022 movs r2, #32
6600 00e0 DA61 str r2, [r3, #28]
3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6601 .loc 1 3110 7 view .LVU2219
3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6602 .loc 1 3110 22 is_stmt 0 view .LVU2220
6603 00e2 039B ldr r3, [sp, #12]
3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6604 .loc 1 3110 10 view .LVU2221
6605 00e4 4345 cmp r3, r8
6606 00e6 22D0 beq .L432
6607 .L420:
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6608 .loc 1 3126 7 is_stmt 1 view .LVU2222
3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6609 .loc 1 3126 17 is_stmt 0 view .LVU2223
6610 00e8 039B ldr r3, [sp, #12]
6611 00ea 0133 adds r3, r3, #1
6612 00ec 0393 str r3, [sp, #12]
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6613 .loc 1 3128 11 is_stmt 1 view .LVU2224
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6614 .loc 1 3128 23 is_stmt 0 view .LVU2225
6615 00ee 039B ldr r3, [sp, #12]
3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6616 .loc 1 3128 5 view .LVU2226
6617 00f0 4345 cmp r3, r8
6618 00f2 A7D3 bcc .L421
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6619 .loc 1 3131 5 is_stmt 1 view .LVU2227
3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6620 .loc 1 3131 17 is_stmt 0 view .LVU2228
6621 00f4 2023 movs r3, #32
6622 00f6 86F84130 strb r3, [r6, #65]
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6623 .loc 1 3134 5 is_stmt 1 view .LVU2229
3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6624 .loc 1 3134 21 is_stmt 0 view .LVU2230
6625 00fa 736C ldr r3, [r6, #68]
6626 00fc 43F02003 orr r3, r3, #32
6627 0100 7364 str r3, [r6, #68]
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6628 .loc 1 3137 5 is_stmt 1 view .LVU2231
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6629 .loc 1 3137 5 view .LVU2232
6630 0102 0023 movs r3, #0
6631 0104 86F84030 strb r3, [r6, #64]
3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6632 .loc 1 3137 5 view .LVU2233
3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6633 .loc 1 3139 5 view .LVU2234
ARM GAS /tmp/ccEimIdZ.s page 270
3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6634 .loc 1 3139 12 is_stmt 0 view .LVU2235
6635 0108 0120 movs r0, #1
6636 010a D3E7 b .L412
6637 .LVL411:
6638 .L431:
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6639 .loc 1 3078 9 is_stmt 1 view .LVU2236
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6640 .loc 1 3078 13 is_stmt 0 view .LVU2237
6641 010c 0097 str r7, [sp]
6642 010e 2B46 mov r3, r5
6643 0110 0022 movs r2, #0
6644 0112 2021 movs r1, #32
6645 0114 3046 mov r0, r6
6646 0116 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6647 .LVL412:
3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6648 .loc 1 3078 12 view .LVU2238
6649 011a F8B9 cbnz r0, .L425
3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6650 .loc 1 3084 9 is_stmt 1 view .LVU2239
6651 011c 3268 ldr r2, [r6]
6652 011e 2023 movs r3, #32
6653 0120 D361 str r3, [r2, #28]
3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6654 .loc 1 3087 9 view .LVU2240
3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6655 .loc 1 3087 21 is_stmt 0 view .LVU2241
6656 0122 86F84130 strb r3, [r6, #65]
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6657 .loc 1 3090 9 is_stmt 1 view .LVU2242
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6658 .loc 1 3090 9 view .LVU2243
6659 0126 0023 movs r3, #0
6660 0128 86F84030 strb r3, [r6, #64]
3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6661 .loc 1 3090 9 view .LVU2244
3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6662 .loc 1 3092 9 view .LVU2245
3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6663 .loc 1 3092 16 is_stmt 0 view .LVU2246
6664 012c C2E7 b .L412
6665 .L432:
3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6666 .loc 1 3113 9 is_stmt 1 view .LVU2247
3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6667 .loc 1 3113 13 is_stmt 0 view .LVU2248
6668 012e 3268 ldr r2, [r6]
3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6669 .loc 1 3113 29 view .LVU2249
6670 0130 5368 ldr r3, [r2, #4]
6671 0132 43F48043 orr r3, r3, #16384
6672 0136 5360 str r3, [r2, #4]
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6673 .loc 1 3116 9 is_stmt 1 view .LVU2250
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 271
6674 .loc 1 3116 13 is_stmt 0 view .LVU2251
6675 0138 0097 str r7, [sp]
6676 013a 2B46 mov r3, r5
6677 013c 0022 movs r2, #0
6678 013e 2021 movs r1, #32
6679 0140 3046 mov r0, r6
6680 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6681 .LVL413:
3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6682 .loc 1 3116 12 view .LVU2252
6683 0146 68B9 cbnz r0, .L427
3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6684 .loc 1 3122 9 is_stmt 1 view .LVU2253
6685 0148 3368 ldr r3, [r6]
6686 014a 2022 movs r2, #32
6687 014c DA61 str r2, [r3, #28]
6688 014e CBE7 b .L420
6689 .LVL414:
6690 .L422:
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6691 .loc 1 3143 12 is_stmt 0 view .LVU2254
6692 0150 0220 movs r0, #2
6693 .LVL415:
3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6694 .loc 1 3143 12 view .LVU2255
6695 0152 AFE7 b .L412
6696 .LVL416:
6697 .L423:
3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6698 .loc 1 3030 14 view .LVU2256
6699 0154 0220 movs r0, #2
6700 .LVL417:
3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6701 .loc 1 3030 14 view .LVU2257
6702 0156 ADE7 b .L412
6703 .LVL418:
6704 .L424:
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6705 .loc 1 3034 5 view .LVU2258
6706 0158 0220 movs r0, #2
6707 .LVL419:
3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6708 .loc 1 3034 5 view .LVU2259
6709 015a ABE7 b .L412
6710 .LVL420:
6711 .L425:
3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6712 .loc 1 3080 18 view .LVU2260
6713 015c 0120 movs r0, #1
6714 015e A9E7 b .L412
6715 .L426:
3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6716 .loc 1 3099 18 view .LVU2261
6717 0160 0120 movs r0, #1
6718 0162 A7E7 b .L412
6719 .L427:
3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 272
6720 .loc 1 3118 18 view .LVU2262
6721 0164 0120 movs r0, #1
6722 0166 A5E7 b .L412
6723 .L434:
6724 .align 2
6725 .L433:
6726 0168 00200002 .word 33562624
6727 .cfi_endproc
6728 .LFE163:
6730 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
6731 .align 1
6732 .global HAL_I2C_Master_Seq_Transmit_IT
6733 .syntax unified
6734 .thumb
6735 .thumb_func
6736 .fpu fpv5-d16
6738 HAL_I2C_Master_Seq_Transmit_IT:
6739 .LVL421:
6740 .LFB164:
3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
6741 .loc 1 3160 1 is_stmt 1 view -0
6742 .cfi_startproc
6743 @ args = 4, pretend = 0, frame = 0
6744 @ frame_needed = 0, uses_anonymous_args = 0
3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
6745 .loc 1 3160 1 is_stmt 0 view .LVU2264
6746 0000 70B5 push {r4, r5, r6, lr}
6747 .LCFI83:
6748 .cfi_def_cfa_offset 16
6749 .cfi_offset 4, -16
6750 .cfi_offset 5, -12
6751 .cfi_offset 6, -8
6752 .cfi_offset 14, -4
6753 0002 82B0 sub sp, sp, #8
6754 .LCFI84:
6755 .cfi_def_cfa_offset 24
6756 0004 0446 mov r4, r0
6757 0006 0D46 mov r5, r1
6758 0008 0699 ldr r1, [sp, #24]
6759 .LVL422:
3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
6760 .loc 1 3161 3 is_stmt 1 view .LVU2265
3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6761 .loc 1 3162 3 view .LVU2266
3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6762 .loc 1 3165 3 view .LVU2267
3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6763 .loc 1 3167 3 view .LVU2268
3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6764 .loc 1 3167 11 is_stmt 0 view .LVU2269
6765 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6766 .LVL423:
3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6767 .loc 1 3167 11 view .LVU2270
6768 000e C0B2 uxtb r0, r0
3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6769 .loc 1 3167 6 view .LVU2271
ARM GAS /tmp/ccEimIdZ.s page 273
6770 0010 2028 cmp r0, #32
6771 0012 46D1 bne .L441
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6772 .loc 1 3170 5 is_stmt 1 view .LVU2272
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6773 .loc 1 3170 5 view .LVU2273
6774 0014 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
6775 0018 0128 cmp r0, #1
6776 001a 44D0 beq .L442
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6777 .loc 1 3170 5 discriminator 2 view .LVU2274
6778 001c 0120 movs r0, #1
6779 001e 84F84000 strb r0, [r4, #64]
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6780 .loc 1 3170 5 discriminator 2 view .LVU2275
3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6781 .loc 1 3172 5 discriminator 2 view .LVU2276
3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6782 .loc 1 3172 21 is_stmt 0 discriminator 2 view .LVU2277
6783 0022 2120 movs r0, #33
6784 0024 84F84100 strb r0, [r4, #65]
3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6785 .loc 1 3173 5 is_stmt 1 discriminator 2 view .LVU2278
3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6786 .loc 1 3173 21 is_stmt 0 discriminator 2 view .LVU2279
6787 0028 1020 movs r0, #16
6788 002a 84F84200 strb r0, [r4, #66]
3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6789 .loc 1 3174 5 is_stmt 1 discriminator 2 view .LVU2280
3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6790 .loc 1 3174 21 is_stmt 0 discriminator 2 view .LVU2281
6791 002e 0020 movs r0, #0
6792 0030 6064 str r0, [r4, #68]
3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6793 .loc 1 3177 5 is_stmt 1 discriminator 2 view .LVU2282
3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6794 .loc 1 3177 23 is_stmt 0 discriminator 2 view .LVU2283
6795 0032 6262 str r2, [r4, #36]
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6796 .loc 1 3178 5 is_stmt 1 discriminator 2 view .LVU2284
3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6797 .loc 1 3178 23 is_stmt 0 discriminator 2 view .LVU2285
6798 0034 6385 strh r3, [r4, #42] @ movhi
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6799 .loc 1 3179 5 is_stmt 1 discriminator 2 view .LVU2286
3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6800 .loc 1 3179 23 is_stmt 0 discriminator 2 view .LVU2287
6801 0036 E162 str r1, [r4, #44]
3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6802 .loc 1 3180 5 is_stmt 1 discriminator 2 view .LVU2288
3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6803 .loc 1 3180 23 is_stmt 0 discriminator 2 view .LVU2289
6804 0038 1C4B ldr r3, .L446
6805 .LVL424:
3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6806 .loc 1 3180 23 discriminator 2 view .LVU2290
6807 003a 6363 str r3, [r4, #52]
ARM GAS /tmp/ccEimIdZ.s page 274
3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6808 .loc 1 3183 5 is_stmt 1 discriminator 2 view .LVU2291
3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6809 .loc 1 3183 13 is_stmt 0 discriminator 2 view .LVU2292
6810 003c 638D ldrh r3, [r4, #42]
6811 003e 9BB2 uxth r3, r3
3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6812 .loc 1 3183 8 discriminator 2 view .LVU2293
6813 0040 FF2B cmp r3, #255
6814 0042 26D9 bls .L437
3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6815 .loc 1 3185 7 is_stmt 1 view .LVU2294
3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6816 .loc 1 3185 22 is_stmt 0 view .LVU2295
6817 0044 FF23 movs r3, #255
6818 0046 2385 strh r3, [r4, #40] @ movhi
3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6819 .loc 1 3186 7 is_stmt 1 view .LVU2296
6820 .LVL425:
3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6821 .loc 1 3186 16 is_stmt 0 view .LVU2297
6822 0048 4FF08076 mov r6, #16777216
6823 .LVL426:
6824 .L438:
3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6825 .loc 1 3196 5 is_stmt 1 view .LVU2298
3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6826 .loc 1 3196 14 is_stmt 0 view .LVU2299
6827 004c 236B ldr r3, [r4, #48]
3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6828 .loc 1 3196 8 view .LVU2300
6829 004e 112B cmp r3, #17
6830 0050 04D1 bne .L439
3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6831 .loc 1 3196 59 discriminator 1 view .LVU2301
6832 0052 B1F52A4F cmp r1, #43520
6833 0056 18BF it ne
6834 0058 AA29 cmpne r1, #170
6835 005a 1ED1 bne .L443
6836 .L439:
3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6837 .loc 1 3203 7 is_stmt 1 view .LVU2302
6838 005c 2046 mov r0, r4
6839 005e FFF7FEFF bl I2C_ConvertOtherXferOptions
6840 .LVL427:
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6841 .loc 1 3206 7 view .LVU2303
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6842 .loc 1 3206 15 is_stmt 0 view .LVU2304
6843 0062 638D ldrh r3, [r4, #42]
6844 0064 9BB2 uxth r3, r3
3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6845 .loc 1 3206 10 view .LVU2305
6846 0066 FF2B cmp r3, #255
6847 0068 19D8 bhi .L444
3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6848 .loc 1 3208 9 is_stmt 1 view .LVU2306
ARM GAS /tmp/ccEimIdZ.s page 275
3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6849 .loc 1 3208 18 is_stmt 0 view .LVU2307
6850 006a E66A ldr r6, [r4, #44]
6851 .LVL428:
3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6852 .loc 1 3162 12 view .LVU2308
6853 006c 104B ldr r3, .L446+4
6854 .L440:
6855 .LVL429:
3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6856 .loc 1 3213 5 is_stmt 1 view .LVU2309
6857 006e 0093 str r3, [sp]
6858 0070 3346 mov r3, r6
6859 .LVL430:
3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6860 .loc 1 3213 5 is_stmt 0 view .LVU2310
6861 0072 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
6862 0076 2946 mov r1, r5
6863 0078 2046 mov r0, r4
6864 007a FFF7FEFF bl I2C_TransferConfig
6865 .LVL431:
3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6866 .loc 1 3216 5 is_stmt 1 view .LVU2311
3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6867 .loc 1 3216 5 view .LVU2312
6868 007e 0025 movs r5, #0
6869 0080 84F84050 strb r5, [r4, #64]
3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6870 .loc 1 3216 5 view .LVU2313
3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6871 .loc 1 3221 5 view .LVU2314
6872 0084 0121 movs r1, #1
6873 0086 2046 mov r0, r4
6874 0088 FFF7FEFF bl I2C_Enable_IRQ
6875 .LVL432:
3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6876 .loc 1 3223 5 view .LVU2315
3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6877 .loc 1 3223 12 is_stmt 0 view .LVU2316
6878 008c 2846 mov r0, r5
6879 .LVL433:
6880 .L436:
3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6881 .loc 1 3229 1 view .LVU2317
6882 008e 02B0 add sp, sp, #8
6883 .LCFI85:
6884 .cfi_remember_state
6885 .cfi_def_cfa_offset 16
6886 @ sp needed
6887 0090 70BD pop {r4, r5, r6, pc}
6888 .LVL434:
6889 .L437:
6890 .LCFI86:
6891 .cfi_restore_state
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6892 .loc 1 3190 7 is_stmt 1 view .LVU2318
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
ARM GAS /tmp/ccEimIdZ.s page 276
6893 .loc 1 3190 28 is_stmt 0 view .LVU2319
6894 0092 638D ldrh r3, [r4, #42]
3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6895 .loc 1 3190 22 view .LVU2320
6896 0094 2385 strh r3, [r4, #40] @ movhi
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6897 .loc 1 3191 7 is_stmt 1 view .LVU2321
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6898 .loc 1 3191 16 is_stmt 0 view .LVU2322
6899 0096 E66A ldr r6, [r4, #44]
6900 .LVL435:
3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6901 .loc 1 3191 16 view .LVU2323
6902 0098 D8E7 b .L438
6903 .L443:
3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6904 .loc 1 3198 19 view .LVU2324
6905 009a 0023 movs r3, #0
6906 009c E7E7 b .L440
6907 .LVL436:
6908 .L444:
3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6909 .loc 1 3162 12 view .LVU2325
6910 009e 044B ldr r3, .L446+4
6911 00a0 E5E7 b .L440
6912 .LVL437:
6913 .L441:
3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
6914 .loc 1 3227 12 view .LVU2326
6915 00a2 0220 movs r0, #2
6916 00a4 F3E7 b .L436
6917 .L442:
3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6918 .loc 1 3170 5 view .LVU2327
6919 00a6 0220 movs r0, #2
6920 00a8 F1E7 b .L436
6921 .L447:
6922 00aa 00BF .align 2
6923 .L446:
6924 00ac 00000000 .word I2C_Master_ISR_IT
6925 00b0 00200080 .word -2147475456
6926 .cfi_endproc
6927 .LFE164:
6929 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
6930 .align 1
6931 .global HAL_I2C_Master_Seq_Transmit_DMA
6932 .syntax unified
6933 .thumb
6934 .thumb_func
6935 .fpu fpv5-d16
6937 HAL_I2C_Master_Seq_Transmit_DMA:
6938 .LVL438:
6939 .LFB165:
3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
6940 .loc 1 3244 1 is_stmt 1 view -0
6941 .cfi_startproc
6942 @ args = 4, pretend = 0, frame = 0
ARM GAS /tmp/ccEimIdZ.s page 277
6943 @ frame_needed = 0, uses_anonymous_args = 0
3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
6944 .loc 1 3244 1 is_stmt 0 view .LVU2329
6945 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
6946 .LCFI87:
6947 .cfi_def_cfa_offset 24
6948 .cfi_offset 4, -24
6949 .cfi_offset 5, -20
6950 .cfi_offset 6, -16
6951 .cfi_offset 7, -12
6952 .cfi_offset 8, -8
6953 .cfi_offset 14, -4
6954 0004 82B0 sub sp, sp, #8
6955 .LCFI88:
6956 .cfi_def_cfa_offset 32
6957 0006 0446 mov r4, r0
6958 0008 1546 mov r5, r2
6959 000a 089A ldr r2, [sp, #32]
6960 .LVL439:
3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
6961 .loc 1 3245 3 is_stmt 1 view .LVU2330
3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6962 .loc 1 3246 3 view .LVU2331
3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6963 .loc 1 3247 3 view .LVU2332
3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6964 .loc 1 3250 3 view .LVU2333
3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6965 .loc 1 3252 3 view .LVU2334
3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6966 .loc 1 3252 11 is_stmt 0 view .LVU2335
6967 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6968 .LVL440:
3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6969 .loc 1 3252 11 view .LVU2336
6970 0010 C0B2 uxtb r0, r0
3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
6971 .loc 1 3252 6 view .LVU2337
6972 0012 2028 cmp r0, #32
6973 0014 40F09D80 bne .L459
6974 0018 0E46 mov r6, r1
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6975 .loc 1 3255 5 is_stmt 1 view .LVU2338
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6976 .loc 1 3255 5 view .LVU2339
6977 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
6978 .LVL441:
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6979 .loc 1 3255 5 is_stmt 0 view .LVU2340
6980 001e 0129 cmp r1, #1
6981 0020 00F09B80 beq .L460
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6982 .loc 1 3255 5 is_stmt 1 discriminator 2 view .LVU2341
6983 0024 0121 movs r1, #1
6984 0026 84F84010 strb r1, [r4, #64]
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6985 .loc 1 3255 5 discriminator 2 view .LVU2342
ARM GAS /tmp/ccEimIdZ.s page 278
3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6986 .loc 1 3257 5 discriminator 2 view .LVU2343
3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6987 .loc 1 3257 21 is_stmt 0 discriminator 2 view .LVU2344
6988 002a 2121 movs r1, #33
6989 002c 84F84110 strb r1, [r4, #65]
3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6990 .loc 1 3258 5 is_stmt 1 discriminator 2 view .LVU2345
3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6991 .loc 1 3258 21 is_stmt 0 discriminator 2 view .LVU2346
6992 0030 1021 movs r1, #16
6993 0032 84F84210 strb r1, [r4, #66]
3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6994 .loc 1 3259 5 is_stmt 1 discriminator 2 view .LVU2347
3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
6995 .loc 1 3259 21 is_stmt 0 discriminator 2 view .LVU2348
6996 0036 0021 movs r1, #0
6997 0038 6164 str r1, [r4, #68]
3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6998 .loc 1 3262 5 is_stmt 1 discriminator 2 view .LVU2349
3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
6999 .loc 1 3262 23 is_stmt 0 discriminator 2 view .LVU2350
7000 003a 6562 str r5, [r4, #36]
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7001 .loc 1 3263 5 is_stmt 1 discriminator 2 view .LVU2351
3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7002 .loc 1 3263 23 is_stmt 0 discriminator 2 view .LVU2352
7003 003c 6385 strh r3, [r4, #42] @ movhi
3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7004 .loc 1 3264 5 is_stmt 1 discriminator 2 view .LVU2353
3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7005 .loc 1 3264 23 is_stmt 0 discriminator 2 view .LVU2354
7006 003e E262 str r2, [r4, #44]
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7007 .loc 1 3265 5 is_stmt 1 discriminator 2 view .LVU2355
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7008 .loc 1 3265 23 is_stmt 0 discriminator 2 view .LVU2356
7009 0040 474B ldr r3, .L466
7010 .LVL442:
3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7011 .loc 1 3265 23 discriminator 2 view .LVU2357
7012 0042 6363 str r3, [r4, #52]
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7013 .loc 1 3268 5 is_stmt 1 discriminator 2 view .LVU2358
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7014 .loc 1 3268 13 is_stmt 0 discriminator 2 view .LVU2359
7015 0044 638D ldrh r3, [r4, #42]
7016 0046 9BB2 uxth r3, r3
3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7017 .loc 1 3268 8 discriminator 2 view .LVU2360
7018 0048 FF2B cmp r3, #255
7019 004a 3AD9 bls .L450
3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7020 .loc 1 3270 7 is_stmt 1 view .LVU2361
3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7021 .loc 1 3270 22 is_stmt 0 view .LVU2362
7022 004c FF23 movs r3, #255
ARM GAS /tmp/ccEimIdZ.s page 279
7023 004e 2385 strh r3, [r4, #40] @ movhi
3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7024 .loc 1 3271 7 is_stmt 1 view .LVU2363
7025 .LVL443:
3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7026 .loc 1 3271 16 is_stmt 0 view .LVU2364
7027 0050 4FF08077 mov r7, #16777216
7028 .LVL444:
7029 .L451:
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7030 .loc 1 3281 5 is_stmt 1 view .LVU2365
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7031 .loc 1 3281 14 is_stmt 0 view .LVU2366
7032 0054 236B ldr r3, [r4, #48]
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7033 .loc 1 3281 8 view .LVU2367
7034 0056 112B cmp r3, #17
7035 0058 04D1 bne .L452
3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7036 .loc 1 3281 59 discriminator 1 view .LVU2368
7037 005a B2F52A4F cmp r2, #43520
7038 005e 18BF it ne
7039 0060 AA2A cmpne r2, #170
7040 0062 32D1 bne .L461
7041 .L452:
3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7042 .loc 1 3288 7 is_stmt 1 view .LVU2369
7043 0064 2046 mov r0, r4
7044 0066 FFF7FEFF bl I2C_ConvertOtherXferOptions
7045 .LVL445:
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7046 .loc 1 3291 7 view .LVU2370
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7047 .loc 1 3291 15 is_stmt 0 view .LVU2371
7048 006a 638D ldrh r3, [r4, #42]
7049 006c 9BB2 uxth r3, r3
3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7050 .loc 1 3291 10 view .LVU2372
7051 006e FF2B cmp r3, #255
7052 0070 2ED8 bhi .L462
3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7053 .loc 1 3293 9 is_stmt 1 view .LVU2373
3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7054 .loc 1 3293 18 is_stmt 0 view .LVU2374
7055 0072 E76A ldr r7, [r4, #44]
7056 .LVL446:
3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7057 .loc 1 3246 12 view .LVU2375
7058 0074 DFF8F880 ldr r8, .L466+16
7059 .L453:
7060 .LVL447:
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7061 .loc 1 3297 5 is_stmt 1 view .LVU2376
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7062 .loc 1 3297 13 is_stmt 0 view .LVU2377
7063 0078 228D ldrh r2, [r4, #40]
3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 280
7064 .loc 1 3297 8 view .LVU2378
7065 007a 002A cmp r2, #0
7066 007c 55D0 beq .L454
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7067 .loc 1 3299 7 is_stmt 1 view .LVU2379
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7068 .loc 1 3299 15 is_stmt 0 view .LVU2380
7069 007e A36B ldr r3, [r4, #56]
3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7070 .loc 1 3299 10 view .LVU2381
7071 0080 4BB3 cbz r3, .L455
3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7072 .loc 1 3302 9 is_stmt 1 view .LVU2382
3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7073 .loc 1 3302 40 is_stmt 0 view .LVU2383
7074 0082 384A ldr r2, .L466+4
7075 0084 DA63 str r2, [r3, #60]
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7076 .loc 1 3305 9 is_stmt 1 view .LVU2384
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7077 .loc 1 3305 13 is_stmt 0 view .LVU2385
7078 0086 A36B ldr r3, [r4, #56]
3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7079 .loc 1 3305 41 view .LVU2386
7080 0088 374A ldr r2, .L466+8
7081 008a DA64 str r2, [r3, #76]
3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7082 .loc 1 3308 9 is_stmt 1 view .LVU2387
3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7083 .loc 1 3308 13 is_stmt 0 view .LVU2388
7084 008c A26B ldr r2, [r4, #56]
3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7085 .loc 1 3308 44 view .LVU2389
7086 008e 0023 movs r3, #0
7087 0090 1364 str r3, [r2, #64]
3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7088 .loc 1 3309 9 is_stmt 1 view .LVU2390
3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7089 .loc 1 3309 13 is_stmt 0 view .LVU2391
7090 0092 A26B ldr r2, [r4, #56]
3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7091 .loc 1 3309 41 view .LVU2392
7092 0094 1365 str r3, [r2, #80]
3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7093 .loc 1 3312 9 is_stmt 1 view .LVU2393
3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7094 .loc 1 3312 88 is_stmt 0 view .LVU2394
7095 0096 2268 ldr r2, [r4]
3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7096 .loc 1 3312 25 view .LVU2395
7097 0098 238D ldrh r3, [r4, #40]
7098 009a 2832 adds r2, r2, #40
7099 009c 2946 mov r1, r5
7100 009e A06B ldr r0, [r4, #56]
7101 00a0 FFF7FEFF bl HAL_DMA_Start_IT
7102 .LVL448:
3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 281
7103 .loc 1 3329 7 is_stmt 1 view .LVU2396
3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7104 .loc 1 3329 10 is_stmt 0 view .LVU2397
7105 00a4 28B3 cbz r0, .L465
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7106 .loc 1 3352 9 is_stmt 1 view .LVU2398
3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7107 .loc 1 3352 25 is_stmt 0 view .LVU2399
7108 00a6 2023 movs r3, #32
7109 00a8 84F84130 strb r3, [r4, #65]
3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7110 .loc 1 3353 9 is_stmt 1 view .LVU2400
3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7111 .loc 1 3353 25 is_stmt 0 view .LVU2401
7112 00ac 0022 movs r2, #0
7113 00ae 84F84220 strb r2, [r4, #66]
3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7114 .loc 1 3356 9 is_stmt 1 view .LVU2402
3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7115 .loc 1 3356 25 is_stmt 0 view .LVU2403
7116 00b2 636C ldr r3, [r4, #68]
7117 00b4 43F01003 orr r3, r3, #16
7118 00b8 6364 str r3, [r4, #68]
3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7119 .loc 1 3359 9 is_stmt 1 view .LVU2404
3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7120 .loc 1 3359 9 view .LVU2405
7121 00ba 84F84020 strb r2, [r4, #64]
3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7122 .loc 1 3359 9 view .LVU2406
3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7123 .loc 1 3361 9 view .LVU2407
3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7124 .loc 1 3361 16 is_stmt 0 view .LVU2408
7125 00be 0120 movs r0, #1
7126 .LVL449:
3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7127 .loc 1 3361 16 view .LVU2409
7128 00c0 48E0 b .L449
7129 .LVL450:
7130 .L450:
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7131 .loc 1 3275 7 is_stmt 1 view .LVU2410
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7132 .loc 1 3275 28 is_stmt 0 view .LVU2411
7133 00c2 638D ldrh r3, [r4, #42]
3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7134 .loc 1 3275 22 view .LVU2412
7135 00c4 2385 strh r3, [r4, #40] @ movhi
3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7136 .loc 1 3276 7 is_stmt 1 view .LVU2413
3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7137 .loc 1 3276 16 is_stmt 0 view .LVU2414
7138 00c6 E76A ldr r7, [r4, #44]
7139 .LVL451:
3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7140 .loc 1 3276 16 view .LVU2415
ARM GAS /tmp/ccEimIdZ.s page 282
7141 00c8 C4E7 b .L451
7142 .L461:
3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7143 .loc 1 3283 19 view .LVU2416
7144 00ca 4FF00008 mov r8, #0
7145 00ce D3E7 b .L453
7146 .L462:
3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7147 .loc 1 3246 12 view .LVU2417
7148 00d0 DFF89C80 ldr r8, .L466+16
7149 00d4 D0E7 b .L453
7150 .LVL452:
7151 .L455:
3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7152 .loc 1 3317 9 is_stmt 1 view .LVU2418
3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7153 .loc 1 3317 25 is_stmt 0 view .LVU2419
7154 00d6 2023 movs r3, #32
7155 00d8 84F84130 strb r3, [r4, #65]
3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7156 .loc 1 3318 9 is_stmt 1 view .LVU2420
3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7157 .loc 1 3318 25 is_stmt 0 view .LVU2421
7158 00dc 0022 movs r2, #0
7159 00de 84F84220 strb r2, [r4, #66]
3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7160 .loc 1 3321 9 is_stmt 1 view .LVU2422
3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7161 .loc 1 3321 25 is_stmt 0 view .LVU2423
7162 00e2 636C ldr r3, [r4, #68]
7163 00e4 43F08003 orr r3, r3, #128
7164 00e8 6364 str r3, [r4, #68]
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7165 .loc 1 3324 9 is_stmt 1 view .LVU2424
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7166 .loc 1 3324 9 view .LVU2425
7167 00ea 84F84020 strb r2, [r4, #64]
3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7168 .loc 1 3324 9 view .LVU2426
3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7169 .loc 1 3326 9 view .LVU2427
3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7170 .loc 1 3326 16 is_stmt 0 view .LVU2428
7171 00ee 0120 movs r0, #1
7172 00f0 30E0 b .L449
7173 .LVL453:
7174 .L465:
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7175 .loc 1 3332 9 is_stmt 1 view .LVU2429
7176 00f2 CDF80080 str r8, [sp]
7177 00f6 3B46 mov r3, r7
7178 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7179 00fc 3146 mov r1, r6
7180 00fe 2046 mov r0, r4
7181 .LVL454:
3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7182 .loc 1 3332 9 is_stmt 0 view .LVU2430
ARM GAS /tmp/ccEimIdZ.s page 283
7183 0100 FFF7FEFF bl I2C_TransferConfig
7184 .LVL455:
3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7185 .loc 1 3335 9 is_stmt 1 view .LVU2431
3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7186 .loc 1 3335 25 is_stmt 0 view .LVU2432
7187 0104 638D ldrh r3, [r4, #42]
7188 0106 9BB2 uxth r3, r3
3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7189 .loc 1 3335 32 view .LVU2433
7190 0108 228D ldrh r2, [r4, #40]
3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7191 .loc 1 3335 25 view .LVU2434
7192 010a 9B1A subs r3, r3, r2
7193 010c 9BB2 uxth r3, r3
7194 010e 6385 strh r3, [r4, #42] @ movhi
3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7195 .loc 1 3338 9 is_stmt 1 view .LVU2435
3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7196 .loc 1 3338 9 view .LVU2436
7197 0110 0023 movs r3, #0
7198 0112 84F84030 strb r3, [r4, #64]
3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7199 .loc 1 3338 9 view .LVU2437
3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7200 .loc 1 3344 9 view .LVU2438
7201 0116 1021 movs r1, #16
7202 0118 2046 mov r0, r4
7203 011a FFF7FEFF bl I2C_Enable_IRQ
7204 .LVL456:
3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7205 .loc 1 3347 9 view .LVU2439
3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7206 .loc 1 3347 13 is_stmt 0 view .LVU2440
7207 011e 2268 ldr r2, [r4]
3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7208 .loc 1 3347 29 view .LVU2441
7209 0120 1368 ldr r3, [r2]
7210 0122 43F48043 orr r3, r3, #16384
7211 0126 1360 str r3, [r2]
7212 0128 11E0 b .L458
7213 .L454:
3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7214 .loc 1 3367 7 is_stmt 1 view .LVU2442
3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7215 .loc 1 3367 21 is_stmt 0 view .LVU2443
7216 012a 104B ldr r3, .L466+12
7217 012c 6363 str r3, [r4, #52]
3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7218 .loc 1 3371 7 is_stmt 1 view .LVU2444
7219 012e 104B ldr r3, .L466+16
7220 0130 0093 str r3, [sp]
7221 0132 4FF00073 mov r3, #33554432
7222 0136 D2B2 uxtb r2, r2
7223 0138 3146 mov r1, r6
7224 013a 2046 mov r0, r4
7225 013c FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/ccEimIdZ.s page 284
7226 .LVL457:
3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7227 .loc 1 3374 7 view .LVU2445
3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7228 .loc 1 3374 7 view .LVU2446
7229 0140 0023 movs r3, #0
7230 0142 84F84030 strb r3, [r4, #64]
3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7231 .loc 1 3374 7 view .LVU2447
3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7232 .loc 1 3382 7 view .LVU2448
7233 0146 0121 movs r1, #1
7234 0148 2046 mov r0, r4
7235 014a FFF7FEFF bl I2C_Enable_IRQ
7236 .LVL458:
7237 .L458:
3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7238 .loc 1 3385 5 view .LVU2449
3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7239 .loc 1 3385 12 is_stmt 0 view .LVU2450
7240 014e 0020 movs r0, #0
7241 0150 00E0 b .L449
7242 .LVL459:
7243 .L459:
3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7244 .loc 1 3389 12 view .LVU2451
7245 0152 0220 movs r0, #2
7246 .LVL460:
7247 .L449:
3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7248 .loc 1 3391 1 view .LVU2452
7249 0154 02B0 add sp, sp, #8
7250 .LCFI89:
7251 .cfi_remember_state
7252 .cfi_def_cfa_offset 24
7253 @ sp needed
7254 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
7255 .LVL461:
7256 .L460:
7257 .LCFI90:
7258 .cfi_restore_state
3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7259 .loc 1 3255 5 view .LVU2453
7260 015a 0220 movs r0, #2
7261 015c FAE7 b .L449
7262 .L467:
7263 015e 00BF .align 2
7264 .L466:
7265 0160 00000000 .word I2C_Master_ISR_DMA
7266 0164 00000000 .word I2C_DMAMasterTransmitCplt
7267 0168 00000000 .word I2C_DMAError
7268 016c 00000000 .word I2C_Master_ISR_IT
7269 0170 00200080 .word -2147475456
7270 .cfi_endproc
7271 .LFE165:
7273 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
7274 .align 1
ARM GAS /tmp/ccEimIdZ.s page 285
7275 .global HAL_I2C_Master_Seq_Receive_IT
7276 .syntax unified
7277 .thumb
7278 .thumb_func
7279 .fpu fpv5-d16
7281 HAL_I2C_Master_Seq_Receive_IT:
7282 .LVL462:
7283 .LFB166:
3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7284 .loc 1 3406 1 is_stmt 1 view -0
7285 .cfi_startproc
7286 @ args = 4, pretend = 0, frame = 0
7287 @ frame_needed = 0, uses_anonymous_args = 0
3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7288 .loc 1 3406 1 is_stmt 0 view .LVU2455
7289 0000 70B5 push {r4, r5, r6, lr}
7290 .LCFI91:
7291 .cfi_def_cfa_offset 16
7292 .cfi_offset 4, -16
7293 .cfi_offset 5, -12
7294 .cfi_offset 6, -8
7295 .cfi_offset 14, -4
7296 0002 82B0 sub sp, sp, #8
7297 .LCFI92:
7298 .cfi_def_cfa_offset 24
7299 0004 0446 mov r4, r0
7300 0006 0D46 mov r5, r1
7301 0008 0699 ldr r1, [sp, #24]
7302 .LVL463:
3407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
7303 .loc 1 3407 3 is_stmt 1 view .LVU2456
3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7304 .loc 1 3408 3 view .LVU2457
3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7305 .loc 1 3411 3 view .LVU2458
3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7306 .loc 1 3413 3 view .LVU2459
3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7307 .loc 1 3413 11 is_stmt 0 view .LVU2460
7308 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7309 .LVL464:
3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7310 .loc 1 3413 11 view .LVU2461
7311 000e C0B2 uxtb r0, r0
3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7312 .loc 1 3413 6 view .LVU2462
7313 0010 2028 cmp r0, #32
7314 0012 46D1 bne .L474
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7315 .loc 1 3416 5 is_stmt 1 view .LVU2463
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7316 .loc 1 3416 5 view .LVU2464
7317 0014 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
7318 0018 0128 cmp r0, #1
7319 001a 44D0 beq .L475
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7320 .loc 1 3416 5 discriminator 2 view .LVU2465
ARM GAS /tmp/ccEimIdZ.s page 286
7321 001c 0120 movs r0, #1
7322 001e 84F84000 strb r0, [r4, #64]
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7323 .loc 1 3416 5 discriminator 2 view .LVU2466
3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7324 .loc 1 3418 5 discriminator 2 view .LVU2467
3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7325 .loc 1 3418 21 is_stmt 0 discriminator 2 view .LVU2468
7326 0022 2220 movs r0, #34
7327 0024 84F84100 strb r0, [r4, #65]
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7328 .loc 1 3419 5 is_stmt 1 discriminator 2 view .LVU2469
3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7329 .loc 1 3419 21 is_stmt 0 discriminator 2 view .LVU2470
7330 0028 1020 movs r0, #16
7331 002a 84F84200 strb r0, [r4, #66]
3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7332 .loc 1 3420 5 is_stmt 1 discriminator 2 view .LVU2471
3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7333 .loc 1 3420 21 is_stmt 0 discriminator 2 view .LVU2472
7334 002e 0020 movs r0, #0
7335 0030 6064 str r0, [r4, #68]
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7336 .loc 1 3423 5 is_stmt 1 discriminator 2 view .LVU2473
3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7337 .loc 1 3423 23 is_stmt 0 discriminator 2 view .LVU2474
7338 0032 6262 str r2, [r4, #36]
3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7339 .loc 1 3424 5 is_stmt 1 discriminator 2 view .LVU2475
3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7340 .loc 1 3424 23 is_stmt 0 discriminator 2 view .LVU2476
7341 0034 6385 strh r3, [r4, #42] @ movhi
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7342 .loc 1 3425 5 is_stmt 1 discriminator 2 view .LVU2477
3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7343 .loc 1 3425 23 is_stmt 0 discriminator 2 view .LVU2478
7344 0036 E162 str r1, [r4, #44]
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7345 .loc 1 3426 5 is_stmt 1 discriminator 2 view .LVU2479
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7346 .loc 1 3426 23 is_stmt 0 discriminator 2 view .LVU2480
7347 0038 1C4B ldr r3, .L479
7348 .LVL465:
3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7349 .loc 1 3426 23 discriminator 2 view .LVU2481
7350 003a 6363 str r3, [r4, #52]
3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7351 .loc 1 3429 5 is_stmt 1 discriminator 2 view .LVU2482
3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7352 .loc 1 3429 13 is_stmt 0 discriminator 2 view .LVU2483
7353 003c 638D ldrh r3, [r4, #42]
7354 003e 9BB2 uxth r3, r3
3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7355 .loc 1 3429 8 discriminator 2 view .LVU2484
7356 0040 FF2B cmp r3, #255
7357 0042 26D9 bls .L470
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS /tmp/ccEimIdZ.s page 287
7358 .loc 1 3431 7 is_stmt 1 view .LVU2485
3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7359 .loc 1 3431 22 is_stmt 0 view .LVU2486
7360 0044 FF23 movs r3, #255
7361 0046 2385 strh r3, [r4, #40] @ movhi
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7362 .loc 1 3432 7 is_stmt 1 view .LVU2487
7363 .LVL466:
3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7364 .loc 1 3432 16 is_stmt 0 view .LVU2488
7365 0048 4FF08076 mov r6, #16777216
7366 .LVL467:
7367 .L471:
3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7368 .loc 1 3442 5 is_stmt 1 view .LVU2489
3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7369 .loc 1 3442 14 is_stmt 0 view .LVU2490
7370 004c 236B ldr r3, [r4, #48]
3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7371 .loc 1 3442 8 view .LVU2491
7372 004e 122B cmp r3, #18
7373 0050 04D1 bne .L472
3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7374 .loc 1 3442 59 discriminator 1 view .LVU2492
7375 0052 B1F52A4F cmp r1, #43520
7376 0056 18BF it ne
7377 0058 AA29 cmpne r1, #170
7378 005a 1ED1 bne .L476
7379 .L472:
3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7380 .loc 1 3449 7 is_stmt 1 view .LVU2493
7381 005c 2046 mov r0, r4
7382 005e FFF7FEFF bl I2C_ConvertOtherXferOptions
7383 .LVL468:
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7384 .loc 1 3452 7 view .LVU2494
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7385 .loc 1 3452 15 is_stmt 0 view .LVU2495
7386 0062 638D ldrh r3, [r4, #42]
7387 0064 9BB2 uxth r3, r3
3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7388 .loc 1 3452 10 view .LVU2496
7389 0066 FF2B cmp r3, #255
7390 0068 19D8 bhi .L477
3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7391 .loc 1 3454 9 is_stmt 1 view .LVU2497
3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7392 .loc 1 3454 18 is_stmt 0 view .LVU2498
7393 006a E66A ldr r6, [r4, #44]
7394 .LVL469:
3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7395 .loc 1 3408 12 view .LVU2499
7396 006c 104B ldr r3, .L479+4
7397 .L473:
7398 .LVL470:
3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7399 .loc 1 3459 5 is_stmt 1 view .LVU2500
ARM GAS /tmp/ccEimIdZ.s page 288
7400 006e 0093 str r3, [sp]
7401 0070 3346 mov r3, r6
7402 .LVL471:
3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7403 .loc 1 3459 5 is_stmt 0 view .LVU2501
7404 0072 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7405 0076 2946 mov r1, r5
7406 0078 2046 mov r0, r4
7407 007a FFF7FEFF bl I2C_TransferConfig
7408 .LVL472:
3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7409 .loc 1 3462 5 is_stmt 1 view .LVU2502
3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7410 .loc 1 3462 5 view .LVU2503
7411 007e 0025 movs r5, #0
7412 0080 84F84050 strb r5, [r4, #64]
3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7413 .loc 1 3462 5 view .LVU2504
3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7414 .loc 1 3467 5 view .LVU2505
7415 0084 0221 movs r1, #2
7416 0086 2046 mov r0, r4
7417 0088 FFF7FEFF bl I2C_Enable_IRQ
7418 .LVL473:
3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7419 .loc 1 3469 5 view .LVU2506
3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7420 .loc 1 3469 12 is_stmt 0 view .LVU2507
7421 008c 2846 mov r0, r5
7422 .LVL474:
7423 .L469:
3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7424 .loc 1 3475 1 view .LVU2508
7425 008e 02B0 add sp, sp, #8
7426 .LCFI93:
7427 .cfi_remember_state
7428 .cfi_def_cfa_offset 16
7429 @ sp needed
7430 0090 70BD pop {r4, r5, r6, pc}
7431 .LVL475:
7432 .L470:
7433 .LCFI94:
7434 .cfi_restore_state
3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7435 .loc 1 3436 7 is_stmt 1 view .LVU2509
3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7436 .loc 1 3436 28 is_stmt 0 view .LVU2510
7437 0092 638D ldrh r3, [r4, #42]
3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7438 .loc 1 3436 22 view .LVU2511
7439 0094 2385 strh r3, [r4, #40] @ movhi
3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7440 .loc 1 3437 7 is_stmt 1 view .LVU2512
3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7441 .loc 1 3437 16 is_stmt 0 view .LVU2513
7442 0096 E66A ldr r6, [r4, #44]
7443 .LVL476:
ARM GAS /tmp/ccEimIdZ.s page 289
3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7444 .loc 1 3437 16 view .LVU2514
7445 0098 D8E7 b .L471
7446 .L476:
3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7447 .loc 1 3444 19 view .LVU2515
7448 009a 0023 movs r3, #0
7449 009c E7E7 b .L473
7450 .LVL477:
7451 .L477:
3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7452 .loc 1 3408 12 view .LVU2516
7453 009e 044B ldr r3, .L479+4
7454 00a0 E5E7 b .L473
7455 .LVL478:
7456 .L474:
3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7457 .loc 1 3473 12 view .LVU2517
7458 00a2 0220 movs r0, #2
7459 00a4 F3E7 b .L469
7460 .L475:
3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7461 .loc 1 3416 5 view .LVU2518
7462 00a6 0220 movs r0, #2
7463 00a8 F1E7 b .L469
7464 .L480:
7465 00aa 00BF .align 2
7466 .L479:
7467 00ac 00000000 .word I2C_Master_ISR_IT
7468 00b0 00240080 .word -2147474432
7469 .cfi_endproc
7470 .LFE166:
7472 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
7473 .align 1
7474 .global HAL_I2C_Master_Seq_Receive_DMA
7475 .syntax unified
7476 .thumb
7477 .thumb_func
7478 .fpu fpv5-d16
7480 HAL_I2C_Master_Seq_Receive_DMA:
7481 .LVL479:
7482 .LFB167:
3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7483 .loc 1 3490 1 is_stmt 1 view -0
7484 .cfi_startproc
7485 @ args = 4, pretend = 0, frame = 0
7486 @ frame_needed = 0, uses_anonymous_args = 0
3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
7487 .loc 1 3490 1 is_stmt 0 view .LVU2520
7488 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
7489 .LCFI95:
7490 .cfi_def_cfa_offset 24
7491 .cfi_offset 4, -24
7492 .cfi_offset 5, -20
7493 .cfi_offset 6, -16
7494 .cfi_offset 7, -12
7495 .cfi_offset 8, -8
ARM GAS /tmp/ccEimIdZ.s page 290
7496 .cfi_offset 14, -4
7497 0004 82B0 sub sp, sp, #8
7498 .LCFI96:
7499 .cfi_def_cfa_offset 32
7500 0006 0446 mov r4, r0
7501 0008 1546 mov r5, r2
7502 000a 089A ldr r2, [sp, #32]
7503 .LVL480:
3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
7504 .loc 1 3491 3 is_stmt 1 view .LVU2521
3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7505 .loc 1 3492 3 view .LVU2522
3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7506 .loc 1 3493 3 view .LVU2523
3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7507 .loc 1 3496 3 view .LVU2524
3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7508 .loc 1 3498 3 view .LVU2525
3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7509 .loc 1 3498 11 is_stmt 0 view .LVU2526
7510 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7511 .LVL481:
3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7512 .loc 1 3498 11 view .LVU2527
7513 0010 C0B2 uxtb r0, r0
3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7514 .loc 1 3498 6 view .LVU2528
7515 0012 2028 cmp r0, #32
7516 0014 40F09D80 bne .L492
7517 0018 0E46 mov r6, r1
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7518 .loc 1 3501 5 is_stmt 1 view .LVU2529
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7519 .loc 1 3501 5 view .LVU2530
7520 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7521 .LVL482:
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7522 .loc 1 3501 5 is_stmt 0 view .LVU2531
7523 001e 0129 cmp r1, #1
7524 0020 00F09B80 beq .L493
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7525 .loc 1 3501 5 is_stmt 1 discriminator 2 view .LVU2532
7526 0024 0121 movs r1, #1
7527 0026 84F84010 strb r1, [r4, #64]
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7528 .loc 1 3501 5 discriminator 2 view .LVU2533
3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7529 .loc 1 3503 5 discriminator 2 view .LVU2534
3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7530 .loc 1 3503 21 is_stmt 0 discriminator 2 view .LVU2535
7531 002a 2221 movs r1, #34
7532 002c 84F84110 strb r1, [r4, #65]
3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7533 .loc 1 3504 5 is_stmt 1 discriminator 2 view .LVU2536
3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7534 .loc 1 3504 21 is_stmt 0 discriminator 2 view .LVU2537
7535 0030 1021 movs r1, #16
ARM GAS /tmp/ccEimIdZ.s page 291
7536 0032 84F84210 strb r1, [r4, #66]
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7537 .loc 1 3505 5 is_stmt 1 discriminator 2 view .LVU2538
3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7538 .loc 1 3505 21 is_stmt 0 discriminator 2 view .LVU2539
7539 0036 0021 movs r1, #0
7540 0038 6164 str r1, [r4, #68]
3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7541 .loc 1 3508 5 is_stmt 1 discriminator 2 view .LVU2540
3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7542 .loc 1 3508 23 is_stmt 0 discriminator 2 view .LVU2541
7543 003a 6562 str r5, [r4, #36]
3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7544 .loc 1 3509 5 is_stmt 1 discriminator 2 view .LVU2542
3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7545 .loc 1 3509 23 is_stmt 0 discriminator 2 view .LVU2543
7546 003c 6385 strh r3, [r4, #42] @ movhi
3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7547 .loc 1 3510 5 is_stmt 1 discriminator 2 view .LVU2544
3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7548 .loc 1 3510 23 is_stmt 0 discriminator 2 view .LVU2545
7549 003e E262 str r2, [r4, #44]
3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7550 .loc 1 3511 5 is_stmt 1 discriminator 2 view .LVU2546
3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7551 .loc 1 3511 23 is_stmt 0 discriminator 2 view .LVU2547
7552 0040 474B ldr r3, .L499
7553 .LVL483:
3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7554 .loc 1 3511 23 discriminator 2 view .LVU2548
7555 0042 6363 str r3, [r4, #52]
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7556 .loc 1 3514 5 is_stmt 1 discriminator 2 view .LVU2549
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7557 .loc 1 3514 13 is_stmt 0 discriminator 2 view .LVU2550
7558 0044 638D ldrh r3, [r4, #42]
7559 0046 9BB2 uxth r3, r3
3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7560 .loc 1 3514 8 discriminator 2 view .LVU2551
7561 0048 FF2B cmp r3, #255
7562 004a 3AD9 bls .L483
3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7563 .loc 1 3516 7 is_stmt 1 view .LVU2552
3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7564 .loc 1 3516 22 is_stmt 0 view .LVU2553
7565 004c FF23 movs r3, #255
7566 004e 2385 strh r3, [r4, #40] @ movhi
3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7567 .loc 1 3517 7 is_stmt 1 view .LVU2554
7568 .LVL484:
3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7569 .loc 1 3517 16 is_stmt 0 view .LVU2555
7570 0050 4FF08077 mov r7, #16777216
7571 .LVL485:
7572 .L484:
3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7573 .loc 1 3527 5 is_stmt 1 view .LVU2556
ARM GAS /tmp/ccEimIdZ.s page 292
3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7574 .loc 1 3527 14 is_stmt 0 view .LVU2557
7575 0054 236B ldr r3, [r4, #48]
3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7576 .loc 1 3527 8 view .LVU2558
7577 0056 122B cmp r3, #18
7578 0058 04D1 bne .L485
3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7579 .loc 1 3527 59 discriminator 1 view .LVU2559
7580 005a B2F52A4F cmp r2, #43520
7581 005e 18BF it ne
7582 0060 AA2A cmpne r2, #170
7583 0062 32D1 bne .L494
7584 .L485:
3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7585 .loc 1 3534 7 is_stmt 1 view .LVU2560
7586 0064 2046 mov r0, r4
7587 0066 FFF7FEFF bl I2C_ConvertOtherXferOptions
7588 .LVL486:
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7589 .loc 1 3537 7 view .LVU2561
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7590 .loc 1 3537 15 is_stmt 0 view .LVU2562
7591 006a 638D ldrh r3, [r4, #42]
7592 006c 9BB2 uxth r3, r3
3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7593 .loc 1 3537 10 view .LVU2563
7594 006e FF2B cmp r3, #255
7595 0070 2ED8 bhi .L495
3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7596 .loc 1 3539 9 is_stmt 1 view .LVU2564
3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7597 .loc 1 3539 18 is_stmt 0 view .LVU2565
7598 0072 E76A ldr r7, [r4, #44]
7599 .LVL487:
3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7600 .loc 1 3492 12 view .LVU2566
7601 0074 DFF8F880 ldr r8, .L499+16
7602 .L486:
7603 .LVL488:
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7604 .loc 1 3543 5 is_stmt 1 view .LVU2567
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7605 .loc 1 3543 13 is_stmt 0 view .LVU2568
7606 0078 228D ldrh r2, [r4, #40]
3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7607 .loc 1 3543 8 view .LVU2569
7608 007a 002A cmp r2, #0
7609 007c 55D0 beq .L487
3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7610 .loc 1 3545 7 is_stmt 1 view .LVU2570
3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7611 .loc 1 3545 15 is_stmt 0 view .LVU2571
7612 007e E36B ldr r3, [r4, #60]
3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7613 .loc 1 3545 10 view .LVU2572
7614 0080 4BB3 cbz r3, .L488
ARM GAS /tmp/ccEimIdZ.s page 293
3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7615 .loc 1 3548 9 is_stmt 1 view .LVU2573
3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7616 .loc 1 3548 40 is_stmt 0 view .LVU2574
7617 0082 384A ldr r2, .L499+4
7618 0084 DA63 str r2, [r3, #60]
3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7619 .loc 1 3551 9 is_stmt 1 view .LVU2575
3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7620 .loc 1 3551 13 is_stmt 0 view .LVU2576
7621 0086 E36B ldr r3, [r4, #60]
3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7622 .loc 1 3551 41 view .LVU2577
7623 0088 374A ldr r2, .L499+8
7624 008a DA64 str r2, [r3, #76]
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
7625 .loc 1 3554 9 is_stmt 1 view .LVU2578
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
7626 .loc 1 3554 13 is_stmt 0 view .LVU2579
7627 008c E26B ldr r2, [r4, #60]
3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
7628 .loc 1 3554 44 view .LVU2580
7629 008e 0023 movs r3, #0
7630 0090 1364 str r3, [r2, #64]
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7631 .loc 1 3555 9 is_stmt 1 view .LVU2581
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7632 .loc 1 3555 13 is_stmt 0 view .LVU2582
7633 0092 E26B ldr r2, [r4, #60]
3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7634 .loc 1 3555 41 view .LVU2583
7635 0094 1365 str r3, [r2, #80]
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7636 .loc 1 3558 9 is_stmt 1 view .LVU2584
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7637 .loc 1 3558 71 is_stmt 0 view .LVU2585
7638 0096 2168 ldr r1, [r4]
3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7639 .loc 1 3558 25 view .LVU2586
7640 0098 238D ldrh r3, [r4, #40]
7641 009a 2A46 mov r2, r5
7642 009c 2431 adds r1, r1, #36
7643 009e E06B ldr r0, [r4, #60]
7644 00a0 FFF7FEFF bl HAL_DMA_Start_IT
7645 .LVL489:
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7646 .loc 1 3575 7 is_stmt 1 view .LVU2587
3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7647 .loc 1 3575 10 is_stmt 0 view .LVU2588
7648 00a4 28B3 cbz r0, .L498
3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7649 .loc 1 3598 9 is_stmt 1 view .LVU2589
3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7650 .loc 1 3598 25 is_stmt 0 view .LVU2590
7651 00a6 2023 movs r3, #32
7652 00a8 84F84130 strb r3, [r4, #65]
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 294
7653 .loc 1 3599 9 is_stmt 1 view .LVU2591
3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7654 .loc 1 3599 25 is_stmt 0 view .LVU2592
7655 00ac 0022 movs r2, #0
7656 00ae 84F84220 strb r2, [r4, #66]
3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7657 .loc 1 3602 9 is_stmt 1 view .LVU2593
3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7658 .loc 1 3602 25 is_stmt 0 view .LVU2594
7659 00b2 636C ldr r3, [r4, #68]
7660 00b4 43F01003 orr r3, r3, #16
7661 00b8 6364 str r3, [r4, #68]
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7662 .loc 1 3605 9 is_stmt 1 view .LVU2595
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7663 .loc 1 3605 9 view .LVU2596
7664 00ba 84F84020 strb r2, [r4, #64]
3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7665 .loc 1 3605 9 view .LVU2597
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7666 .loc 1 3607 9 view .LVU2598
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7667 .loc 1 3607 16 is_stmt 0 view .LVU2599
7668 00be 0120 movs r0, #1
7669 .LVL490:
3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7670 .loc 1 3607 16 view .LVU2600
7671 00c0 48E0 b .L482
7672 .LVL491:
7673 .L483:
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7674 .loc 1 3521 7 is_stmt 1 view .LVU2601
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7675 .loc 1 3521 28 is_stmt 0 view .LVU2602
7676 00c2 638D ldrh r3, [r4, #42]
3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7677 .loc 1 3521 22 view .LVU2603
7678 00c4 2385 strh r3, [r4, #40] @ movhi
3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7679 .loc 1 3522 7 is_stmt 1 view .LVU2604
3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7680 .loc 1 3522 16 is_stmt 0 view .LVU2605
7681 00c6 E76A ldr r7, [r4, #44]
7682 .LVL492:
3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7683 .loc 1 3522 16 view .LVU2606
7684 00c8 C4E7 b .L484
7685 .L494:
3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7686 .loc 1 3529 19 view .LVU2607
7687 00ca 4FF00008 mov r8, #0
7688 00ce D3E7 b .L486
7689 .L495:
3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7690 .loc 1 3492 12 view .LVU2608
7691 00d0 DFF89C80 ldr r8, .L499+16
7692 00d4 D0E7 b .L486
ARM GAS /tmp/ccEimIdZ.s page 295
7693 .LVL493:
7694 .L488:
3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7695 .loc 1 3563 9 is_stmt 1 view .LVU2609
3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7696 .loc 1 3563 25 is_stmt 0 view .LVU2610
7697 00d6 2023 movs r3, #32
7698 00d8 84F84130 strb r3, [r4, #65]
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7699 .loc 1 3564 9 is_stmt 1 view .LVU2611
3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7700 .loc 1 3564 25 is_stmt 0 view .LVU2612
7701 00dc 0022 movs r2, #0
7702 00de 84F84220 strb r2, [r4, #66]
3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7703 .loc 1 3567 9 is_stmt 1 view .LVU2613
3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7704 .loc 1 3567 25 is_stmt 0 view .LVU2614
7705 00e2 636C ldr r3, [r4, #68]
7706 00e4 43F08003 orr r3, r3, #128
7707 00e8 6364 str r3, [r4, #68]
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7708 .loc 1 3570 9 is_stmt 1 view .LVU2615
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7709 .loc 1 3570 9 view .LVU2616
7710 00ea 84F84020 strb r2, [r4, #64]
3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7711 .loc 1 3570 9 view .LVU2617
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7712 .loc 1 3572 9 view .LVU2618
3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7713 .loc 1 3572 16 is_stmt 0 view .LVU2619
7714 00ee 0120 movs r0, #1
7715 00f0 30E0 b .L482
7716 .LVL494:
7717 .L498:
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7718 .loc 1 3578 9 is_stmt 1 view .LVU2620
7719 00f2 CDF80080 str r8, [sp]
7720 00f6 3B46 mov r3, r7
7721 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7722 00fc 3146 mov r1, r6
7723 00fe 2046 mov r0, r4
7724 .LVL495:
3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7725 .loc 1 3578 9 is_stmt 0 view .LVU2621
7726 0100 FFF7FEFF bl I2C_TransferConfig
7727 .LVL496:
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7728 .loc 1 3581 9 is_stmt 1 view .LVU2622
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7729 .loc 1 3581 25 is_stmt 0 view .LVU2623
7730 0104 638D ldrh r3, [r4, #42]
7731 0106 9BB2 uxth r3, r3
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7732 .loc 1 3581 32 view .LVU2624
7733 0108 228D ldrh r2, [r4, #40]
ARM GAS /tmp/ccEimIdZ.s page 296
3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7734 .loc 1 3581 25 view .LVU2625
7735 010a 9B1A subs r3, r3, r2
7736 010c 9BB2 uxth r3, r3
7737 010e 6385 strh r3, [r4, #42] @ movhi
3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7738 .loc 1 3584 9 is_stmt 1 view .LVU2626
3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7739 .loc 1 3584 9 view .LVU2627
7740 0110 0023 movs r3, #0
7741 0112 84F84030 strb r3, [r4, #64]
3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7742 .loc 1 3584 9 view .LVU2628
3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7743 .loc 1 3590 9 view .LVU2629
7744 0116 1021 movs r1, #16
7745 0118 2046 mov r0, r4
7746 011a FFF7FEFF bl I2C_Enable_IRQ
7747 .LVL497:
3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7748 .loc 1 3593 9 view .LVU2630
3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7749 .loc 1 3593 13 is_stmt 0 view .LVU2631
7750 011e 2268 ldr r2, [r4]
3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7751 .loc 1 3593 29 view .LVU2632
7752 0120 1368 ldr r3, [r2]
7753 0122 43F40043 orr r3, r3, #32768
7754 0126 1360 str r3, [r2]
7755 0128 11E0 b .L491
7756 .L487:
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7757 .loc 1 3613 7 is_stmt 1 view .LVU2633
3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7758 .loc 1 3613 21 is_stmt 0 view .LVU2634
7759 012a 104B ldr r3, .L499+12
7760 012c 6363 str r3, [r4, #52]
3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7761 .loc 1 3617 7 is_stmt 1 view .LVU2635
7762 012e 104B ldr r3, .L499+16
7763 0130 0093 str r3, [sp]
7764 0132 4FF00073 mov r3, #33554432
7765 0136 D2B2 uxtb r2, r2
7766 0138 3146 mov r1, r6
7767 013a 2046 mov r0, r4
7768 013c FFF7FEFF bl I2C_TransferConfig
7769 .LVL498:
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7770 .loc 1 3620 7 view .LVU2636
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7771 .loc 1 3620 7 view .LVU2637
7772 0140 0023 movs r3, #0
7773 0142 84F84030 strb r3, [r4, #64]
3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7774 .loc 1 3620 7 view .LVU2638
3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7775 .loc 1 3628 7 view .LVU2639
ARM GAS /tmp/ccEimIdZ.s page 297
7776 0146 0121 movs r1, #1
7777 0148 2046 mov r0, r4
7778 014a FFF7FEFF bl I2C_Enable_IRQ
7779 .LVL499:
7780 .L491:
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7781 .loc 1 3631 5 view .LVU2640
3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7782 .loc 1 3631 12 is_stmt 0 view .LVU2641
7783 014e 0020 movs r0, #0
7784 0150 00E0 b .L482
7785 .LVL500:
7786 .L492:
3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7787 .loc 1 3635 12 view .LVU2642
7788 0152 0220 movs r0, #2
7789 .LVL501:
7790 .L482:
3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7791 .loc 1 3637 1 view .LVU2643
7792 0154 02B0 add sp, sp, #8
7793 .LCFI97:
7794 .cfi_remember_state
7795 .cfi_def_cfa_offset 24
7796 @ sp needed
7797 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
7798 .LVL502:
7799 .L493:
7800 .LCFI98:
7801 .cfi_restore_state
3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7802 .loc 1 3501 5 view .LVU2644
7803 015a 0220 movs r0, #2
7804 015c FAE7 b .L482
7805 .L500:
7806 015e 00BF .align 2
7807 .L499:
7808 0160 00000000 .word I2C_Master_ISR_DMA
7809 0164 00000000 .word I2C_DMAMasterReceiveCplt
7810 0168 00000000 .word I2C_DMAError
7811 016c 00000000 .word I2C_Master_ISR_IT
7812 0170 00240080 .word -2147474432
7813 .cfi_endproc
7814 .LFE167:
7816 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
7817 .align 1
7818 .global HAL_I2C_Slave_Seq_Transmit_IT
7819 .syntax unified
7820 .thumb
7821 .thumb_func
7822 .fpu fpv5-d16
7824 HAL_I2C_Slave_Seq_Transmit_IT:
7825 .LVL503:
7826 .LFB168:
3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
7827 .loc 1 3650 1 is_stmt 1 view -0
7828 .cfi_startproc
ARM GAS /tmp/ccEimIdZ.s page 298
7829 @ args = 0, pretend = 0, frame = 0
7830 @ frame_needed = 0, uses_anonymous_args = 0
3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
7831 .loc 1 3650 1 is_stmt 0 view .LVU2646
7832 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7833 .LCFI99:
7834 .cfi_def_cfa_offset 24
7835 .cfi_offset 3, -24
7836 .cfi_offset 4, -20
7837 .cfi_offset 5, -16
7838 .cfi_offset 6, -12
7839 .cfi_offset 7, -8
7840 .cfi_offset 14, -4
7841 0002 0446 mov r4, r0
3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7842 .loc 1 3652 3 is_stmt 1 view .LVU2647
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7843 .loc 1 3654 3 view .LVU2648
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7844 .loc 1 3654 22 is_stmt 0 view .LVU2649
7845 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7846 .LVL504:
3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7847 .loc 1 3654 6 view .LVU2650
7848 0008 00F02800 and r0, r0, #40
7849 000c 2828 cmp r0, #40
7850 000e 5CD1 bne .L506
7851 0010 0F46 mov r7, r1
7852 0012 1646 mov r6, r2
7853 0014 1D46 mov r5, r3
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7854 .loc 1 3656 5 is_stmt 1 view .LVU2651
3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7855 .loc 1 3656 8 is_stmt 0 view .LVU2652
7856 0016 002A cmp r2, #0
7857 0018 18BF it ne
7858 001a 0029 cmpne r1, #0
7859 001c 04D1 bne .L503
3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7860 .loc 1 3658 7 is_stmt 1 view .LVU2653
3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7861 .loc 1 3658 23 is_stmt 0 view .LVU2654
7862 001e 4FF40073 mov r3, #512
7863 .LVL505:
3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
7864 .loc 1 3658 23 view .LVU2655
7865 0022 6364 str r3, [r4, #68]
3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7866 .loc 1 3659 7 is_stmt 1 view .LVU2656
3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7867 .loc 1 3659 15 is_stmt 0 view .LVU2657
7868 0024 0120 movs r0, #1
7869 0026 51E0 b .L502
7870 .LVL506:
7871 .L503:
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7872 .loc 1 3663 5 is_stmt 1 view .LVU2658
ARM GAS /tmp/ccEimIdZ.s page 299
7873 0028 48F20101 movw r1, #32769
7874 .LVL507:
3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7875 .loc 1 3663 5 is_stmt 0 view .LVU2659
7876 002c 2046 mov r0, r4
7877 002e FFF7FEFF bl I2C_Disable_IRQ
7878 .LVL508:
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7879 .loc 1 3666 5 is_stmt 1 view .LVU2660
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7880 .loc 1 3666 5 view .LVU2661
7881 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
7882 0036 012B cmp r3, #1
7883 0038 49D0 beq .L507
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7884 .loc 1 3666 5 discriminator 2 view .LVU2662
7885 003a 0123 movs r3, #1
7886 003c 84F84030 strb r3, [r4, #64]
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7887 .loc 1 3666 5 discriminator 2 view .LVU2663
3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7888 .loc 1 3670 5 discriminator 2 view .LVU2664
3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7889 .loc 1 3670 13 is_stmt 0 discriminator 2 view .LVU2665
7890 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
7891 0044 DBB2 uxtb r3, r3
3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7892 .loc 1 3670 8 discriminator 2 view .LVU2666
7893 0046 2A2B cmp r3, #42
7894 0048 24D0 beq .L509
7895 .L504:
3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7896 .loc 1 3696 5 is_stmt 1 view .LVU2667
3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7897 .loc 1 3696 21 is_stmt 0 view .LVU2668
7898 004a 2923 movs r3, #41
7899 004c 84F84130 strb r3, [r4, #65]
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7900 .loc 1 3697 5 is_stmt 1 view .LVU2669
3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7901 .loc 1 3697 21 is_stmt 0 view .LVU2670
7902 0050 2023 movs r3, #32
7903 0052 84F84230 strb r3, [r4, #66]
3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7904 .loc 1 3698 5 is_stmt 1 view .LVU2671
3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7905 .loc 1 3698 21 is_stmt 0 view .LVU2672
7906 0056 0023 movs r3, #0
7907 0058 6364 str r3, [r4, #68]
3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7908 .loc 1 3701 5 is_stmt 1 view .LVU2673
3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7909 .loc 1 3701 9 is_stmt 0 view .LVU2674
7910 005a 2268 ldr r2, [r4]
3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7911 .loc 1 3701 25 view .LVU2675
7912 005c 5368 ldr r3, [r2, #4]
ARM GAS /tmp/ccEimIdZ.s page 300
7913 005e 23F40043 bic r3, r3, #32768
7914 0062 5360 str r3, [r2, #4]
3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7915 .loc 1 3704 5 is_stmt 1 view .LVU2676
3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
7916 .loc 1 3704 23 is_stmt 0 view .LVU2677
7917 0064 6762 str r7, [r4, #36]
3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7918 .loc 1 3705 5 is_stmt 1 view .LVU2678
3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7919 .loc 1 3705 23 is_stmt 0 view .LVU2679
7920 0066 6685 strh r6, [r4, #42] @ movhi
3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7921 .loc 1 3706 5 is_stmt 1 view .LVU2680
3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7922 .loc 1 3706 29 is_stmt 0 view .LVU2681
7923 0068 638D ldrh r3, [r4, #42]
3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7924 .loc 1 3706 23 view .LVU2682
7925 006a 2385 strh r3, [r4, #40] @ movhi
3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7926 .loc 1 3707 5 is_stmt 1 view .LVU2683
3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7927 .loc 1 3707 23 is_stmt 0 view .LVU2684
7928 006c E562 str r5, [r4, #44]
3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7929 .loc 1 3708 5 is_stmt 1 view .LVU2685
3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7930 .loc 1 3708 23 is_stmt 0 view .LVU2686
7931 006e 194B ldr r3, .L510
7932 0070 6363 str r3, [r4, #52]
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7933 .loc 1 3710 5 is_stmt 1 view .LVU2687
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7934 .loc 1 3710 9 is_stmt 0 view .LVU2688
7935 0072 2368 ldr r3, [r4]
7936 0074 9A69 ldr r2, [r3, #24]
3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7937 .loc 1 3710 8 view .LVU2689
7938 0076 12F4803F tst r2, #65536
7939 007a 01D0 beq .L505
3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7940 .loc 1 3714 7 is_stmt 1 view .LVU2690
7941 007c 0822 movs r2, #8
7942 007e DA61 str r2, [r3, #28]
7943 .L505:
3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7944 .loc 1 3718 5 view .LVU2691
3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7945 .loc 1 3718 5 view .LVU2692
7946 0080 0025 movs r5, #0
7947 .LVL509:
3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7948 .loc 1 3718 5 is_stmt 0 view .LVU2693
7949 0082 84F84050 strb r5, [r4, #64]
3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7950 .loc 1 3718 5 is_stmt 1 view .LVU2694
ARM GAS /tmp/ccEimIdZ.s page 301
3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7951 .loc 1 3724 5 view .LVU2695
7952 0086 48F20101 movw r1, #32769
7953 008a 2046 mov r0, r4
7954 008c FFF7FEFF bl I2C_Enable_IRQ
7955 .LVL510:
3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7956 .loc 1 3726 5 view .LVU2696
3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7957 .loc 1 3726 12 is_stmt 0 view .LVU2697
7958 0090 2846 mov r0, r5
7959 0092 1BE0 b .L502
7960 .LVL511:
7961 .L509:
3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7962 .loc 1 3673 7 is_stmt 1 view .LVU2698
7963 0094 0221 movs r1, #2
7964 0096 2046 mov r0, r4
7965 0098 FFF7FEFF bl I2C_Disable_IRQ
7966 .LVL512:
3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7967 .loc 1 3676 7 view .LVU2699
3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7968 .loc 1 3676 16 is_stmt 0 view .LVU2700
7969 009c 2368 ldr r3, [r4]
3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7970 .loc 1 3676 26 view .LVU2701
7971 009e 1A68 ldr r2, [r3]
3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7972 .loc 1 3676 10 view .LVU2702
7973 00a0 12F4004F tst r2, #32768
7974 00a4 D1D0 beq .L504
3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7975 .loc 1 3678 9 is_stmt 1 view .LVU2703
3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7976 .loc 1 3678 29 is_stmt 0 view .LVU2704
7977 00a6 1A68 ldr r2, [r3]
7978 00a8 22F40042 bic r2, r2, #32768
7979 00ac 1A60 str r2, [r3]
3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7980 .loc 1 3680 9 is_stmt 1 view .LVU2705
3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7981 .loc 1 3680 17 is_stmt 0 view .LVU2706
7982 00ae E36B ldr r3, [r4, #60]
3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7983 .loc 1 3680 12 view .LVU2707
7984 00b0 002B cmp r3, #0
7985 00b2 CAD0 beq .L504
3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7986 .loc 1 3684 11 is_stmt 1 view .LVU2708
3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
7987 .loc 1 3684 43 is_stmt 0 view .LVU2709
7988 00b4 084A ldr r2, .L510+4
7989 00b6 1A65 str r2, [r3, #80]
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7990 .loc 1 3687 11 is_stmt 1 view .LVU2710
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 302
7991 .loc 1 3687 15 is_stmt 0 view .LVU2711
7992 00b8 E06B ldr r0, [r4, #60]
7993 00ba FFF7FEFF bl HAL_DMA_Abort_IT
7994 .LVL513:
3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
7995 .loc 1 3687 14 view .LVU2712
7996 00be 0028 cmp r0, #0
7997 00c0 C3D0 beq .L504
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7998 .loc 1 3690 13 is_stmt 1 view .LVU2713
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
7999 .loc 1 3690 17 is_stmt 0 view .LVU2714
8000 00c2 E06B ldr r0, [r4, #60]
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8001 .loc 1 3690 25 view .LVU2715
8002 00c4 036D ldr r3, [r0, #80]
3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8003 .loc 1 3690 13 view .LVU2716
8004 00c6 9847 blx r3
8005 .LVL514:
8006 00c8 BFE7 b .L504
8007 .LVL515:
8008 .L506:
3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8009 .loc 1 3730 12 view .LVU2717
8010 00ca 0120 movs r0, #1
8011 .LVL516:
8012 .L502:
3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8013 .loc 1 3732 1 view .LVU2718
8014 00cc F8BD pop {r3, r4, r5, r6, r7, pc}
8015 .LVL517:
8016 .L507:
3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8017 .loc 1 3666 5 view .LVU2719
8018 00ce 0220 movs r0, #2
8019 00d0 FCE7 b .L502
8020 .L511:
8021 00d2 00BF .align 2
8022 .L510:
8023 00d4 00000000 .word I2C_Slave_ISR_IT
8024 00d8 00000000 .word I2C_DMAAbort
8025 .cfi_endproc
8026 .LFE168:
8028 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
8029 .align 1
8030 .global HAL_I2C_Slave_Seq_Transmit_DMA
8031 .syntax unified
8032 .thumb
8033 .thumb_func
8034 .fpu fpv5-d16
8036 HAL_I2C_Slave_Seq_Transmit_DMA:
8037 .LVL518:
8038 .LFB169:
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8039 .loc 1 3745 1 is_stmt 1 view -0
8040 .cfi_startproc
ARM GAS /tmp/ccEimIdZ.s page 303
8041 @ args = 0, pretend = 0, frame = 0
8042 @ frame_needed = 0, uses_anonymous_args = 0
3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8043 .loc 1 3745 1 is_stmt 0 view .LVU2721
8044 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8045 .LCFI100:
8046 .cfi_def_cfa_offset 24
8047 .cfi_offset 3, -24
8048 .cfi_offset 4, -20
8049 .cfi_offset 5, -16
8050 .cfi_offset 6, -12
8051 .cfi_offset 7, -8
8052 .cfi_offset 14, -4
8053 0002 0446 mov r4, r0
3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8054 .loc 1 3746 3 is_stmt 1 view .LVU2722
3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8055 .loc 1 3749 3 view .LVU2723
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8056 .loc 1 3751 3 view .LVU2724
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8057 .loc 1 3751 22 is_stmt 0 view .LVU2725
8058 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8059 .LVL519:
3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8060 .loc 1 3751 6 view .LVU2726
8061 0008 00F02800 and r0, r0, #40
8062 000c 2828 cmp r0, #40
8063 000e 40F0BB80 bne .L522
8064 0012 0F46 mov r7, r1
8065 0014 1646 mov r6, r2
8066 0016 1D46 mov r5, r3
3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8067 .loc 1 3753 5 is_stmt 1 view .LVU2727
3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8068 .loc 1 3753 8 is_stmt 0 view .LVU2728
8069 0018 002A cmp r2, #0
8070 001a 18BF it ne
8071 001c 0029 cmpne r1, #0
8072 001e 4FD0 beq .L526
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8073 .loc 1 3760 5 is_stmt 1 view .LVU2729
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8074 .loc 1 3760 5 view .LVU2730
8075 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8076 .LVL520:
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8077 .loc 1 3760 5 is_stmt 0 view .LVU2731
8078 0024 012B cmp r3, #1
8079 0026 00F0B280 beq .L523
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8080 .loc 1 3760 5 is_stmt 1 discriminator 2 view .LVU2732
8081 002a 0123 movs r3, #1
8082 002c 84F84030 strb r3, [r4, #64]
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8083 .loc 1 3760 5 discriminator 2 view .LVU2733
3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 304
8084 .loc 1 3763 5 discriminator 2 view .LVU2734
8085 0030 48F20101 movw r1, #32769
8086 .LVL521:
3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8087 .loc 1 3763 5 is_stmt 0 discriminator 2 view .LVU2735
8088 0034 2046 mov r0, r4
8089 0036 FFF7FEFF bl I2C_Disable_IRQ
8090 .LVL522:
3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8091 .loc 1 3767 5 is_stmt 1 discriminator 2 view .LVU2736
3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8092 .loc 1 3767 13 is_stmt 0 discriminator 2 view .LVU2737
8093 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8094 003e DBB2 uxtb r3, r3
3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8095 .loc 1 3767 8 discriminator 2 view .LVU2738
8096 0040 2A2B cmp r3, #42
8097 0042 42D0 beq .L527
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8098 .loc 1 3792 10 is_stmt 1 view .LVU2739
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8099 .loc 1 3792 18 is_stmt 0 view .LVU2740
8100 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8101 0048 DBB2 uxtb r3, r3
3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8102 .loc 1 3792 13 view .LVU2741
8103 004a 292B cmp r3, #41
8104 004c 59D0 beq .L528
8105 .L516:
3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8106 .loc 1 3817 5 is_stmt 1 view .LVU2742
3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8107 .loc 1 3819 5 view .LVU2743
3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8108 .loc 1 3819 21 is_stmt 0 view .LVU2744
8109 004e 2923 movs r3, #41
8110 0050 84F84130 strb r3, [r4, #65]
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8111 .loc 1 3820 5 is_stmt 1 view .LVU2745
3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8112 .loc 1 3820 21 is_stmt 0 view .LVU2746
8113 0054 2023 movs r3, #32
8114 0056 84F84230 strb r3, [r4, #66]
3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8115 .loc 1 3821 5 is_stmt 1 view .LVU2747
3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8116 .loc 1 3821 21 is_stmt 0 view .LVU2748
8117 005a 0023 movs r3, #0
8118 005c 6364 str r3, [r4, #68]
3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8119 .loc 1 3824 5 is_stmt 1 view .LVU2749
3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8120 .loc 1 3824 9 is_stmt 0 view .LVU2750
8121 005e 2268 ldr r2, [r4]
3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8122 .loc 1 3824 25 view .LVU2751
8123 0060 5368 ldr r3, [r2, #4]
ARM GAS /tmp/ccEimIdZ.s page 305
8124 0062 23F40043 bic r3, r3, #32768
8125 0066 5360 str r3, [r2, #4]
3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8126 .loc 1 3827 5 is_stmt 1 view .LVU2752
3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8127 .loc 1 3827 23 is_stmt 0 view .LVU2753
8128 0068 6762 str r7, [r4, #36]
3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8129 .loc 1 3828 5 is_stmt 1 view .LVU2754
3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8130 .loc 1 3828 23 is_stmt 0 view .LVU2755
8131 006a 6685 strh r6, [r4, #42] @ movhi
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8132 .loc 1 3829 5 is_stmt 1 view .LVU2756
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8133 .loc 1 3829 29 is_stmt 0 view .LVU2757
8134 006c 638D ldrh r3, [r4, #42]
3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8135 .loc 1 3829 23 view .LVU2758
8136 006e 2385 strh r3, [r4, #40] @ movhi
3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8137 .loc 1 3830 5 is_stmt 1 view .LVU2759
3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8138 .loc 1 3830 23 is_stmt 0 view .LVU2760
8139 0070 E562 str r5, [r4, #44]
3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8140 .loc 1 3831 5 is_stmt 1 view .LVU2761
3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8141 .loc 1 3831 23 is_stmt 0 view .LVU2762
8142 0072 484B ldr r3, .L529
8143 0074 6363 str r3, [r4, #52]
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8144 .loc 1 3833 5 is_stmt 1 view .LVU2763
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8145 .loc 1 3833 13 is_stmt 0 view .LVU2764
8146 0076 A36B ldr r3, [r4, #56]
3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8147 .loc 1 3833 8 view .LVU2765
8148 0078 002B cmp r3, #0
8149 007a 59D0 beq .L517
3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8150 .loc 1 3836 7 is_stmt 1 view .LVU2766
3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8151 .loc 1 3836 38 is_stmt 0 view .LVU2767
8152 007c 464A ldr r2, .L529+4
8153 007e DA63 str r2, [r3, #60]
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8154 .loc 1 3839 7 is_stmt 1 view .LVU2768
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8155 .loc 1 3839 11 is_stmt 0 view .LVU2769
8156 0080 A36B ldr r3, [r4, #56]
3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8157 .loc 1 3839 39 view .LVU2770
8158 0082 464A ldr r2, .L529+8
8159 0084 DA64 str r2, [r3, #76]
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8160 .loc 1 3842 7 is_stmt 1 view .LVU2771
ARM GAS /tmp/ccEimIdZ.s page 306
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8161 .loc 1 3842 11 is_stmt 0 view .LVU2772
8162 0086 A26B ldr r2, [r4, #56]
3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8163 .loc 1 3842 42 view .LVU2773
8164 0088 0023 movs r3, #0
8165 008a 1364 str r3, [r2, #64]
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8166 .loc 1 3843 7 is_stmt 1 view .LVU2774
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8167 .loc 1 3843 11 is_stmt 0 view .LVU2775
8168 008c A26B ldr r2, [r4, #56]
3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8169 .loc 1 3843 39 view .LVU2776
8170 008e 1365 str r3, [r2, #80]
3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8171 .loc 1 3846 7 is_stmt 1 view .LVU2777
3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8172 .loc 1 3846 86 is_stmt 0 view .LVU2778
8173 0090 2268 ldr r2, [r4]
3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8174 .loc 1 3846 23 view .LVU2779
8175 0092 238D ldrh r3, [r4, #40]
8176 0094 2832 adds r2, r2, #40
8177 0096 3946 mov r1, r7
8178 0098 A06B ldr r0, [r4, #56]
8179 009a FFF7FEFF bl HAL_DMA_Start_IT
8180 .LVL523:
3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8181 .loc 1 3863 5 is_stmt 1 view .LVU2780
3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8182 .loc 1 3863 8 is_stmt 0 view .LVU2781
8183 009e 0546 mov r5, r0
8184 .LVL524:
3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8185 .loc 1 3863 8 view .LVU2782
8186 00a0 0028 cmp r0, #0
8187 00a2 53D0 beq .L518
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8188 .loc 1 3874 7 is_stmt 1 view .LVU2783
3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8189 .loc 1 3874 23 is_stmt 0 view .LVU2784
8190 00a4 2823 movs r3, #40
8191 00a6 84F84130 strb r3, [r4, #65]
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8192 .loc 1 3875 7 is_stmt 1 view .LVU2785
3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8193 .loc 1 3875 23 is_stmt 0 view .LVU2786
8194 00aa 0022 movs r2, #0
8195 00ac 84F84220 strb r2, [r4, #66]
3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8196 .loc 1 3878 7 is_stmt 1 view .LVU2787
3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8197 .loc 1 3878 23 is_stmt 0 view .LVU2788
8198 00b0 636C ldr r3, [r4, #68]
8199 00b2 43F01003 orr r3, r3, #16
8200 00b6 6364 str r3, [r4, #68]
ARM GAS /tmp/ccEimIdZ.s page 307
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8201 .loc 1 3881 7 is_stmt 1 view .LVU2789
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8202 .loc 1 3881 7 view .LVU2790
8203 00b8 84F84020 strb r2, [r4, #64]
3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8204 .loc 1 3881 7 view .LVU2791
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8205 .loc 1 3883 7 view .LVU2792
3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8206 .loc 1 3883 14 is_stmt 0 view .LVU2793
8207 00bc 0125 movs r5, #1
8208 00be 64E0 b .L513
8209 .LVL525:
8210 .L526:
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8211 .loc 1 3755 7 is_stmt 1 view .LVU2794
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8212 .loc 1 3755 23 is_stmt 0 view .LVU2795
8213 00c0 4FF40073 mov r3, #512
8214 .LVL526:
3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8215 .loc 1 3755 23 view .LVU2796
8216 00c4 6364 str r3, [r4, #68]
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8217 .loc 1 3756 7 is_stmt 1 view .LVU2797
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8218 .loc 1 3756 15 is_stmt 0 view .LVU2798
8219 00c6 0125 movs r5, #1
8220 .LVL527:
3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8221 .loc 1 3756 15 view .LVU2799
8222 00c8 5FE0 b .L513
8223 .LVL528:
8224 .L527:
3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8225 .loc 1 3770 7 is_stmt 1 view .LVU2800
8226 00ca 0221 movs r1, #2
8227 00cc 2046 mov r0, r4
8228 00ce FFF7FEFF bl I2C_Disable_IRQ
8229 .LVL529:
3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8230 .loc 1 3772 7 view .LVU2801
3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8231 .loc 1 3772 16 is_stmt 0 view .LVU2802
8232 00d2 2368 ldr r3, [r4]
3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8233 .loc 1 3772 26 view .LVU2803
8234 00d4 1A68 ldr r2, [r3]
3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8235 .loc 1 3772 10 view .LVU2804
8236 00d6 12F4004F tst r2, #32768
8237 00da B8D0 beq .L516
3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8238 .loc 1 3775 9 is_stmt 1 view .LVU2805
3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8239 .loc 1 3775 17 is_stmt 0 view .LVU2806
ARM GAS /tmp/ccEimIdZ.s page 308
8240 00dc E26B ldr r2, [r4, #60]
3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8241 .loc 1 3775 12 view .LVU2807
8242 00de 002A cmp r2, #0
8243 00e0 B5D0 beq .L516
3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8244 .loc 1 3777 11 is_stmt 1 view .LVU2808
3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8245 .loc 1 3777 31 is_stmt 0 view .LVU2809
8246 00e2 1A68 ldr r2, [r3]
8247 00e4 22F40042 bic r2, r2, #32768
8248 00e8 1A60 str r2, [r3]
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8249 .loc 1 3781 11 is_stmt 1 view .LVU2810
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8250 .loc 1 3781 15 is_stmt 0 view .LVU2811
8251 00ea E36B ldr r3, [r4, #60]
3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8252 .loc 1 3781 43 view .LVU2812
8253 00ec 2C4A ldr r2, .L529+12
8254 00ee 1A65 str r2, [r3, #80]
3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8255 .loc 1 3784 11 is_stmt 1 view .LVU2813
3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8256 .loc 1 3784 15 is_stmt 0 view .LVU2814
8257 00f0 E06B ldr r0, [r4, #60]
8258 00f2 FFF7FEFF bl HAL_DMA_Abort_IT
8259 .LVL530:
3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8260 .loc 1 3784 14 view .LVU2815
8261 00f6 0028 cmp r0, #0
8262 00f8 A9D0 beq .L516
3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8263 .loc 1 3787 13 is_stmt 1 view .LVU2816
3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8264 .loc 1 3787 17 is_stmt 0 view .LVU2817
8265 00fa E06B ldr r0, [r4, #60]
3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8266 .loc 1 3787 25 view .LVU2818
8267 00fc 036D ldr r3, [r0, #80]
3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8268 .loc 1 3787 13 view .LVU2819
8269 00fe 9847 blx r3
8270 .LVL531:
8271 0100 A5E7 b .L516
8272 .L528:
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8273 .loc 1 3794 7 is_stmt 1 view .LVU2820
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8274 .loc 1 3794 16 is_stmt 0 view .LVU2821
8275 0102 2368 ldr r3, [r4]
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8276 .loc 1 3794 26 view .LVU2822
8277 0104 1A68 ldr r2, [r3]
3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8278 .loc 1 3794 10 view .LVU2823
8279 0106 12F4804F tst r2, #16384
ARM GAS /tmp/ccEimIdZ.s page 309
8280 010a A0D0 beq .L516
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8281 .loc 1 3796 9 is_stmt 1 view .LVU2824
3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8282 .loc 1 3796 29 is_stmt 0 view .LVU2825
8283 010c 1A68 ldr r2, [r3]
8284 010e 22F48042 bic r2, r2, #16384
8285 0112 1A60 str r2, [r3]
3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8286 .loc 1 3799 9 is_stmt 1 view .LVU2826
3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8287 .loc 1 3799 17 is_stmt 0 view .LVU2827
8288 0114 A36B ldr r3, [r4, #56]
3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8289 .loc 1 3799 12 view .LVU2828
8290 0116 002B cmp r3, #0
8291 0118 99D0 beq .L516
3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8292 .loc 1 3803 11 is_stmt 1 view .LVU2829
3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8293 .loc 1 3803 43 is_stmt 0 view .LVU2830
8294 011a 214A ldr r2, .L529+12
8295 011c 1A65 str r2, [r3, #80]
3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8296 .loc 1 3806 11 is_stmt 1 view .LVU2831
3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8297 .loc 1 3806 15 is_stmt 0 view .LVU2832
8298 011e A06B ldr r0, [r4, #56]
8299 0120 FFF7FEFF bl HAL_DMA_Abort_IT
8300 .LVL532:
3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8301 .loc 1 3806 14 view .LVU2833
8302 0124 0028 cmp r0, #0
8303 0126 92D0 beq .L516
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8304 .loc 1 3809 13 is_stmt 1 view .LVU2834
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8305 .loc 1 3809 17 is_stmt 0 view .LVU2835
8306 0128 A06B ldr r0, [r4, #56]
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8307 .loc 1 3809 25 view .LVU2836
8308 012a 036D ldr r3, [r0, #80]
3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8309 .loc 1 3809 13 view .LVU2837
8310 012c 9847 blx r3
8311 .LVL533:
8312 012e 8EE7 b .L516
8313 .L517:
3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8314 .loc 1 3851 7 is_stmt 1 view .LVU2838
3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8315 .loc 1 3851 23 is_stmt 0 view .LVU2839
8316 0130 2823 movs r3, #40
8317 0132 84F84130 strb r3, [r4, #65]
3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8318 .loc 1 3852 7 is_stmt 1 view .LVU2840
3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 310
8319 .loc 1 3852 23 is_stmt 0 view .LVU2841
8320 0136 0022 movs r2, #0
8321 0138 84F84220 strb r2, [r4, #66]
3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8322 .loc 1 3855 7 is_stmt 1 view .LVU2842
3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8323 .loc 1 3855 23 is_stmt 0 view .LVU2843
8324 013c 636C ldr r3, [r4, #68]
8325 013e 43F08003 orr r3, r3, #128
8326 0142 6364 str r3, [r4, #68]
3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8327 .loc 1 3858 7 is_stmt 1 view .LVU2844
3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8328 .loc 1 3858 7 view .LVU2845
8329 0144 84F84020 strb r2, [r4, #64]
3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8330 .loc 1 3858 7 view .LVU2846
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8331 .loc 1 3860 7 view .LVU2847
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8332 .loc 1 3860 14 is_stmt 0 view .LVU2848
8333 0148 0125 movs r5, #1
8334 .LVL534:
3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8335 .loc 1 3860 14 view .LVU2849
8336 014a 1EE0 b .L513
8337 .LVL535:
8338 .L518:
3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8339 .loc 1 3866 7 is_stmt 1 view .LVU2850
3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8340 .loc 1 3866 23 is_stmt 0 view .LVU2851
8341 014c 638D ldrh r3, [r4, #42]
8342 014e 9BB2 uxth r3, r3
3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8343 .loc 1 3866 30 view .LVU2852
8344 0150 228D ldrh r2, [r4, #40]
3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8345 .loc 1 3866 23 view .LVU2853
8346 0152 9B1A subs r3, r3, r2
8347 0154 9BB2 uxth r3, r3
8348 0156 6385 strh r3, [r4, #42] @ movhi
3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8349 .loc 1 3869 7 is_stmt 1 view .LVU2854
3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8350 .loc 1 3869 22 is_stmt 0 view .LVU2855
8351 0158 0023 movs r3, #0
8352 015a 2385 strh r3, [r4, #40] @ movhi
3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8353 .loc 1 3886 5 is_stmt 1 view .LVU2856
3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8354 .loc 1 3886 9 is_stmt 0 view .LVU2857
8355 015c 2368 ldr r3, [r4]
8356 015e 9A69 ldr r2, [r3, #24]
3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8357 .loc 1 3886 8 view .LVU2858
8358 0160 12F4803F tst r2, #65536
ARM GAS /tmp/ccEimIdZ.s page 311
8359 0164 0DD1 bne .L520
8360 .L521:
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8361 .loc 1 3894 5 is_stmt 1 view .LVU2859
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8362 .loc 1 3894 5 view .LVU2860
8363 0166 0023 movs r3, #0
8364 0168 84F84030 strb r3, [r4, #64]
3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8365 .loc 1 3894 5 view .LVU2861
3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8366 .loc 1 3900 5 view .LVU2862
8367 016c 4FF40041 mov r1, #32768
8368 0170 2046 mov r0, r4
8369 .LVL536:
3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8370 .loc 1 3900 5 is_stmt 0 view .LVU2863
8371 0172 FFF7FEFF bl I2C_Enable_IRQ
8372 .LVL537:
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8373 .loc 1 3903 5 is_stmt 1 view .LVU2864
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8374 .loc 1 3903 9 is_stmt 0 view .LVU2865
8375 0176 2268 ldr r2, [r4]
3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8376 .loc 1 3903 25 view .LVU2866
8377 0178 1368 ldr r3, [r2]
8378 017a 43F48043 orr r3, r3, #16384
8379 017e 1360 str r3, [r2]
3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8380 .loc 1 3905 5 is_stmt 1 view .LVU2867
3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8381 .loc 1 3905 12 is_stmt 0 view .LVU2868
8382 0180 03E0 b .L513
8383 .LVL538:
8384 .L520:
3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8385 .loc 1 3890 7 is_stmt 1 view .LVU2869
8386 0182 0822 movs r2, #8
8387 0184 DA61 str r2, [r3, #28]
8388 0186 EEE7 b .L521
8389 .LVL539:
8390 .L522:
3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8391 .loc 1 3909 12 is_stmt 0 view .LVU2870
8392 0188 0125 movs r5, #1
8393 .LVL540:
8394 .L513:
3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8395 .loc 1 3911 1 view .LVU2871
8396 018a 2846 mov r0, r5
8397 018c F8BD pop {r3, r4, r5, r6, r7, pc}
8398 .LVL541:
8399 .L523:
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8400 .loc 1 3760 5 view .LVU2872
8401 018e 0225 movs r5, #2
ARM GAS /tmp/ccEimIdZ.s page 312
8402 .LVL542:
3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8403 .loc 1 3760 5 view .LVU2873
8404 0190 FBE7 b .L513
8405 .L530:
8406 0192 00BF .align 2
8407 .L529:
8408 0194 00000000 .word I2C_Slave_ISR_DMA
8409 0198 00000000 .word I2C_DMASlaveTransmitCplt
8410 019c 00000000 .word I2C_DMAError
8411 01a0 00000000 .word I2C_DMAAbort
8412 .cfi_endproc
8413 .LFE169:
8415 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
8416 .align 1
8417 .global HAL_I2C_Slave_Seq_Receive_IT
8418 .syntax unified
8419 .thumb
8420 .thumb_func
8421 .fpu fpv5-d16
8423 HAL_I2C_Slave_Seq_Receive_IT:
8424 .LVL543:
8425 .LFB170:
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
8426 .loc 1 3924 1 is_stmt 1 view -0
8427 .cfi_startproc
8428 @ args = 0, pretend = 0, frame = 0
8429 @ frame_needed = 0, uses_anonymous_args = 0
3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */
8430 .loc 1 3924 1 is_stmt 0 view .LVU2875
8431 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8432 .LCFI101:
8433 .cfi_def_cfa_offset 24
8434 .cfi_offset 3, -24
8435 .cfi_offset 4, -20
8436 .cfi_offset 5, -16
8437 .cfi_offset 6, -12
8438 .cfi_offset 7, -8
8439 .cfi_offset 14, -4
8440 0002 0446 mov r4, r0
3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8441 .loc 1 3926 3 is_stmt 1 view .LVU2876
3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8442 .loc 1 3928 3 view .LVU2877
3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8443 .loc 1 3928 22 is_stmt 0 view .LVU2878
8444 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8445 .LVL544:
3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8446 .loc 1 3928 6 view .LVU2879
8447 0008 00F02800 and r0, r0, #40
8448 000c 2828 cmp r0, #40
8449 000e 5CD1 bne .L536
8450 0010 0F46 mov r7, r1
8451 0012 1646 mov r6, r2
8452 0014 1D46 mov r5, r3
3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 313
8453 .loc 1 3930 5 is_stmt 1 view .LVU2880
3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8454 .loc 1 3930 8 is_stmt 0 view .LVU2881
8455 0016 002A cmp r2, #0
8456 0018 18BF it ne
8457 001a 0029 cmpne r1, #0
8458 001c 04D1 bne .L533
3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8459 .loc 1 3932 7 is_stmt 1 view .LVU2882
3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8460 .loc 1 3932 23 is_stmt 0 view .LVU2883
8461 001e 4FF40073 mov r3, #512
8462 .LVL545:
3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8463 .loc 1 3932 23 view .LVU2884
8464 0022 6364 str r3, [r4, #68]
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8465 .loc 1 3933 7 is_stmt 1 view .LVU2885
3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8466 .loc 1 3933 15 is_stmt 0 view .LVU2886
8467 0024 0120 movs r0, #1
8468 0026 51E0 b .L532
8469 .LVL546:
8470 .L533:
3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8471 .loc 1 3937 5 is_stmt 1 view .LVU2887
8472 0028 48F20201 movw r1, #32770
8473 .LVL547:
3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8474 .loc 1 3937 5 is_stmt 0 view .LVU2888
8475 002c 2046 mov r0, r4
8476 002e FFF7FEFF bl I2C_Disable_IRQ
8477 .LVL548:
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8478 .loc 1 3940 5 is_stmt 1 view .LVU2889
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8479 .loc 1 3940 5 view .LVU2890
8480 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8481 0036 012B cmp r3, #1
8482 0038 49D0 beq .L537
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8483 .loc 1 3940 5 discriminator 2 view .LVU2891
8484 003a 0123 movs r3, #1
8485 003c 84F84030 strb r3, [r4, #64]
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8486 .loc 1 3940 5 discriminator 2 view .LVU2892
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8487 .loc 1 3944 5 discriminator 2 view .LVU2893
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8488 .loc 1 3944 13 is_stmt 0 discriminator 2 view .LVU2894
8489 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8490 0044 DBB2 uxtb r3, r3
3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8491 .loc 1 3944 8 discriminator 2 view .LVU2895
8492 0046 292B cmp r3, #41
8493 0048 24D0 beq .L539
8494 .L534:
ARM GAS /tmp/ccEimIdZ.s page 314
3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8495 .loc 1 3970 5 is_stmt 1 view .LVU2896
3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8496 .loc 1 3970 21 is_stmt 0 view .LVU2897
8497 004a 2A23 movs r3, #42
8498 004c 84F84130 strb r3, [r4, #65]
3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8499 .loc 1 3971 5 is_stmt 1 view .LVU2898
3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8500 .loc 1 3971 21 is_stmt 0 view .LVU2899
8501 0050 2023 movs r3, #32
8502 0052 84F84230 strb r3, [r4, #66]
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8503 .loc 1 3972 5 is_stmt 1 view .LVU2900
3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8504 .loc 1 3972 21 is_stmt 0 view .LVU2901
8505 0056 0023 movs r3, #0
8506 0058 6364 str r3, [r4, #68]
3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8507 .loc 1 3975 5 is_stmt 1 view .LVU2902
3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8508 .loc 1 3975 9 is_stmt 0 view .LVU2903
8509 005a 2268 ldr r2, [r4]
3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8510 .loc 1 3975 25 view .LVU2904
8511 005c 5368 ldr r3, [r2, #4]
8512 005e 23F40043 bic r3, r3, #32768
8513 0062 5360 str r3, [r2, #4]
3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8514 .loc 1 3978 5 is_stmt 1 view .LVU2905
3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8515 .loc 1 3978 23 is_stmt 0 view .LVU2906
8516 0064 6762 str r7, [r4, #36]
3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8517 .loc 1 3979 5 is_stmt 1 view .LVU2907
3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8518 .loc 1 3979 23 is_stmt 0 view .LVU2908
8519 0066 6685 strh r6, [r4, #42] @ movhi
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8520 .loc 1 3980 5 is_stmt 1 view .LVU2909
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8521 .loc 1 3980 29 is_stmt 0 view .LVU2910
8522 0068 638D ldrh r3, [r4, #42]
3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8523 .loc 1 3980 23 view .LVU2911
8524 006a 2385 strh r3, [r4, #40] @ movhi
3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8525 .loc 1 3981 5 is_stmt 1 view .LVU2912
3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8526 .loc 1 3981 23 is_stmt 0 view .LVU2913
8527 006c E562 str r5, [r4, #44]
3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8528 .loc 1 3982 5 is_stmt 1 view .LVU2914
3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8529 .loc 1 3982 23 is_stmt 0 view .LVU2915
8530 006e 194B ldr r3, .L540
8531 0070 6363 str r3, [r4, #52]
ARM GAS /tmp/ccEimIdZ.s page 315
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8532 .loc 1 3984 5 is_stmt 1 view .LVU2916
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8533 .loc 1 3984 9 is_stmt 0 view .LVU2917
8534 0072 2368 ldr r3, [r4]
8535 0074 9A69 ldr r2, [r3, #24]
3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8536 .loc 1 3984 8 view .LVU2918
8537 0076 12F4803F tst r2, #65536
8538 007a 01D1 bne .L535
3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8539 .loc 1 3988 7 is_stmt 1 view .LVU2919
8540 007c 0822 movs r2, #8
8541 007e DA61 str r2, [r3, #28]
8542 .L535:
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8543 .loc 1 3992 5 view .LVU2920
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8544 .loc 1 3992 5 view .LVU2921
8545 0080 0025 movs r5, #0
8546 .LVL549:
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8547 .loc 1 3992 5 is_stmt 0 view .LVU2922
8548 0082 84F84050 strb r5, [r4, #64]
3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8549 .loc 1 3992 5 is_stmt 1 view .LVU2923
3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8550 .loc 1 3998 5 view .LVU2924
8551 0086 48F20201 movw r1, #32770
8552 008a 2046 mov r0, r4
8553 008c FFF7FEFF bl I2C_Enable_IRQ
8554 .LVL550:
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8555 .loc 1 4000 5 view .LVU2925
4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8556 .loc 1 4000 12 is_stmt 0 view .LVU2926
8557 0090 2846 mov r0, r5
8558 0092 1BE0 b .L532
8559 .LVL551:
8560 .L539:
3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8561 .loc 1 3947 7 is_stmt 1 view .LVU2927
8562 0094 0121 movs r1, #1
8563 0096 2046 mov r0, r4
8564 0098 FFF7FEFF bl I2C_Disable_IRQ
8565 .LVL552:
3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8566 .loc 1 3949 7 view .LVU2928
3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8567 .loc 1 3949 16 is_stmt 0 view .LVU2929
8568 009c 2368 ldr r3, [r4]
3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8569 .loc 1 3949 26 view .LVU2930
8570 009e 1A68 ldr r2, [r3]
3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8571 .loc 1 3949 10 view .LVU2931
8572 00a0 12F4804F tst r2, #16384
ARM GAS /tmp/ccEimIdZ.s page 316
8573 00a4 D1D0 beq .L534
3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8574 .loc 1 3951 9 is_stmt 1 view .LVU2932
3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8575 .loc 1 3951 29 is_stmt 0 view .LVU2933
8576 00a6 1A68 ldr r2, [r3]
8577 00a8 22F48042 bic r2, r2, #16384
8578 00ac 1A60 str r2, [r3]
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8579 .loc 1 3954 9 is_stmt 1 view .LVU2934
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8580 .loc 1 3954 17 is_stmt 0 view .LVU2935
8581 00ae A36B ldr r3, [r4, #56]
3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8582 .loc 1 3954 12 view .LVU2936
8583 00b0 002B cmp r3, #0
8584 00b2 CAD0 beq .L534
3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8585 .loc 1 3958 11 is_stmt 1 view .LVU2937
3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8586 .loc 1 3958 43 is_stmt 0 view .LVU2938
8587 00b4 084A ldr r2, .L540+4
8588 00b6 1A65 str r2, [r3, #80]
3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8589 .loc 1 3961 11 is_stmt 1 view .LVU2939
3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8590 .loc 1 3961 15 is_stmt 0 view .LVU2940
8591 00b8 A06B ldr r0, [r4, #56]
8592 00ba FFF7FEFF bl HAL_DMA_Abort_IT
8593 .LVL553:
3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8594 .loc 1 3961 14 view .LVU2941
8595 00be 0028 cmp r0, #0
8596 00c0 C3D0 beq .L534
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8597 .loc 1 3964 13 is_stmt 1 view .LVU2942
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8598 .loc 1 3964 17 is_stmt 0 view .LVU2943
8599 00c2 A06B ldr r0, [r4, #56]
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8600 .loc 1 3964 25 view .LVU2944
8601 00c4 036D ldr r3, [r0, #80]
3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8602 .loc 1 3964 13 view .LVU2945
8603 00c6 9847 blx r3
8604 .LVL554:
8605 00c8 BFE7 b .L534
8606 .LVL555:
8607 .L536:
4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8608 .loc 1 4004 12 view .LVU2946
8609 00ca 0120 movs r0, #1
8610 .LVL556:
8611 .L532:
4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8612 .loc 1 4006 1 view .LVU2947
8613 00cc F8BD pop {r3, r4, r5, r6, r7, pc}
ARM GAS /tmp/ccEimIdZ.s page 317
8614 .LVL557:
8615 .L537:
3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8616 .loc 1 3940 5 view .LVU2948
8617 00ce 0220 movs r0, #2
8618 00d0 FCE7 b .L532
8619 .L541:
8620 00d2 00BF .align 2
8621 .L540:
8622 00d4 00000000 .word I2C_Slave_ISR_IT
8623 00d8 00000000 .word I2C_DMAAbort
8624 .cfi_endproc
8625 .LFE170:
8627 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
8628 .align 1
8629 .global HAL_I2C_Slave_Seq_Receive_DMA
8630 .syntax unified
8631 .thumb
8632 .thumb_func
8633 .fpu fpv5-d16
8635 HAL_I2C_Slave_Seq_Receive_DMA:
8636 .LVL558:
8637 .LFB171:
4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8638 .loc 1 4019 1 is_stmt 1 view -0
8639 .cfi_startproc
8640 @ args = 0, pretend = 0, frame = 0
8641 @ frame_needed = 0, uses_anonymous_args = 0
4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8642 .loc 1 4019 1 is_stmt 0 view .LVU2950
8643 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8644 .LCFI102:
8645 .cfi_def_cfa_offset 24
8646 .cfi_offset 3, -24
8647 .cfi_offset 4, -20
8648 .cfi_offset 5, -16
8649 .cfi_offset 6, -12
8650 .cfi_offset 7, -8
8651 .cfi_offset 14, -4
8652 0002 0446 mov r4, r0
4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8653 .loc 1 4020 3 is_stmt 1 view .LVU2951
4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8654 .loc 1 4023 3 view .LVU2952
4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8655 .loc 1 4025 3 view .LVU2953
4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8656 .loc 1 4025 22 is_stmt 0 view .LVU2954
8657 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8658 .LVL559:
4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8659 .loc 1 4025 6 view .LVU2955
8660 0008 00F02800 and r0, r0, #40
8661 000c 2828 cmp r0, #40
8662 000e 40F0BB80 bne .L552
8663 0012 0F46 mov r7, r1
8664 0014 1646 mov r6, r2
ARM GAS /tmp/ccEimIdZ.s page 318
8665 0016 1D46 mov r5, r3
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8666 .loc 1 4027 5 is_stmt 1 view .LVU2956
4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8667 .loc 1 4027 8 is_stmt 0 view .LVU2957
8668 0018 002A cmp r2, #0
8669 001a 18BF it ne
8670 001c 0029 cmpne r1, #0
8671 001e 04D1 bne .L544
4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8672 .loc 1 4029 7 is_stmt 1 view .LVU2958
4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8673 .loc 1 4029 23 is_stmt 0 view .LVU2959
8674 0020 4FF40073 mov r3, #512
8675 .LVL560:
4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR;
8676 .loc 1 4029 23 view .LVU2960
8677 0024 6364 str r3, [r4, #68]
4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8678 .loc 1 4030 7 is_stmt 1 view .LVU2961
4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8679 .loc 1 4030 15 is_stmt 0 view .LVU2962
8680 0026 0125 movs r5, #1
8681 .LVL561:
4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8682 .loc 1 4030 15 view .LVU2963
8683 0028 AFE0 b .L543
8684 .LVL562:
8685 .L544:
4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8686 .loc 1 4034 5 is_stmt 1 view .LVU2964
8687 002a 48F20201 movw r1, #32770
8688 .LVL563:
4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8689 .loc 1 4034 5 is_stmt 0 view .LVU2965
8690 002e 2046 mov r0, r4
8691 0030 FFF7FEFF bl I2C_Disable_IRQ
8692 .LVL564:
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8693 .loc 1 4037 5 is_stmt 1 view .LVU2966
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8694 .loc 1 4037 5 view .LVU2967
8695 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8696 0038 012B cmp r3, #1
8697 003a 00F0A880 beq .L553
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8698 .loc 1 4037 5 discriminator 2 view .LVU2968
8699 003e 0123 movs r3, #1
8700 0040 84F84030 strb r3, [r4, #64]
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8701 .loc 1 4037 5 discriminator 2 view .LVU2969
4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8702 .loc 1 4041 5 discriminator 2 view .LVU2970
4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8703 .loc 1 4041 13 is_stmt 0 discriminator 2 view .LVU2971
8704 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8705 0048 DBB2 uxtb r3, r3
ARM GAS /tmp/ccEimIdZ.s page 319
4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8706 .loc 1 4041 8 discriminator 2 view .LVU2972
8707 004a 292B cmp r3, #41
8708 004c 3DD0 beq .L556
4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8709 .loc 1 4066 10 is_stmt 1 view .LVU2973
4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8710 .loc 1 4066 18 is_stmt 0 view .LVU2974
8711 004e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8712 0052 DBB2 uxtb r3, r3
4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8713 .loc 1 4066 13 view .LVU2975
8714 0054 2A2B cmp r3, #42
8715 0056 54D0 beq .L557
8716 .L546:
4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8717 .loc 1 4091 5 is_stmt 1 view .LVU2976
4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8718 .loc 1 4093 5 view .LVU2977
4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8719 .loc 1 4093 21 is_stmt 0 view .LVU2978
8720 0058 2A23 movs r3, #42
8721 005a 84F84130 strb r3, [r4, #65]
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8722 .loc 1 4094 5 is_stmt 1 view .LVU2979
4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8723 .loc 1 4094 21 is_stmt 0 view .LVU2980
8724 005e 2023 movs r3, #32
8725 0060 84F84230 strb r3, [r4, #66]
4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8726 .loc 1 4095 5 is_stmt 1 view .LVU2981
4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8727 .loc 1 4095 21 is_stmt 0 view .LVU2982
8728 0064 0023 movs r3, #0
8729 0066 6364 str r3, [r4, #68]
4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8730 .loc 1 4098 5 is_stmt 1 view .LVU2983
4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8731 .loc 1 4098 9 is_stmt 0 view .LVU2984
8732 0068 2268 ldr r2, [r4]
4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8733 .loc 1 4098 25 view .LVU2985
8734 006a 5368 ldr r3, [r2, #4]
8735 006c 23F40043 bic r3, r3, #32768
8736 0070 5360 str r3, [r2, #4]
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8737 .loc 1 4101 5 is_stmt 1 view .LVU2986
4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size;
8738 .loc 1 4101 23 is_stmt 0 view .LVU2987
8739 0072 6762 str r7, [r4, #36]
4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8740 .loc 1 4102 5 is_stmt 1 view .LVU2988
4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8741 .loc 1 4102 23 is_stmt 0 view .LVU2989
8742 0074 6685 strh r6, [r4, #42] @ movhi
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8743 .loc 1 4103 5 is_stmt 1 view .LVU2990
ARM GAS /tmp/ccEimIdZ.s page 320
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8744 .loc 1 4103 29 is_stmt 0 view .LVU2991
8745 0076 638D ldrh r3, [r4, #42]
4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8746 .loc 1 4103 23 view .LVU2992
8747 0078 2385 strh r3, [r4, #40] @ movhi
4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8748 .loc 1 4104 5 is_stmt 1 view .LVU2993
4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8749 .loc 1 4104 23 is_stmt 0 view .LVU2994
8750 007a E562 str r5, [r4, #44]
4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8751 .loc 1 4105 5 is_stmt 1 view .LVU2995
4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8752 .loc 1 4105 23 is_stmt 0 view .LVU2996
8753 007c 454B ldr r3, .L558
8754 007e 6363 str r3, [r4, #52]
4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8755 .loc 1 4107 5 is_stmt 1 view .LVU2997
4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8756 .loc 1 4107 13 is_stmt 0 view .LVU2998
8757 0080 E36B ldr r3, [r4, #60]
4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8758 .loc 1 4107 8 view .LVU2999
8759 0082 002B cmp r3, #0
8760 0084 54D0 beq .L547
4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8761 .loc 1 4110 7 is_stmt 1 view .LVU3000
4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8762 .loc 1 4110 38 is_stmt 0 view .LVU3001
8763 0086 444A ldr r2, .L558+4
8764 0088 DA63 str r2, [r3, #60]
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8765 .loc 1 4113 7 is_stmt 1 view .LVU3002
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8766 .loc 1 4113 11 is_stmt 0 view .LVU3003
8767 008a E36B ldr r3, [r4, #60]
4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8768 .loc 1 4113 39 view .LVU3004
8769 008c 434A ldr r2, .L558+8
8770 008e DA64 str r2, [r3, #76]
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8771 .loc 1 4116 7 is_stmt 1 view .LVU3005
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8772 .loc 1 4116 11 is_stmt 0 view .LVU3006
8773 0090 E26B ldr r2, [r4, #60]
4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8774 .loc 1 4116 42 view .LVU3007
8775 0092 0023 movs r3, #0
8776 0094 1364 str r3, [r2, #64]
4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8777 .loc 1 4117 7 is_stmt 1 view .LVU3008
4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8778 .loc 1 4117 11 is_stmt 0 view .LVU3009
8779 0096 E26B ldr r2, [r4, #60]
4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8780 .loc 1 4117 39 view .LVU3010
ARM GAS /tmp/ccEimIdZ.s page 321
8781 0098 1365 str r3, [r2, #80]
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8782 .loc 1 4120 7 is_stmt 1 view .LVU3011
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8783 .loc 1 4120 69 is_stmt 0 view .LVU3012
8784 009a 2168 ldr r1, [r4]
4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8785 .loc 1 4120 23 view .LVU3013
8786 009c 238D ldrh r3, [r4, #40]
8787 009e 3A46 mov r2, r7
8788 00a0 2431 adds r1, r1, #36
8789 00a2 E06B ldr r0, [r4, #60]
8790 00a4 FFF7FEFF bl HAL_DMA_Start_IT
8791 .LVL565:
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8792 .loc 1 4137 5 is_stmt 1 view .LVU3014
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8793 .loc 1 4137 8 is_stmt 0 view .LVU3015
8794 00a8 0546 mov r5, r0
8795 .LVL566:
4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8796 .loc 1 4137 8 view .LVU3016
8797 00aa 0028 cmp r0, #0
8798 00ac 4ED0 beq .L548
4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8799 .loc 1 4148 7 is_stmt 1 view .LVU3017
4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8800 .loc 1 4148 23 is_stmt 0 view .LVU3018
8801 00ae 2823 movs r3, #40
8802 00b0 84F84130 strb r3, [r4, #65]
4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8803 .loc 1 4149 7 is_stmt 1 view .LVU3019
4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8804 .loc 1 4149 23 is_stmt 0 view .LVU3020
8805 00b4 0022 movs r2, #0
8806 00b6 84F84220 strb r2, [r4, #66]
4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8807 .loc 1 4152 7 is_stmt 1 view .LVU3021
4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8808 .loc 1 4152 23 is_stmt 0 view .LVU3022
8809 00ba 636C ldr r3, [r4, #68]
8810 00bc 43F01003 orr r3, r3, #16
8811 00c0 6364 str r3, [r4, #68]
4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8812 .loc 1 4155 7 is_stmt 1 view .LVU3023
4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8813 .loc 1 4155 7 view .LVU3024
8814 00c2 84F84020 strb r2, [r4, #64]
4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8815 .loc 1 4155 7 view .LVU3025
4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8816 .loc 1 4157 7 view .LVU3026
4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8817 .loc 1 4157 14 is_stmt 0 view .LVU3027
8818 00c6 0125 movs r5, #1
8819 00c8 5FE0 b .L543
8820 .LVL567:
ARM GAS /tmp/ccEimIdZ.s page 322
8821 .L556:
4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8822 .loc 1 4044 7 is_stmt 1 view .LVU3028
8823 00ca 0121 movs r1, #1
8824 00cc 2046 mov r0, r4
8825 00ce FFF7FEFF bl I2C_Disable_IRQ
8826 .LVL568:
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8827 .loc 1 4046 7 view .LVU3029
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8828 .loc 1 4046 16 is_stmt 0 view .LVU3030
8829 00d2 2368 ldr r3, [r4]
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8830 .loc 1 4046 26 view .LVU3031
8831 00d4 1A68 ldr r2, [r3]
4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8832 .loc 1 4046 10 view .LVU3032
8833 00d6 12F4804F tst r2, #16384
8834 00da BDD0 beq .L546
4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8835 .loc 1 4049 9 is_stmt 1 view .LVU3033
4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8836 .loc 1 4049 17 is_stmt 0 view .LVU3034
8837 00dc A26B ldr r2, [r4, #56]
4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8838 .loc 1 4049 12 view .LVU3035
8839 00de 002A cmp r2, #0
8840 00e0 BAD0 beq .L546
4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8841 .loc 1 4051 11 is_stmt 1 view .LVU3036
4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8842 .loc 1 4051 31 is_stmt 0 view .LVU3037
8843 00e2 1A68 ldr r2, [r3]
8844 00e4 22F48042 bic r2, r2, #16384
8845 00e8 1A60 str r2, [r3]
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8846 .loc 1 4055 11 is_stmt 1 view .LVU3038
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8847 .loc 1 4055 15 is_stmt 0 view .LVU3039
8848 00ea A36B ldr r3, [r4, #56]
4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8849 .loc 1 4055 43 view .LVU3040
8850 00ec 2C4A ldr r2, .L558+12
8851 00ee 1A65 str r2, [r3, #80]
4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8852 .loc 1 4058 11 is_stmt 1 view .LVU3041
4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8853 .loc 1 4058 15 is_stmt 0 view .LVU3042
8854 00f0 A06B ldr r0, [r4, #56]
8855 00f2 FFF7FEFF bl HAL_DMA_Abort_IT
8856 .LVL569:
4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8857 .loc 1 4058 14 view .LVU3043
8858 00f6 0028 cmp r0, #0
8859 00f8 AED0 beq .L546
4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8860 .loc 1 4061 13 is_stmt 1 view .LVU3044
ARM GAS /tmp/ccEimIdZ.s page 323
4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8861 .loc 1 4061 17 is_stmt 0 view .LVU3045
8862 00fa A06B ldr r0, [r4, #56]
4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8863 .loc 1 4061 25 view .LVU3046
8864 00fc 036D ldr r3, [r0, #80]
4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8865 .loc 1 4061 13 view .LVU3047
8866 00fe 9847 blx r3
8867 .LVL570:
8868 0100 AAE7 b .L546
8869 .L557:
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8870 .loc 1 4068 7 is_stmt 1 view .LVU3048
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8871 .loc 1 4068 16 is_stmt 0 view .LVU3049
8872 0102 2368 ldr r3, [r4]
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8873 .loc 1 4068 26 view .LVU3050
8874 0104 1A68 ldr r2, [r3]
4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8875 .loc 1 4068 10 view .LVU3051
8876 0106 12F4004F tst r2, #32768
8877 010a A5D0 beq .L546
4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8878 .loc 1 4070 9 is_stmt 1 view .LVU3052
4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8879 .loc 1 4070 29 is_stmt 0 view .LVU3053
8880 010c 1A68 ldr r2, [r3]
8881 010e 22F40042 bic r2, r2, #32768
8882 0112 1A60 str r2, [r3]
4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8883 .loc 1 4073 9 is_stmt 1 view .LVU3054
4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8884 .loc 1 4073 17 is_stmt 0 view .LVU3055
8885 0114 E36B ldr r3, [r4, #60]
4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8886 .loc 1 4073 12 view .LVU3056
8887 0116 002B cmp r3, #0
8888 0118 9ED0 beq .L546
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8889 .loc 1 4077 11 is_stmt 1 view .LVU3057
4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8890 .loc 1 4077 43 is_stmt 0 view .LVU3058
8891 011a 214A ldr r2, .L558+12
8892 011c 1A65 str r2, [r3, #80]
4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8893 .loc 1 4080 11 is_stmt 1 view .LVU3059
4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8894 .loc 1 4080 15 is_stmt 0 view .LVU3060
8895 011e E06B ldr r0, [r4, #60]
8896 0120 FFF7FEFF bl HAL_DMA_Abort_IT
8897 .LVL571:
4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8898 .loc 1 4080 14 view .LVU3061
8899 0124 0028 cmp r0, #0
8900 0126 97D0 beq .L546
ARM GAS /tmp/ccEimIdZ.s page 324
4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8901 .loc 1 4083 13 is_stmt 1 view .LVU3062
4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8902 .loc 1 4083 17 is_stmt 0 view .LVU3063
8903 0128 E06B ldr r0, [r4, #60]
4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8904 .loc 1 4083 25 view .LVU3064
8905 012a 036D ldr r3, [r0, #80]
4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8906 .loc 1 4083 13 view .LVU3065
8907 012c 9847 blx r3
8908 .LVL572:
8909 012e 93E7 b .L546
8910 .L547:
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8911 .loc 1 4125 7 is_stmt 1 view .LVU3066
4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8912 .loc 1 4125 23 is_stmt 0 view .LVU3067
8913 0130 2823 movs r3, #40
8914 0132 84F84130 strb r3, [r4, #65]
4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8915 .loc 1 4126 7 is_stmt 1 view .LVU3068
4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8916 .loc 1 4126 23 is_stmt 0 view .LVU3069
8917 0136 0022 movs r2, #0
8918 0138 84F84220 strb r2, [r4, #66]
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8919 .loc 1 4129 7 is_stmt 1 view .LVU3070
4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8920 .loc 1 4129 23 is_stmt 0 view .LVU3071
8921 013c 636C ldr r3, [r4, #68]
8922 013e 43F08003 orr r3, r3, #128
8923 0142 6364 str r3, [r4, #68]
4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8924 .loc 1 4132 7 is_stmt 1 view .LVU3072
4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8925 .loc 1 4132 7 view .LVU3073
8926 0144 84F84020 strb r2, [r4, #64]
4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8927 .loc 1 4132 7 view .LVU3074
4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8928 .loc 1 4134 7 view .LVU3075
4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8929 .loc 1 4134 14 is_stmt 0 view .LVU3076
8930 0148 0125 movs r5, #1
8931 .LVL573:
4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8932 .loc 1 4134 14 view .LVU3077
8933 014a 1EE0 b .L543
8934 .LVL574:
8935 .L548:
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8936 .loc 1 4140 7 is_stmt 1 view .LVU3078
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8937 .loc 1 4140 23 is_stmt 0 view .LVU3079
8938 014c 638D ldrh r3, [r4, #42]
8939 014e 9BB2 uxth r3, r3
ARM GAS /tmp/ccEimIdZ.s page 325
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8940 .loc 1 4140 30 view .LVU3080
8941 0150 228D ldrh r2, [r4, #40]
4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8942 .loc 1 4140 23 view .LVU3081
8943 0152 9B1A subs r3, r3, r2
8944 0154 9BB2 uxth r3, r3
8945 0156 6385 strh r3, [r4, #42] @ movhi
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8946 .loc 1 4143 7 is_stmt 1 view .LVU3082
4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8947 .loc 1 4143 22 is_stmt 0 view .LVU3083
8948 0158 0023 movs r3, #0
8949 015a 2385 strh r3, [r4, #40] @ movhi
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8950 .loc 1 4160 5 is_stmt 1 view .LVU3084
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8951 .loc 1 4160 9 is_stmt 0 view .LVU3085
8952 015c 2368 ldr r3, [r4]
8953 015e 9A69 ldr r2, [r3, #24]
4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
8954 .loc 1 4160 8 view .LVU3086
8955 0160 12F4803F tst r2, #65536
8956 0164 0DD0 beq .L550
8957 .L551:
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8958 .loc 1 4168 5 is_stmt 1 view .LVU3087
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8959 .loc 1 4168 5 view .LVU3088
8960 0166 0023 movs r3, #0
8961 0168 84F84030 strb r3, [r4, #64]
4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8962 .loc 1 4168 5 view .LVU3089
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8963 .loc 1 4174 5 view .LVU3090
8964 016c 48F20201 movw r1, #32770
8965 0170 2046 mov r0, r4
8966 .LVL575:
4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8967 .loc 1 4174 5 is_stmt 0 view .LVU3091
8968 0172 FFF7FEFF bl I2C_Enable_IRQ
8969 .LVL576:
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8970 .loc 1 4177 5 is_stmt 1 view .LVU3092
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8971 .loc 1 4177 9 is_stmt 0 view .LVU3093
8972 0176 2268 ldr r2, [r4]
4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8973 .loc 1 4177 25 view .LVU3094
8974 0178 1368 ldr r3, [r2]
8975 017a 43F40043 orr r3, r3, #32768
8976 017e 1360 str r3, [r2]
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8977 .loc 1 4179 5 is_stmt 1 view .LVU3095
4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8978 .loc 1 4179 12 is_stmt 0 view .LVU3096
8979 0180 03E0 b .L543
ARM GAS /tmp/ccEimIdZ.s page 326
8980 .LVL577:
8981 .L550:
4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8982 .loc 1 4164 7 is_stmt 1 view .LVU3097
8983 0182 0822 movs r2, #8
8984 0184 DA61 str r2, [r3, #28]
8985 0186 EEE7 b .L551
8986 .LVL578:
8987 .L552:
4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
8988 .loc 1 4183 12 is_stmt 0 view .LVU3098
8989 0188 0125 movs r5, #1
8990 .LVL579:
8991 .L543:
4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8992 .loc 1 4185 1 view .LVU3099
8993 018a 2846 mov r0, r5
8994 018c F8BD pop {r3, r4, r5, r6, r7, pc}
8995 .LVL580:
8996 .L553:
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
8997 .loc 1 4037 5 view .LVU3100
8998 018e 0225 movs r5, #2
8999 .LVL581:
4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9000 .loc 1 4037 5 view .LVU3101
9001 0190 FBE7 b .L543
9002 .L559:
9003 0192 00BF .align 2
9004 .L558:
9005 0194 00000000 .word I2C_Slave_ISR_DMA
9006 0198 00000000 .word I2C_DMASlaveReceiveCplt
9007 019c 00000000 .word I2C_DMAError
9008 01a0 00000000 .word I2C_DMAAbort
9009 .cfi_endproc
9010 .LFE171:
9012 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
9013 .align 1
9014 .global HAL_I2C_EnableListen_IT
9015 .syntax unified
9016 .thumb
9017 .thumb_func
9018 .fpu fpv5-d16
9020 HAL_I2C_EnableListen_IT:
9021 .LVL582:
9022 .LFB172:
4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9023 .loc 1 4194 1 is_stmt 1 view -0
9024 .cfi_startproc
9025 @ args = 0, pretend = 0, frame = 0
9026 @ frame_needed = 0, uses_anonymous_args = 0
4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9027 .loc 1 4194 1 is_stmt 0 view .LVU3103
9028 0000 08B5 push {r3, lr}
9029 .LCFI103:
9030 .cfi_def_cfa_offset 8
9031 .cfi_offset 3, -8
ARM GAS /tmp/ccEimIdZ.s page 327
9032 .cfi_offset 14, -4
4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9033 .loc 1 4195 3 is_stmt 1 view .LVU3104
4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9034 .loc 1 4195 11 is_stmt 0 view .LVU3105
9035 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9036 0006 DBB2 uxtb r3, r3
4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9037 .loc 1 4195 6 view .LVU3106
9038 0008 202B cmp r3, #32
9039 000a 01D0 beq .L564
4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9040 .loc 1 4207 12 view .LVU3107
9041 000c 0220 movs r0, #2
9042 .LVL583:
9043 .L561:
4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9044 .loc 1 4209 1 view .LVU3108
9045 000e 08BD pop {r3, pc}
9046 .LVL584:
9047 .L564:
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9048 .loc 1 4197 5 is_stmt 1 view .LVU3109
4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9049 .loc 1 4197 17 is_stmt 0 view .LVU3110
9050 0010 2823 movs r3, #40
9051 0012 80F84130 strb r3, [r0, #65]
4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9052 .loc 1 4198 5 is_stmt 1 view .LVU3111
4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9053 .loc 1 4198 19 is_stmt 0 view .LVU3112
9054 0016 044B ldr r3, .L565
9055 0018 4363 str r3, [r0, #52]
4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9056 .loc 1 4201 5 is_stmt 1 view .LVU3113
9057 001a 4FF40041 mov r1, #32768
9058 001e FFF7FEFF bl I2C_Enable_IRQ
9059 .LVL585:
4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9060 .loc 1 4203 5 view .LVU3114
4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9061 .loc 1 4203 12 is_stmt 0 view .LVU3115
9062 0022 0020 movs r0, #0
9063 0024 F3E7 b .L561
9064 .L566:
9065 0026 00BF .align 2
9066 .L565:
9067 0028 00000000 .word I2C_Slave_ISR_IT
9068 .cfi_endproc
9069 .LFE172:
9071 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
9072 .align 1
9073 .global HAL_I2C_DisableListen_IT
9074 .syntax unified
9075 .thumb
9076 .thumb_func
9077 .fpu fpv5-d16
ARM GAS /tmp/ccEimIdZ.s page 328
9079 HAL_I2C_DisableListen_IT:
9080 .LVL586:
9081 .LFB173:
4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9082 .loc 1 4218 1 is_stmt 1 view -0
9083 .cfi_startproc
9084 @ args = 0, pretend = 0, frame = 0
9085 @ frame_needed = 0, uses_anonymous_args = 0
4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9086 .loc 1 4220 3 view .LVU3117
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9087 .loc 1 4223 3 view .LVU3118
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9088 .loc 1 4223 11 is_stmt 0 view .LVU3119
9089 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9090 0004 DBB2 uxtb r3, r3
4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9091 .loc 1 4223 6 view .LVU3120
9092 0006 282B cmp r3, #40
9093 0008 01D0 beq .L574
4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9094 .loc 1 4238 12 view .LVU3121
9095 000a 0220 movs r0, #2
9096 .LVL587:
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9097 .loc 1 4240 1 view .LVU3122
9098 000c 7047 bx lr
9099 .LVL588:
9100 .L574:
4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9101 .loc 1 4218 1 view .LVU3123
9102 000e 10B5 push {r4, lr}
9103 .LCFI104:
9104 .cfi_def_cfa_offset 8
9105 .cfi_offset 4, -8
9106 .cfi_offset 14, -4
4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9107 .loc 1 4225 5 is_stmt 1 view .LVU3124
4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9108 .loc 1 4225 26 is_stmt 0 view .LVU3125
9109 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
9110 .LVL589:
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9111 .loc 1 4226 5 is_stmt 1 view .LVU3126
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9112 .loc 1 4226 48 is_stmt 0 view .LVU3127
9113 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9114 .loc 1 4226 31 view .LVU3128
9115 0018 02F00302 and r2, r2, #3
9116 .LVL590:
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9117 .loc 1 4226 31 view .LVU3129
9118 001c 1343 orrs r3, r3, r2
4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9119 .loc 1 4226 25 view .LVU3130
9120 001e 0363 str r3, [r0, #48]
ARM GAS /tmp/ccEimIdZ.s page 329
4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9121 .loc 1 4227 5 is_stmt 1 view .LVU3131
4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9122 .loc 1 4227 17 is_stmt 0 view .LVU3132
9123 0020 2023 movs r3, #32
9124 0022 80F84130 strb r3, [r0, #65]
4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9125 .loc 1 4228 5 is_stmt 1 view .LVU3133
4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9126 .loc 1 4228 16 is_stmt 0 view .LVU3134
9127 0026 0024 movs r4, #0
9128 0028 80F84240 strb r4, [r0, #66]
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9129 .loc 1 4229 5 is_stmt 1 view .LVU3135
4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9130 .loc 1 4229 19 is_stmt 0 view .LVU3136
9131 002c 4463 str r4, [r0, #52]
4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9132 .loc 1 4232 5 is_stmt 1 view .LVU3137
9133 002e 4FF40041 mov r1, #32768
9134 0032 FFF7FEFF bl I2C_Disable_IRQ
9135 .LVL591:
4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9136 .loc 1 4234 5 view .LVU3138
4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9137 .loc 1 4234 12 is_stmt 0 view .LVU3139
9138 0036 2046 mov r0, r4
4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9139 .loc 1 4240 1 view .LVU3140
9140 0038 10BD pop {r4, pc}
9141 .cfi_endproc
9142 .LFE173:
9144 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
9145 .align 1
9146 .global HAL_I2C_Master_Abort_IT
9147 .syntax unified
9148 .thumb
9149 .thumb_func
9150 .fpu fpv5-d16
9152 HAL_I2C_Master_Abort_IT:
9153 .LVL592:
9154 .LFB174:
4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
9155 .loc 1 4251 1 is_stmt 1 view -0
9156 .cfi_startproc
9157 @ args = 0, pretend = 0, frame = 0
9158 @ frame_needed = 0, uses_anonymous_args = 0
4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9159 .loc 1 4252 3 view .LVU3142
4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9160 .loc 1 4252 11 is_stmt 0 view .LVU3143
9161 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
9162 0004 DBB2 uxtb r3, r3
4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9163 .loc 1 4252 6 view .LVU3144
9164 0006 102B cmp r3, #16
9165 0008 36D1 bne .L579
ARM GAS /tmp/ccEimIdZ.s page 330
4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
9166 .loc 1 4251 1 view .LVU3145
9167 000a 30B5 push {r4, r5, lr}
9168 .LCFI105:
9169 .cfi_def_cfa_offset 12
9170 .cfi_offset 4, -12
9171 .cfi_offset 5, -8
9172 .cfi_offset 14, -4
9173 000c 83B0 sub sp, sp, #12
9174 .LCFI106:
9175 .cfi_def_cfa_offset 24
9176 000e 0446 mov r4, r0
9177 0010 0D46 mov r5, r1
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9178 .loc 1 4255 5 is_stmt 1 view .LVU3146
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9179 .loc 1 4255 5 view .LVU3147
9180 0012 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
9181 0016 012B cmp r3, #1
9182 0018 30D0 beq .L580
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9183 .loc 1 4255 5 discriminator 2 view .LVU3148
9184 001a 0123 movs r3, #1
9185 001c 80F84030 strb r3, [r0, #64]
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9186 .loc 1 4255 5 discriminator 2 view .LVU3149
4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9187 .loc 1 4258 5 discriminator 2 view .LVU3150
4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9188 .loc 1 4258 13 is_stmt 0 discriminator 2 view .LVU3151
9189 0020 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9190 0024 DBB2 uxtb r3, r3
4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9191 .loc 1 4258 8 discriminator 2 view .LVU3152
9192 0026 212B cmp r3, #33
9193 0028 1AD0 beq .L585
4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9194 .loc 1 4263 10 is_stmt 1 view .LVU3153
4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9195 .loc 1 4263 18 is_stmt 0 view .LVU3154
9196 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9197 002e DBB2 uxtb r3, r3
4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9198 .loc 1 4263 13 view .LVU3155
9199 0030 222B cmp r3, #34
9200 0032 1BD0 beq .L586
9201 .LVL593:
9202 .L578:
4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9203 .loc 1 4271 5 is_stmt 1 view .LVU3156
4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9204 .loc 1 4274 5 view .LVU3157
4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9205 .loc 1 4274 17 is_stmt 0 view .LVU3158
9206 0034 6023 movs r3, #96
9207 0036 84F84130 strb r3, [r4, #65]
4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 331
9208 .loc 1 4278 5 is_stmt 1 view .LVU3159
9209 003a 114B ldr r3, .L587
9210 003c 0093 str r3, [sp]
9211 003e 4FF00073 mov r3, #33554432
9212 0042 0122 movs r2, #1
9213 0044 2946 mov r1, r5
9214 0046 2046 mov r0, r4
9215 0048 FFF7FEFF bl I2C_TransferConfig
9216 .LVL594:
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9217 .loc 1 4281 5 view .LVU3160
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9218 .loc 1 4281 5 view .LVU3161
9219 004c 0025 movs r5, #0
9220 004e 84F84050 strb r5, [r4, #64]
4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9221 .loc 1 4281 5 view .LVU3162
4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9222 .loc 1 4286 5 view .LVU3163
9223 0052 2021 movs r1, #32
9224 0054 2046 mov r0, r4
9225 0056 FFF7FEFF bl I2C_Enable_IRQ
9226 .LVL595:
4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9227 .loc 1 4288 5 view .LVU3164
4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9228 .loc 1 4288 12 is_stmt 0 view .LVU3165
9229 005a 2846 mov r0, r5
9230 .L576:
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9231 .loc 1 4296 1 view .LVU3166
9232 005c 03B0 add sp, sp, #12
9233 .LCFI107:
9234 .cfi_remember_state
9235 .cfi_def_cfa_offset 12
9236 @ sp needed
9237 005e 30BD pop {r4, r5, pc}
9238 .LVL596:
9239 .L585:
9240 .LCFI108:
9241 .cfi_restore_state
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9242 .loc 1 4260 7 is_stmt 1 view .LVU3167
9243 0060 0121 movs r1, #1
9244 .LVL597:
4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9245 .loc 1 4260 7 is_stmt 0 view .LVU3168
9246 0062 FFF7FEFF bl I2C_Disable_IRQ
9247 .LVL598:
4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9248 .loc 1 4261 7 is_stmt 1 view .LVU3169
4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9249 .loc 1 4261 27 is_stmt 0 view .LVU3170
9250 0066 1123 movs r3, #17
9251 0068 2363 str r3, [r4, #48]
9252 006a E3E7 b .L578
9253 .LVL599:
ARM GAS /tmp/ccEimIdZ.s page 332
9254 .L586:
4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9255 .loc 1 4265 7 is_stmt 1 view .LVU3171
9256 006c 0221 movs r1, #2
9257 .LVL600:
4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9258 .loc 1 4265 7 is_stmt 0 view .LVU3172
9259 006e FFF7FEFF bl I2C_Disable_IRQ
9260 .LVL601:
4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9261 .loc 1 4266 7 is_stmt 1 view .LVU3173
4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9262 .loc 1 4266 27 is_stmt 0 view .LVU3174
9263 0072 1223 movs r3, #18
9264 0074 2363 str r3, [r4, #48]
9265 0076 DDE7 b .L578
9266 .LVL602:
9267 .L579:
9268 .LCFI109:
9269 .cfi_def_cfa_offset 0
9270 .cfi_restore 4
9271 .cfi_restore 5
9272 .cfi_restore 14
4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9273 .loc 1 4294 12 view .LVU3175
9274 0078 0120 movs r0, #1
9275 .LVL603:
4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9276 .loc 1 4296 1 view .LVU3176
9277 007a 7047 bx lr
9278 .LVL604:
9279 .L580:
9280 .LCFI110:
9281 .cfi_def_cfa_offset 24
9282 .cfi_offset 4, -12
9283 .cfi_offset 5, -8
9284 .cfi_offset 14, -4
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9285 .loc 1 4255 5 view .LVU3177
9286 007c 0220 movs r0, #2
9287 .LVL605:
4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9288 .loc 1 4255 5 view .LVU3178
9289 007e EDE7 b .L576
9290 .L588:
9291 .align 2
9292 .L587:
9293 0080 00400080 .word -2147467264
9294 .cfi_endproc
9295 .LFE174:
9297 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
9298 .align 1
9299 .global HAL_I2C_EV_IRQHandler
9300 .syntax unified
9301 .thumb
9302 .thumb_func
9303 .fpu fpv5-d16
ARM GAS /tmp/ccEimIdZ.s page 333
9305 HAL_I2C_EV_IRQHandler:
9306 .LVL606:
9307 .LFB175:
4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9308 .loc 1 4313 1 is_stmt 1 view -0
9309 .cfi_startproc
9310 @ args = 0, pretend = 0, frame = 0
9311 @ frame_needed = 0, uses_anonymous_args = 0
4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9312 .loc 1 4313 1 is_stmt 0 view .LVU3180
9313 0000 08B5 push {r3, lr}
9314 .LCFI111:
9315 .cfi_def_cfa_offset 8
9316 .cfi_offset 3, -8
9317 .cfi_offset 14, -4
4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9318 .loc 1 4315 3 is_stmt 1 view .LVU3181
4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9319 .loc 1 4315 24 is_stmt 0 view .LVU3182
9320 0002 0368 ldr r3, [r0]
4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9321 .loc 1 4315 12 view .LVU3183
9322 0004 9969 ldr r1, [r3, #24]
9323 .LVL607:
4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9324 .loc 1 4316 3 is_stmt 1 view .LVU3184
4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9325 .loc 1 4316 12 is_stmt 0 view .LVU3185
9326 0006 1A68 ldr r2, [r3]
9327 .LVL608:
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9328 .loc 1 4319 3 is_stmt 1 view .LVU3186
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9329 .loc 1 4319 11 is_stmt 0 view .LVU3187
9330 0008 436B ldr r3, [r0, #52]
4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9331 .loc 1 4319 6 view .LVU3188
9332 000a 03B1 cbz r3, .L589
4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9333 .loc 1 4321 5 is_stmt 1 view .LVU3189
9334 000c 9847 blx r3
9335 .LVL609:
9336 .L589:
4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9337 .loc 1 4323 1 is_stmt 0 view .LVU3190
9338 000e 08BD pop {r3, pc}
9339 .cfi_endproc
9340 .LFE175:
9342 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
9343 .align 1
9344 .weak HAL_I2C_MasterTxCpltCallback
9345 .syntax unified
9346 .thumb
9347 .thumb_func
9348 .fpu fpv5-d16
9350 HAL_I2C_MasterTxCpltCallback:
9351 .LVL610:
ARM GAS /tmp/ccEimIdZ.s page 334
9352 .LFB177:
4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9353 .loc 1 4381 1 is_stmt 1 view -0
9354 .cfi_startproc
9355 @ args = 0, pretend = 0, frame = 0
9356 @ frame_needed = 0, uses_anonymous_args = 0
9357 @ link register save eliminated.
4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9358 .loc 1 4383 3 view .LVU3192
4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9359 .loc 1 4388 1 is_stmt 0 view .LVU3193
9360 0000 7047 bx lr
9361 .cfi_endproc
9362 .LFE177:
9364 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
9365 .align 1
9366 .weak HAL_I2C_MasterRxCpltCallback
9367 .syntax unified
9368 .thumb
9369 .thumb_func
9370 .fpu fpv5-d16
9372 HAL_I2C_MasterRxCpltCallback:
9373 .LVL611:
9374 .LFB178:
4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9375 .loc 1 4397 1 is_stmt 1 view -0
9376 .cfi_startproc
9377 @ args = 0, pretend = 0, frame = 0
9378 @ frame_needed = 0, uses_anonymous_args = 0
9379 @ link register save eliminated.
4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9380 .loc 1 4399 3 view .LVU3195
4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9381 .loc 1 4404 1 is_stmt 0 view .LVU3196
9382 0000 7047 bx lr
9383 .cfi_endproc
9384 .LFE178:
9386 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
9387 .align 1
9388 .syntax unified
9389 .thumb
9390 .thumb_func
9391 .fpu fpv5-d16
9393 I2C_ITMasterSeqCplt:
9394 .LVL612:
9395 .LFB197:
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
9396 .loc 1 5350 1 is_stmt 1 view -0
9397 .cfi_startproc
9398 @ args = 0, pretend = 0, frame = 0
9399 @ frame_needed = 0, uses_anonymous_args = 0
5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */
9400 .loc 1 5350 1 is_stmt 0 view .LVU3198
9401 0000 38B5 push {r3, r4, r5, lr}
9402 .LCFI112:
9403 .cfi_def_cfa_offset 16
9404 .cfi_offset 3, -16
ARM GAS /tmp/ccEimIdZ.s page 335
9405 .cfi_offset 4, -12
9406 .cfi_offset 5, -8
9407 .cfi_offset 14, -4
9408 0002 0446 mov r4, r0
5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9409 .loc 1 5352 3 is_stmt 1 view .LVU3199
5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9410 .loc 1 5352 14 is_stmt 0 view .LVU3200
9411 0004 0023 movs r3, #0
9412 0006 80F84230 strb r3, [r0, #66]
5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9413 .loc 1 5356 3 is_stmt 1 view .LVU3201
5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9414 .loc 1 5356 11 is_stmt 0 view .LVU3202
9415 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9416 000e DBB2 uxtb r3, r3
5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9417 .loc 1 5356 6 view .LVU3203
9418 0010 212B cmp r3, #33
9419 0012 0FD0 beq .L598
5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9420 .loc 1 5378 5 is_stmt 1 view .LVU3204
5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9421 .loc 1 5378 25 is_stmt 0 view .LVU3205
9422 0014 2023 movs r3, #32
9423 0016 80F84130 strb r3, [r0, #65]
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9424 .loc 1 5379 5 is_stmt 1 view .LVU3206
5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9425 .loc 1 5379 25 is_stmt 0 view .LVU3207
9426 001a 1223 movs r3, #18
9427 001c 0363 str r3, [r0, #48]
5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9428 .loc 1 5380 5 is_stmt 1 view .LVU3208
5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9429 .loc 1 5380 25 is_stmt 0 view .LVU3209
9430 001e 0025 movs r5, #0
9431 0020 4563 str r5, [r0, #52]
5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9432 .loc 1 5383 5 is_stmt 1 view .LVU3210
9433 0022 0221 movs r1, #2
9434 0024 FFF7FEFF bl I2C_Disable_IRQ
9435 .LVL613:
5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9436 .loc 1 5386 5 view .LVU3211
5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9437 .loc 1 5386 5 view .LVU3212
9438 0028 84F84050 strb r5, [r4, #64]
5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9439 .loc 1 5386 5 view .LVU3213
5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9440 .loc 1 5392 5 view .LVU3214
9441 002c 2046 mov r0, r4
9442 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
9443 .LVL614:
9444 .L594:
5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 336
9445 .loc 1 5395 1 is_stmt 0 view .LVU3215
9446 0032 38BD pop {r3, r4, r5, pc}
9447 .LVL615:
9448 .L598:
5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9449 .loc 1 5358 5 is_stmt 1 view .LVU3216
5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9450 .loc 1 5358 25 is_stmt 0 view .LVU3217
9451 0034 2023 movs r3, #32
9452 0036 80F84130 strb r3, [r0, #65]
5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9453 .loc 1 5359 5 is_stmt 1 view .LVU3218
5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
9454 .loc 1 5359 25 is_stmt 0 view .LVU3219
9455 003a 1123 movs r3, #17
9456 003c 0363 str r3, [r0, #48]
5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9457 .loc 1 5360 5 is_stmt 1 view .LVU3220
5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9458 .loc 1 5360 25 is_stmt 0 view .LVU3221
9459 003e 0025 movs r5, #0
9460 0040 4563 str r5, [r0, #52]
5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9461 .loc 1 5363 5 is_stmt 1 view .LVU3222
9462 0042 0121 movs r1, #1
9463 0044 FFF7FEFF bl I2C_Disable_IRQ
9464 .LVL616:
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9465 .loc 1 5366 5 view .LVU3223
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9466 .loc 1 5366 5 view .LVU3224
9467 0048 84F84050 strb r5, [r4, #64]
5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9468 .loc 1 5366 5 view .LVU3225
5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9469 .loc 1 5372 5 view .LVU3226
9470 004c 2046 mov r0, r4
9471 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
9472 .LVL617:
9473 0052 EEE7 b .L594
9474 .cfi_endproc
9475 .LFE197:
9477 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
9478 .align 1
9479 .weak HAL_I2C_SlaveTxCpltCallback
9480 .syntax unified
9481 .thumb
9482 .thumb_func
9483 .fpu fpv5-d16
9485 HAL_I2C_SlaveTxCpltCallback:
9486 .LVL618:
9487 .LFB179:
4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9488 .loc 1 4412 1 view -0
9489 .cfi_startproc
9490 @ args = 0, pretend = 0, frame = 0
9491 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccEimIdZ.s page 337
9492 @ link register save eliminated.
4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9493 .loc 1 4414 3 view .LVU3228
4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9494 .loc 1 4419 1 is_stmt 0 view .LVU3229
9495 0000 7047 bx lr
9496 .cfi_endproc
9497 .LFE179:
9499 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
9500 .align 1
9501 .weak HAL_I2C_SlaveRxCpltCallback
9502 .syntax unified
9503 .thumb
9504 .thumb_func
9505 .fpu fpv5-d16
9507 HAL_I2C_SlaveRxCpltCallback:
9508 .LVL619:
9509 .LFB180:
4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9510 .loc 1 4428 1 is_stmt 1 view -0
9511 .cfi_startproc
9512 @ args = 0, pretend = 0, frame = 0
9513 @ frame_needed = 0, uses_anonymous_args = 0
9514 @ link register save eliminated.
4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9515 .loc 1 4430 3 view .LVU3231
4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9516 .loc 1 4435 1 is_stmt 0 view .LVU3232
9517 0000 7047 bx lr
9518 .cfi_endproc
9519 .LFE180:
9521 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
9522 .align 1
9523 .syntax unified
9524 .thumb
9525 .thumb_func
9526 .fpu fpv5-d16
9528 I2C_ITSlaveSeqCplt:
9529 .LVL620:
9530 .LFB198:
5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
9531 .loc 1 5403 1 is_stmt 1 view -0
9532 .cfi_startproc
9533 @ args = 0, pretend = 0, frame = 0
9534 @ frame_needed = 0, uses_anonymous_args = 0
5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
9535 .loc 1 5403 1 is_stmt 0 view .LVU3234
9536 0000 10B5 push {r4, lr}
9537 .LCFI113:
9538 .cfi_def_cfa_offset 8
9539 .cfi_offset 4, -8
9540 .cfi_offset 14, -4
9541 0002 0446 mov r4, r0
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9542 .loc 1 5404 3 is_stmt 1 view .LVU3235
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9543 .loc 1 5404 26 is_stmt 0 view .LVU3236
ARM GAS /tmp/ccEimIdZ.s page 338
9544 0004 0368 ldr r3, [r0]
5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9545 .loc 1 5404 12 view .LVU3237
9546 0006 1A68 ldr r2, [r3]
9547 .LVL621:
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9548 .loc 1 5407 3 is_stmt 1 view .LVU3238
5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9549 .loc 1 5407 14 is_stmt 0 view .LVU3239
9550 0008 0021 movs r1, #0
9551 000a 80F84210 strb r1, [r0, #66]
5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9552 .loc 1 5410 3 is_stmt 1 view .LVU3240
5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9553 .loc 1 5410 6 is_stmt 0 view .LVU3241
9554 000e 12F4804F tst r2, #16384
9555 0012 0ED0 beq .L602
5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9556 .loc 1 5413 5 is_stmt 1 view .LVU3242
5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9557 .loc 1 5413 25 is_stmt 0 view .LVU3243
9558 0014 1A68 ldr r2, [r3]
9559 .LVL622:
5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9560 .loc 1 5413 25 view .LVU3244
9561 0016 22F48042 bic r2, r2, #16384
9562 001a 1A60 str r2, [r3]
9563 .L603:
5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9564 .loc 1 5423 3 is_stmt 1 view .LVU3245
5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9565 .loc 1 5425 3 view .LVU3246
5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9566 .loc 1 5425 11 is_stmt 0 view .LVU3247
9567 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9568 0020 DBB2 uxtb r3, r3
5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9569 .loc 1 5425 6 view .LVU3248
9570 0022 292B cmp r3, #41
9571 0024 0DD0 beq .L607
5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9572 .loc 1 5445 8 is_stmt 1 view .LVU3249
5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9573 .loc 1 5445 16 is_stmt 0 view .LVU3250
9574 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9575 002a DBB2 uxtb r3, r3
5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9576 .loc 1 5445 11 view .LVU3251
9577 002c 2A2B cmp r3, #42
9578 002e 18D0 beq .L608
9579 .LVL623:
9580 .L601:
5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9581 .loc 1 5468 1 view .LVU3252
9582 0030 10BD pop {r4, pc}
9583 .LVL624:
9584 .L602:
ARM GAS /tmp/ccEimIdZ.s page 339
5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9585 .loc 1 5415 8 is_stmt 1 view .LVU3253
5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9586 .loc 1 5415 11 is_stmt 0 view .LVU3254
9587 0032 12F4004F tst r2, #32768
9588 0036 F1D0 beq .L603
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9589 .loc 1 5418 5 is_stmt 1 view .LVU3255
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9590 .loc 1 5418 25 is_stmt 0 view .LVU3256
9591 0038 1A68 ldr r2, [r3]
9592 .LVL625:
5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9593 .loc 1 5418 25 view .LVU3257
9594 003a 22F40042 bic r2, r2, #32768
9595 003e 1A60 str r2, [r3]
9596 0040 ECE7 b .L603
9597 .L607:
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
9598 .loc 1 5428 5 is_stmt 1 view .LVU3258
5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
9599 .loc 1 5428 25 is_stmt 0 view .LVU3259
9600 0042 2823 movs r3, #40
9601 0044 84F84130 strb r3, [r4, #65]
5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9602 .loc 1 5429 5 is_stmt 1 view .LVU3260
5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9603 .loc 1 5429 25 is_stmt 0 view .LVU3261
9604 0048 2123 movs r3, #33
9605 004a 2363 str r3, [r4, #48]
5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9606 .loc 1 5432 5 is_stmt 1 view .LVU3262
9607 004c 0121 movs r1, #1
9608 004e 2046 mov r0, r4
9609 .LVL626:
5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9610 .loc 1 5432 5 is_stmt 0 view .LVU3263
9611 0050 FFF7FEFF bl I2C_Disable_IRQ
9612 .LVL627:
5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9613 .loc 1 5435 5 is_stmt 1 view .LVU3264
5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9614 .loc 1 5435 5 view .LVU3265
9615 0054 0023 movs r3, #0
9616 0056 84F84030 strb r3, [r4, #64]
5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9617 .loc 1 5435 5 view .LVU3266
5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9618 .loc 1 5441 5 view .LVU3267
9619 005a 2046 mov r0, r4
9620 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
9621 .LVL628:
9622 0060 E6E7 b .L601
9623 .LVL629:
9624 .L608:
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
9625 .loc 1 5448 5 view .LVU3268
ARM GAS /tmp/ccEimIdZ.s page 340
5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
9626 .loc 1 5448 25 is_stmt 0 view .LVU3269
9627 0062 2823 movs r3, #40
9628 0064 84F84130 strb r3, [r4, #65]
5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9629 .loc 1 5449 5 is_stmt 1 view .LVU3270
5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9630 .loc 1 5449 25 is_stmt 0 view .LVU3271
9631 0068 2223 movs r3, #34
9632 006a 2363 str r3, [r4, #48]
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9633 .loc 1 5452 5 is_stmt 1 view .LVU3272
9634 006c 0221 movs r1, #2
9635 006e 2046 mov r0, r4
9636 .LVL630:
5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9637 .loc 1 5452 5 is_stmt 0 view .LVU3273
9638 0070 FFF7FEFF bl I2C_Disable_IRQ
9639 .LVL631:
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9640 .loc 1 5455 5 is_stmt 1 view .LVU3274
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9641 .loc 1 5455 5 view .LVU3275
9642 0074 0023 movs r3, #0
9643 0076 84F84030 strb r3, [r4, #64]
5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9644 .loc 1 5455 5 view .LVU3276
5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9645 .loc 1 5461 5 view .LVU3277
9646 007a 2046 mov r0, r4
9647 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
9648 .LVL632:
5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9649 .loc 1 5467 3 view .LVU3278
5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9650 .loc 1 5468 1 is_stmt 0 view .LVU3279
9651 0080 D6E7 b .L601
9652 .cfi_endproc
9653 .LFE198:
9655 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
9656 .align 1
9657 .syntax unified
9658 .thumb
9659 .thumb_func
9660 .fpu fpv5-d16
9662 I2C_DMASlaveTransmitCplt:
9663 .LVL633:
9664 .LFB206:
6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
9665 .loc 1 6047 1 is_stmt 1 view -0
9666 .cfi_startproc
9667 @ args = 0, pretend = 0, frame = 0
9668 @ frame_needed = 0, uses_anonymous_args = 0
6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
9669 .loc 1 6047 1 is_stmt 0 view .LVU3281
9670 0000 08B5 push {r3, lr}
9671 .LCFI114:
ARM GAS /tmp/ccEimIdZ.s page 341
9672 .cfi_def_cfa_offset 8
9673 .cfi_offset 3, -8
9674 .cfi_offset 14, -4
6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9675 .loc 1 6048 3 is_stmt 1 view .LVU3282
6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9676 .loc 1 6048 22 is_stmt 0 view .LVU3283
9677 0002 806B ldr r0, [r0, #56]
9678 .LVL634:
6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9679 .loc 1 6049 3 is_stmt 1 view .LVU3284
6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9680 .loc 1 6049 12 is_stmt 0 view .LVU3285
9681 0004 C36A ldr r3, [r0, #44]
9682 .LVL635:
6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9683 .loc 1 6051 3 is_stmt 1 view .LVU3286
6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9684 .loc 1 6051 6 is_stmt 0 view .LVU3287
9685 0006 002B cmp r3, #0
9686 0008 18BF it ne
9687 000a B3F1807F cmpne r3, #16777216
9688 000e 00D0 beq .L612
9689 .LVL636:
9690 .L609:
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9691 .loc 1 6066 1 view .LVU3288
9692 0010 08BD pop {r3, pc}
9693 .LVL637:
9694 .L612:
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9695 .loc 1 6054 5 is_stmt 1 view .LVU3289
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9696 .loc 1 6054 9 is_stmt 0 view .LVU3290
9697 0012 0268 ldr r2, [r0]
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9698 .loc 1 6054 25 view .LVU3291
9699 0014 1368 ldr r3, [r2]
9700 .LVL638:
6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9701 .loc 1 6054 25 view .LVU3292
9702 0016 23F48043 bic r3, r3, #16384
9703 001a 1360 str r3, [r2]
6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9704 .loc 1 6058 5 is_stmt 1 view .LVU3293
9705 001c FFF7FEFF bl I2C_ITSlaveSeqCplt
9706 .LVL639:
6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9707 .loc 1 6065 3 view .LVU3294
6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9708 .loc 1 6066 1 is_stmt 0 view .LVU3295
9709 0020 F6E7 b .L609
9710 .cfi_endproc
9711 .LFE206:
9713 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
9714 .align 1
9715 .syntax unified
ARM GAS /tmp/ccEimIdZ.s page 342
9716 .thumb
9717 .thumb_func
9718 .fpu fpv5-d16
9720 I2C_DMASlaveReceiveCplt:
9721 .LVL640:
9722 .LFB208:
6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
9723 .loc 1 6122 1 is_stmt 1 view -0
9724 .cfi_startproc
9725 @ args = 0, pretend = 0, frame = 0
9726 @ frame_needed = 0, uses_anonymous_args = 0
6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
9727 .loc 1 6122 1 is_stmt 0 view .LVU3297
9728 0000 10B5 push {r4, lr}
9729 .LCFI115:
9730 .cfi_def_cfa_offset 8
9731 .cfi_offset 4, -8
9732 .cfi_offset 14, -4
6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9733 .loc 1 6123 3 is_stmt 1 view .LVU3298
6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9734 .loc 1 6123 22 is_stmt 0 view .LVU3299
9735 0002 806B ldr r0, [r0, #56]
9736 .LVL641:
6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9737 .loc 1 6124 3 is_stmt 1 view .LVU3300
6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9738 .loc 1 6124 12 is_stmt 0 view .LVU3301
9739 0004 C46A ldr r4, [r0, #44]
9740 .LVL642:
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9741 .loc 1 6126 3 is_stmt 1 view .LVU3302
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9742 .loc 1 6126 8 is_stmt 0 view .LVU3303
9743 0006 C36B ldr r3, [r0, #60]
9744 0008 1B68 ldr r3, [r3]
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9745 .loc 1 6126 44 view .LVU3304
9746 000a 2349 ldr r1, .L620
9747 000c 234A ldr r2, .L620+4
9748 000e 9342 cmp r3, r2
9749 0010 18BF it ne
9750 0012 8B42 cmpne r3, r1
9751 0014 2FD0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9752 .loc 1 6126 8 discriminator 2 view .LVU3305
9753 0016 1832 adds r2, r2, #24
9754 0018 9342 cmp r3, r2
9755 001a 2CD0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9756 .loc 1 6126 8 discriminator 4 view .LVU3306
9757 001c 1832 adds r2, r2, #24
9758 001e 9342 cmp r3, r2
9759 0020 29D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9760 .loc 1 6126 8 discriminator 6 view .LVU3307
9761 0022 1832 adds r2, r2, #24
ARM GAS /tmp/ccEimIdZ.s page 343
9762 0024 9342 cmp r3, r2
9763 0026 26D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9764 .loc 1 6126 8 discriminator 8 view .LVU3308
9765 0028 1832 adds r2, r2, #24
9766 002a 9342 cmp r3, r2
9767 002c 23D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9768 .loc 1 6126 8 discriminator 10 view .LVU3309
9769 002e 1832 adds r2, r2, #24
9770 0030 9342 cmp r3, r2
9771 0032 20D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9772 .loc 1 6126 8 discriminator 12 view .LVU3310
9773 0034 1832 adds r2, r2, #24
9774 0036 9342 cmp r3, r2
9775 0038 1DD0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9776 .loc 1 6126 8 discriminator 14 view .LVU3311
9777 003a 02F55672 add r2, r2, #856
9778 003e 9342 cmp r3, r2
9779 0040 19D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9780 .loc 1 6126 8 discriminator 16 view .LVU3312
9781 0042 1832 adds r2, r2, #24
9782 0044 9342 cmp r3, r2
9783 0046 16D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9784 .loc 1 6126 8 discriminator 18 view .LVU3313
9785 0048 1832 adds r2, r2, #24
9786 004a 9342 cmp r3, r2
9787 004c 13D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9788 .loc 1 6126 8 discriminator 20 view .LVU3314
9789 004e 1832 adds r2, r2, #24
9790 0050 9342 cmp r3, r2
9791 0052 10D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9792 .loc 1 6126 8 discriminator 22 view .LVU3315
9793 0054 1832 adds r2, r2, #24
9794 0056 9342 cmp r3, r2
9795 0058 0DD0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9796 .loc 1 6126 8 discriminator 24 view .LVU3316
9797 005a 1832 adds r2, r2, #24
9798 005c 9342 cmp r3, r2
9799 005e 0AD0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9800 .loc 1 6126 8 discriminator 26 view .LVU3317
9801 0060 1832 adds r2, r2, #24
9802 0062 9342 cmp r3, r2
9803 0064 07D0 beq .L614
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9804 .loc 1 6126 8 discriminator 28 view .LVU3318
9805 0066 1832 adds r2, r2, #24
9806 0068 9342 cmp r3, r2
9807 006a 04D0 beq .L614
ARM GAS /tmp/ccEimIdZ.s page 344
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9808 .loc 1 6126 8 discriminator 30 view .LVU3319
9809 006c 5B68 ldr r3, [r3, #4]
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9810 .loc 1 6126 44 discriminator 30 view .LVU3320
9811 006e B3FA83F3 clz r3, r3
9812 0072 5B09 lsrs r3, r3, #5
9813 0074 03E0 b .L616
9814 .L614:
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9815 .loc 1 6126 8 discriminator 29 view .LVU3321
9816 0076 5B68 ldr r3, [r3, #4]
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9817 .loc 1 6126 44 discriminator 29 view .LVU3322
9818 0078 B3FA83F3 clz r3, r3
9819 007c 5B09 lsrs r3, r3, #5
9820 .L616:
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9821 .loc 1 6126 6 discriminator 32 view .LVU3323
9822 007e 13B1 cbz r3, .L613
6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9823 .loc 1 6126 51 discriminator 33 view .LVU3324
9824 0080 14F5803F cmn r4, #65536
9825 0084 00D1 bne .L619
9826 .LVL643:
9827 .L613:
6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9828 .loc 1 6141 1 view .LVU3325
9829 0086 10BD pop {r4, pc}
9830 .LVL644:
9831 .L619:
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9832 .loc 1 6130 5 is_stmt 1 view .LVU3326
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9833 .loc 1 6130 9 is_stmt 0 view .LVU3327
9834 0088 0268 ldr r2, [r0]
6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9835 .loc 1 6130 25 view .LVU3328
9836 008a 1368 ldr r3, [r2]
9837 008c 23F40043 bic r3, r3, #32768
9838 0090 1360 str r3, [r2]
6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9839 .loc 1 6133 5 is_stmt 1 view .LVU3329
9840 0092 FFF7FEFF bl I2C_ITSlaveSeqCplt
9841 .LVL645:
6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9842 .loc 1 6140 3 view .LVU3330
6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9843 .loc 1 6141 1 is_stmt 0 view .LVU3331
9844 0096 F6E7 b .L613
9845 .L621:
9846 .align 2
9847 .L620:
9848 0098 10000240 .word 1073872912
9849 009c 28000240 .word 1073872936
9850 .cfi_endproc
9851 .LFE208:
ARM GAS /tmp/ccEimIdZ.s page 345
9853 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
9854 .align 1
9855 .weak HAL_I2C_AddrCallback
9856 .syntax unified
9857 .thumb
9858 .thumb_func
9859 .fpu fpv5-d16
9861 HAL_I2C_AddrCallback:
9862 .LVL646:
9863 .LFB181:
4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9864 .loc 1 4446 1 is_stmt 1 view -0
9865 .cfi_startproc
9866 @ args = 0, pretend = 0, frame = 0
9867 @ frame_needed = 0, uses_anonymous_args = 0
9868 @ link register save eliminated.
4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection);
9869 .loc 1 4448 3 view .LVU3333
4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode);
9870 .loc 1 4449 3 view .LVU3334
4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9871 .loc 1 4450 3 view .LVU3335
4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9872 .loc 1 4455 1 is_stmt 0 view .LVU3336
9873 0000 7047 bx lr
9874 .cfi_endproc
9875 .LFE181:
9877 .section .text.I2C_ITAddrCplt,"ax",%progbits
9878 .align 1
9879 .syntax unified
9880 .thumb
9881 .thumb_func
9882 .fpu fpv5-d16
9884 I2C_ITAddrCplt:
9885 .LVL647:
9886 .LFB196:
5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
9887 .loc 1 5255 1 is_stmt 1 view -0
9888 .cfi_startproc
9889 @ args = 0, pretend = 0, frame = 0
9890 @ frame_needed = 0, uses_anonymous_args = 0
5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection;
9891 .loc 1 5255 1 is_stmt 0 view .LVU3338
9892 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
9893 .LCFI116:
9894 .cfi_def_cfa_offset 24
9895 .cfi_offset 3, -24
9896 .cfi_offset 4, -20
9897 .cfi_offset 5, -16
9898 .cfi_offset 6, -12
9899 .cfi_offset 7, -8
9900 .cfi_offset 14, -4
9901 0002 0446 mov r4, r0
5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode;
9902 .loc 1 5256 3 is_stmt 1 view .LVU3339
5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code;
9903 .loc 1 5257 3 view .LVU3340
ARM GAS /tmp/ccEimIdZ.s page 346
5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code;
9904 .loc 1 5258 3 view .LVU3341
5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9905 .loc 1 5259 3 view .LVU3342
5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9906 .loc 1 5262 3 view .LVU3343
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9907 .loc 1 5265 3 view .LVU3344
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9908 .loc 1 5265 22 is_stmt 0 view .LVU3345
9909 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9910 .loc 1 5265 6 view .LVU3346
9911 0008 03F02803 and r3, r3, #40
9912 000c 282B cmp r3, #40
9913 000e 06D0 beq .L629
5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9914 .loc 1 5337 5 is_stmt 1 view .LVU3347
9915 0010 0368 ldr r3, [r0]
9916 0012 0822 movs r2, #8
9917 0014 DA61 str r2, [r3, #28]
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9918 .loc 1 5340 5 view .LVU3348
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9919 .loc 1 5340 5 view .LVU3349
9920 0016 0023 movs r3, #0
9921 0018 80F84030 strb r3, [r0, #64]
5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
9922 .loc 1 5340 5 view .LVU3350
9923 .LVL648:
9924 .L623:
5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9925 .loc 1 5342 1 is_stmt 0 view .LVU3351
9926 001c F8BD pop {r3, r4, r5, r6, r7, pc}
9927 .LVL649:
9928 .L629:
5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
9929 .loc 1 5267 5 is_stmt 1 view .LVU3352
5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
9930 .loc 1 5267 25 is_stmt 0 view .LVU3353
9931 001e 0368 ldr r3, [r0]
9932 0020 9E69 ldr r6, [r3, #24]
5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
9933 .loc 1 5267 23 view .LVU3354
9934 0022 C6F30046 ubfx r6, r6, #16, #1
9935 .LVL650:
5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
9936 .loc 1 5268 5 is_stmt 1 view .LVU3355
5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
9937 .loc 1 5268 25 is_stmt 0 view .LVU3356
9938 0026 9A69 ldr r2, [r3, #24]
9939 0028 120C lsrs r2, r2, #16
5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
9940 .loc 1 5268 23 view .LVU3357
9941 002a 02F0FE05 and r5, r2, #254
9942 .LVL651:
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
ARM GAS /tmp/ccEimIdZ.s page 347
9943 .loc 1 5269 5 is_stmt 1 view .LVU3358
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
9944 .loc 1 5269 25 is_stmt 0 view .LVU3359
9945 002e 9A68 ldr r2, [r3, #8]
5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
9946 .loc 1 5269 23 view .LVU3360
9947 0030 C2F30902 ubfx r2, r2, #0, #10
9948 .LVL652:
5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9949 .loc 1 5270 5 is_stmt 1 view .LVU3361
5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9950 .loc 1 5270 25 is_stmt 0 view .LVU3362
9951 0034 DF68 ldr r7, [r3, #12]
5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9952 .loc 1 5270 23 view .LVU3363
9953 0036 07F0FE07 and r7, r7, #254
9954 .LVL653:
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9955 .loc 1 5273 5 is_stmt 1 view .LVU3364
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9956 .loc 1 5273 19 is_stmt 0 view .LVU3365
9957 003a C168 ldr r1, [r0, #12]
9958 .LVL654:
5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9959 .loc 1 5273 8 view .LVU3366
9960 003c 0229 cmp r1, #2
9961 003e 22D1 bne .L625
5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9962 .loc 1 5275 7 is_stmt 1 view .LVU3367
5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9963 .loc 1 5275 43 is_stmt 0 view .LVU3368
9964 0040 85EAD215 eor r5, r5, r2, lsr #7
9965 .LVL655:
5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9966 .loc 1 5275 10 view .LVU3369
9967 0044 15F0060F tst r5, #6
9968 0048 10D1 bne .L626
5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++;
9969 .loc 1 5277 9 is_stmt 1 view .LVU3370
9970 .LVL656:
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
9971 .loc 1 5278 9 view .LVU3371
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
9972 .loc 1 5278 13 is_stmt 0 view .LVU3372
9973 004a 816C ldr r1, [r0, #72]
5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
9974 .loc 1 5278 29 view .LVU3373
9975 004c 0131 adds r1, r1, #1
9976 004e 8164 str r1, [r0, #72]
5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9977 .loc 1 5279 9 is_stmt 1 view .LVU3374
5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9978 .loc 1 5279 17 is_stmt 0 view .LVU3375
9979 0050 816C ldr r1, [r0, #72]
5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
9980 .loc 1 5279 12 view .LVU3376
9981 0052 0229 cmp r1, #2
ARM GAS /tmp/ccEimIdZ.s page 348
9982 0054 E2D1 bne .L623
5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9983 .loc 1 5282 11 is_stmt 1 view .LVU3377
5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9984 .loc 1 5282 32 is_stmt 0 view .LVU3378
9985 0056 0021 movs r1, #0
9986 0058 8164 str r1, [r0, #72]
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9987 .loc 1 5285 11 is_stmt 1 view .LVU3379
9988 005a 0820 movs r0, #8
9989 .LVL657:
5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9990 .loc 1 5285 11 is_stmt 0 view .LVU3380
9991 005c D861 str r0, [r3, #28]
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9992 .loc 1 5288 11 is_stmt 1 view .LVU3381
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9993 .loc 1 5288 11 view .LVU3382
9994 005e 84F84010 strb r1, [r4, #64]
5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
9995 .loc 1 5288 11 view .LVU3383
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9996 .loc 1 5294 11 view .LVU3384
9997 0062 3146 mov r1, r6
9998 0064 2046 mov r0, r4
9999 0066 FFF7FEFF bl HAL_I2C_AddrCallback
10000 .LVL658:
5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10001 .loc 1 5294 11 is_stmt 0 view .LVU3385
10002 006a D7E7 b .L623
10003 .LVL659:
10004 .L626:
5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10005 .loc 1 5300 9 is_stmt 1 view .LVU3386
5303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10006 .loc 1 5303 9 view .LVU3387
10007 006c 4FF40041 mov r1, #32768
10008 0070 FFF7FEFF bl I2C_Disable_IRQ
10009 .LVL660:
5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10010 .loc 1 5306 9 view .LVU3388
5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10011 .loc 1 5306 9 view .LVU3389
10012 0074 0023 movs r3, #0
10013 0076 84F84030 strb r3, [r4, #64]
5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10014 .loc 1 5306 9 view .LVU3390
5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10015 .loc 1 5312 9 view .LVU3391
10016 007a 3A46 mov r2, r7
10017 007c 3146 mov r1, r6
10018 007e 2046 mov r0, r4
10019 0080 FFF7FEFF bl HAL_I2C_AddrCallback
10020 .LVL661:
10021 0084 CAE7 b .L623
10022 .LVL662:
10023 .L625:
ARM GAS /tmp/ccEimIdZ.s page 349
5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10024 .loc 1 5320 7 view .LVU3392
10025 0086 4FF40041 mov r1, #32768
10026 008a FFF7FEFF bl I2C_Disable_IRQ
10027 .LVL663:
5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10028 .loc 1 5323 7 view .LVU3393
5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10029 .loc 1 5323 7 view .LVU3394
10030 008e 0023 movs r3, #0
10031 0090 84F84030 strb r3, [r4, #64]
5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10032 .loc 1 5323 7 view .LVU3395
5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10033 .loc 1 5329 7 view .LVU3396
10034 0094 2A46 mov r2, r5
10035 0096 3146 mov r1, r6
10036 0098 2046 mov r0, r4
10037 009a FFF7FEFF bl HAL_I2C_AddrCallback
10038 .LVL664:
10039 009e BDE7 b .L623
10040 .cfi_endproc
10041 .LFE196:
10043 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
10044 .align 1
10045 .weak HAL_I2C_ListenCpltCallback
10046 .syntax unified
10047 .thumb
10048 .thumb_func
10049 .fpu fpv5-d16
10051 HAL_I2C_ListenCpltCallback:
10052 .LVL665:
10053 .LFB182:
4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10054 .loc 1 4464 1 view -0
10055 .cfi_startproc
10056 @ args = 0, pretend = 0, frame = 0
10057 @ frame_needed = 0, uses_anonymous_args = 0
10058 @ link register save eliminated.
4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10059 .loc 1 4466 3 view .LVU3398
4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10060 .loc 1 4471 1 is_stmt 0 view .LVU3399
10061 0000 7047 bx lr
10062 .cfi_endproc
10063 .LFE182:
10065 .section .text.I2C_ITListenCplt,"ax",%progbits
10066 .align 1
10067 .syntax unified
10068 .thumb
10069 .thumb_func
10070 .fpu fpv5-d16
10072 I2C_ITListenCplt:
10073 .LVL666:
10074 .LFB201:
5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
10075 .loc 1 5779 1 is_stmt 1 view -0
ARM GAS /tmp/ccEimIdZ.s page 350
10076 .cfi_startproc
10077 @ args = 0, pretend = 0, frame = 0
10078 @ frame_needed = 0, uses_anonymous_args = 0
5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */
10079 .loc 1 5779 1 is_stmt 0 view .LVU3401
10080 0000 10B5 push {r4, lr}
10081 .LCFI117:
10082 .cfi_def_cfa_offset 8
10083 .cfi_offset 4, -8
10084 .cfi_offset 14, -4
10085 0002 0446 mov r4, r0
5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10086 .loc 1 5781 3 is_stmt 1 view .LVU3402
5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10087 .loc 1 5781 21 is_stmt 0 view .LVU3403
10088 0004 174B ldr r3, .L634
10089 0006 C362 str r3, [r0, #44]
5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10090 .loc 1 5782 3 is_stmt 1 view .LVU3404
5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10091 .loc 1 5782 23 is_stmt 0 view .LVU3405
10092 0008 0023 movs r3, #0
10093 000a 0363 str r3, [r0, #48]
5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10094 .loc 1 5783 3 is_stmt 1 view .LVU3406
5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10095 .loc 1 5783 15 is_stmt 0 view .LVU3407
10096 000c 2022 movs r2, #32
10097 000e 80F84120 strb r2, [r0, #65]
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10098 .loc 1 5784 3 is_stmt 1 view .LVU3408
5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10099 .loc 1 5784 14 is_stmt 0 view .LVU3409
10100 0012 80F84230 strb r3, [r0, #66]
5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10101 .loc 1 5785 3 is_stmt 1 view .LVU3410
5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10102 .loc 1 5785 17 is_stmt 0 view .LVU3411
10103 0016 4363 str r3, [r0, #52]
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10104 .loc 1 5788 3 is_stmt 1 view .LVU3412
5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10105 .loc 1 5788 6 is_stmt 0 view .LVU3413
10106 0018 11F0040F tst r1, #4
10107 001c 13D0 beq .L632
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10108 .loc 1 5791 5 is_stmt 1 view .LVU3414
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10109 .loc 1 5791 36 is_stmt 0 view .LVU3415
10110 001e 0368 ldr r3, [r0]
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10111 .loc 1 5791 46 view .LVU3416
10112 0020 5A6A ldr r2, [r3, #36]
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10113 .loc 1 5791 10 view .LVU3417
10114 0022 436A ldr r3, [r0, #36]
5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 351
10115 .loc 1 5791 21 view .LVU3418
10116 0024 1A70 strb r2, [r3]
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10117 .loc 1 5794 5 is_stmt 1 view .LVU3419
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10118 .loc 1 5794 9 is_stmt 0 view .LVU3420
10119 0026 436A ldr r3, [r0, #36]
5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10120 .loc 1 5794 19 view .LVU3421
10121 0028 0133 adds r3, r3, #1
10122 002a 4362 str r3, [r0, #36]
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10123 .loc 1 5796 5 is_stmt 1 view .LVU3422
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10124 .loc 1 5796 14 is_stmt 0 view .LVU3423
10125 002c 038D ldrh r3, [r0, #40]
5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10126 .loc 1 5796 8 view .LVU3424
10127 002e 53B1 cbz r3, .L632
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10128 .loc 1 5798 7 is_stmt 1 view .LVU3425
5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10129 .loc 1 5798 21 is_stmt 0 view .LVU3426
10130 0030 013B subs r3, r3, #1
10131 0032 0385 strh r3, [r0, #40] @ movhi
5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10132 .loc 1 5799 7 is_stmt 1 view .LVU3427
5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10133 .loc 1 5799 11 is_stmt 0 view .LVU3428
10134 0034 438D ldrh r3, [r0, #42]
10135 0036 9BB2 uxth r3, r3
5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10136 .loc 1 5799 22 view .LVU3429
10137 0038 013B subs r3, r3, #1
10138 003a 9BB2 uxth r3, r3
10139 003c 4385 strh r3, [r0, #42] @ movhi
5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10140 .loc 1 5802 7 is_stmt 1 view .LVU3430
5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10141 .loc 1 5802 23 is_stmt 0 view .LVU3431
10142 003e 436C ldr r3, [r0, #68]
10143 0040 43F00403 orr r3, r3, #4
10144 0044 4364 str r3, [r0, #68]
10145 .L632:
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10146 .loc 1 5807 3 is_stmt 1 view .LVU3432
10147 0046 48F20301 movw r1, #32771
10148 .LVL667:
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10149 .loc 1 5807 3 is_stmt 0 view .LVU3433
10150 004a 2046 mov r0, r4
10151 .LVL668:
5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10152 .loc 1 5807 3 view .LVU3434
10153 004c FFF7FEFF bl I2C_Disable_IRQ
10154 .LVL669:
5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 352
10155 .loc 1 5810 3 is_stmt 1 view .LVU3435
10156 0050 2368 ldr r3, [r4]
10157 0052 1022 movs r2, #16
10158 0054 DA61 str r2, [r3, #28]
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10159 .loc 1 5813 3 view .LVU3436
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10160 .loc 1 5813 3 view .LVU3437
10161 0056 0023 movs r3, #0
10162 0058 84F84030 strb r3, [r4, #64]
5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10163 .loc 1 5813 3 view .LVU3438
5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10164 .loc 1 5819 3 view .LVU3439
10165 005c 2046 mov r0, r4
10166 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback
10167 .LVL670:
5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10168 .loc 1 5821 1 is_stmt 0 view .LVU3440
10169 0062 10BD pop {r4, pc}
10170 .LVL671:
10171 .L635:
5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10172 .loc 1 5821 1 view .LVU3441
10173 .align 2
10174 .L634:
10175 0064 0000FFFF .word -65536
10176 .cfi_endproc
10177 .LFE201:
10179 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
10180 .align 1
10181 .weak HAL_I2C_MemTxCpltCallback
10182 .syntax unified
10183 .thumb
10184 .thumb_func
10185 .fpu fpv5-d16
10187 HAL_I2C_MemTxCpltCallback:
10188 .LVL672:
10189 .LFB183:
4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10190 .loc 1 4480 1 is_stmt 1 view -0
10191 .cfi_startproc
10192 @ args = 0, pretend = 0, frame = 0
10193 @ frame_needed = 0, uses_anonymous_args = 0
10194 @ link register save eliminated.
4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10195 .loc 1 4482 3 view .LVU3443
4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10196 .loc 1 4487 1 is_stmt 0 view .LVU3444
10197 0000 7047 bx lr
10198 .cfi_endproc
10199 .LFE183:
10201 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
10202 .align 1
10203 .weak HAL_I2C_MemRxCpltCallback
10204 .syntax unified
10205 .thumb
ARM GAS /tmp/ccEimIdZ.s page 353
10206 .thumb_func
10207 .fpu fpv5-d16
10209 HAL_I2C_MemRxCpltCallback:
10210 .LVL673:
10211 .LFB184:
4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10212 .loc 1 4496 1 is_stmt 1 view -0
10213 .cfi_startproc
10214 @ args = 0, pretend = 0, frame = 0
10215 @ frame_needed = 0, uses_anonymous_args = 0
10216 @ link register save eliminated.
4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10217 .loc 1 4498 3 view .LVU3446
4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10218 .loc 1 4503 1 is_stmt 0 view .LVU3447
10219 0000 7047 bx lr
10220 .cfi_endproc
10221 .LFE184:
10223 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
10224 .align 1
10225 .weak HAL_I2C_ErrorCallback
10226 .syntax unified
10227 .thumb
10228 .thumb_func
10229 .fpu fpv5-d16
10231 HAL_I2C_ErrorCallback:
10232 .LVL674:
10233 .LFB185:
4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10234 .loc 1 4512 1 is_stmt 1 view -0
10235 .cfi_startproc
10236 @ args = 0, pretend = 0, frame = 0
10237 @ frame_needed = 0, uses_anonymous_args = 0
10238 @ link register save eliminated.
4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10239 .loc 1 4514 3 view .LVU3449
4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10240 .loc 1 4519 1 is_stmt 0 view .LVU3450
10241 0000 7047 bx lr
10242 .cfi_endproc
10243 .LFE185:
10245 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
10246 .align 1
10247 .weak HAL_I2C_AbortCpltCallback
10248 .syntax unified
10249 .thumb
10250 .thumb_func
10251 .fpu fpv5-d16
10253 HAL_I2C_AbortCpltCallback:
10254 .LVL675:
10255 .LFB186:
4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10256 .loc 1 4528 1 is_stmt 1 view -0
10257 .cfi_startproc
10258 @ args = 0, pretend = 0, frame = 0
10259 @ frame_needed = 0, uses_anonymous_args = 0
10260 @ link register save eliminated.
ARM GAS /tmp/ccEimIdZ.s page 354
4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10261 .loc 1 4530 3 view .LVU3452
4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10262 .loc 1 4535 1 is_stmt 0 view .LVU3453
10263 0000 7047 bx lr
10264 .cfi_endproc
10265 .LFE186:
10267 .section .text.I2C_TreatErrorCallback,"ax",%progbits
10268 .align 1
10269 .syntax unified
10270 .thumb
10271 .thumb_func
10272 .fpu fpv5-d16
10274 I2C_TreatErrorCallback:
10275 .LVL676:
10276 .LFB203:
5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10277 .loc 1 5940 1 is_stmt 1 view -0
10278 .cfi_startproc
10279 @ args = 0, pretend = 0, frame = 0
10280 @ frame_needed = 0, uses_anonymous_args = 0
5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10281 .loc 1 5940 1 is_stmt 0 view .LVU3455
10282 0000 08B5 push {r3, lr}
10283 .LCFI118:
10284 .cfi_def_cfa_offset 8
10285 .cfi_offset 3, -8
10286 .cfi_offset 14, -4
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10287 .loc 1 5941 3 is_stmt 1 view .LVU3456
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10288 .loc 1 5941 11 is_stmt 0 view .LVU3457
10289 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10290 0006 DBB2 uxtb r3, r3
5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10291 .loc 1 5941 6 view .LVU3458
10292 0008 602B cmp r3, #96
10293 000a 06D0 beq .L644
5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10294 .loc 1 5958 5 is_stmt 1 view .LVU3459
5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10295 .loc 1 5958 25 is_stmt 0 view .LVU3460
10296 000c 0023 movs r3, #0
10297 000e 0363 str r3, [r0, #48]
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10298 .loc 1 5961 5 is_stmt 1 view .LVU3461
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10299 .loc 1 5961 5 view .LVU3462
10300 0010 80F84030 strb r3, [r0, #64]
5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10301 .loc 1 5961 5 view .LVU3463
5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10302 .loc 1 5967 5 view .LVU3464
10303 0014 FFF7FEFF bl HAL_I2C_ErrorCallback
10304 .LVL677:
10305 .L640:
5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 355
10306 .loc 1 5970 1 is_stmt 0 view .LVU3465
10307 0018 08BD pop {r3, pc}
10308 .LVL678:
10309 .L644:
5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10310 .loc 1 5943 5 is_stmt 1 view .LVU3466
5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10311 .loc 1 5943 17 is_stmt 0 view .LVU3467
10312 001a 2023 movs r3, #32
10313 001c 80F84130 strb r3, [r0, #65]
5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10314 .loc 1 5944 5 is_stmt 1 view .LVU3468
5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10315 .loc 1 5944 25 is_stmt 0 view .LVU3469
10316 0020 0023 movs r3, #0
10317 0022 0363 str r3, [r0, #48]
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10318 .loc 1 5947 5 is_stmt 1 view .LVU3470
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10319 .loc 1 5947 5 view .LVU3471
10320 0024 80F84030 strb r3, [r0, #64]
5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10321 .loc 1 5947 5 view .LVU3472
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10322 .loc 1 5953 5 view .LVU3473
10323 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback
10324 .LVL679:
5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10325 .loc 1 5953 5 is_stmt 0 view .LVU3474
10326 002c F4E7 b .L640
10327 .cfi_endproc
10328 .LFE203:
10330 .section .text.I2C_ITError,"ax",%progbits
10331 .align 1
10332 .syntax unified
10333 .thumb
10334 .thumb_func
10335 .fpu fpv5-d16
10337 I2C_ITError:
10338 .LVL680:
10339 .LFB202:
5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10340 .loc 1 5830 1 is_stmt 1 view -0
10341 .cfi_startproc
10342 @ args = 0, pretend = 0, frame = 0
10343 @ frame_needed = 0, uses_anonymous_args = 0
5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10344 .loc 1 5830 1 is_stmt 0 view .LVU3476
10345 0000 10B5 push {r4, lr}
10346 .LCFI119:
10347 .cfi_def_cfa_offset 8
10348 .cfi_offset 4, -8
10349 .cfi_offset 14, -4
10350 0002 0446 mov r4, r0
5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate;
10351 .loc 1 5831 3 is_stmt 1 view .LVU3477
5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate;
ARM GAS /tmp/ccEimIdZ.s page 356
10352 .loc 1 5831 24 is_stmt 0 view .LVU3478
10353 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10354 .LVL681:
5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10355 .loc 1 5832 3 is_stmt 1 view .LVU3479
5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10356 .loc 1 5835 3 view .LVU3480
5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10357 .loc 1 5835 23 is_stmt 0 view .LVU3481
10358 0008 0020 movs r0, #0
10359 .LVL682:
5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10360 .loc 1 5835 23 view .LVU3482
10361 000a 84F84200 strb r0, [r4, #66]
5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10362 .loc 1 5836 3 is_stmt 1 view .LVU3483
5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U;
10363 .loc 1 5836 23 is_stmt 0 view .LVU3484
10364 000e 3B4A ldr r2, .L657
10365 0010 E262 str r2, [r4, #44]
5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10366 .loc 1 5837 3 is_stmt 1 view .LVU3485
5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10367 .loc 1 5837 23 is_stmt 0 view .LVU3486
10368 0012 6085 strh r0, [r4, #42] @ movhi
5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10369 .loc 1 5840 3 is_stmt 1 view .LVU3487
5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10370 .loc 1 5840 19 is_stmt 0 view .LVU3488
10371 0014 626C ldr r2, [r4, #68]
10372 0016 0A43 orrs r2, r2, r1
10373 0018 6264 str r2, [r4, #68]
5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10374 .loc 1 5843 3 is_stmt 1 view .LVU3489
5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10375 .loc 1 5844 50 is_stmt 0 view .LVU3490
10376 001a 283B subs r3, r3, #40
10377 .LVL683:
5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10378 .loc 1 5844 50 view .LVU3491
10379 001c DBB2 uxtb r3, r3
5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10380 .loc 1 5843 6 view .LVU3492
10381 001e 022B cmp r3, #2
10382 0020 2DD8 bhi .L646
5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10383 .loc 1 5848 5 is_stmt 1 view .LVU3493
10384 0022 0321 movs r1, #3
10385 .LVL684:
5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10386 .loc 1 5848 5 is_stmt 0 view .LVU3494
10387 0024 2046 mov r0, r4
10388 0026 FFF7FEFF bl I2C_Disable_IRQ
10389 .LVL685:
5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10390 .loc 1 5851 5 is_stmt 1 view .LVU3495
5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
ARM GAS /tmp/ccEimIdZ.s page 357
10391 .loc 1 5851 25 is_stmt 0 view .LVU3496
10392 002a 2823 movs r3, #40
10393 002c 84F84130 strb r3, [r4, #65]
5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10394 .loc 1 5852 5 is_stmt 1 view .LVU3497
5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10395 .loc 1 5852 25 is_stmt 0 view .LVU3498
10396 0030 334B ldr r3, .L657+4
10397 0032 6363 str r3, [r4, #52]
10398 .L647:
5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || (tmppreviousstat
10399 .loc 1 5870 3 is_stmt 1 view .LVU3499
5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || (tmppreviousstat
10400 .loc 1 5870 20 is_stmt 0 view .LVU3500
10401 0034 236B ldr r3, [r4, #48]
10402 .LVL686:
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10403 .loc 1 5871 3 is_stmt 1 view .LVU3501
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10404 .loc 1 5871 12 is_stmt 0 view .LVU3502
10405 0036 A26B ldr r2, [r4, #56]
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10406 .loc 1 5871 6 view .LVU3503
10407 0038 002A cmp r2, #0
10408 003a 34D0 beq .L649
5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10409 .loc 1 5871 30 discriminator 1 view .LVU3504
10410 003c 212B cmp r3, #33
10411 003e 18BF it ne
10412 0040 112B cmpne r3, #17
10413 0042 30D1 bne .L649
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10414 .loc 1 5873 5 is_stmt 1 view .LVU3505
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10415 .loc 1 5873 14 is_stmt 0 view .LVU3506
10416 0044 2368 ldr r3, [r4]
10417 .LVL687:
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10418 .loc 1 5873 24 view .LVU3507
10419 0046 1A68 ldr r2, [r3]
5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10420 .loc 1 5873 8 view .LVU3508
10421 0048 12F4804F tst r2, #16384
10422 004c 03D0 beq .L650
5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10423 .loc 1 5875 7 is_stmt 1 view .LVU3509
5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10424 .loc 1 5875 27 is_stmt 0 view .LVU3510
10425 004e 1A68 ldr r2, [r3]
10426 0050 22F48042 bic r2, r2, #16384
10427 0054 1A60 str r2, [r3]
10428 .L650:
5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10429 .loc 1 5878 5 is_stmt 1 view .LVU3511
5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10430 .loc 1 5878 9 is_stmt 0 view .LVU3512
10431 0056 A06B ldr r0, [r4, #56]
ARM GAS /tmp/ccEimIdZ.s page 358
10432 0058 FFF7FEFF bl HAL_DMA_GetState
10433 .LVL688:
5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10434 .loc 1 5878 8 view .LVU3513
10435 005c 0128 cmp r0, #1
10436 005e 1ED0 beq .L651
5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10437 .loc 1 5882 7 is_stmt 1 view .LVU3514
5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10438 .loc 1 5882 11 is_stmt 0 view .LVU3515
10439 0060 A36B ldr r3, [r4, #56]
5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10440 .loc 1 5882 39 view .LVU3516
10441 0062 284A ldr r2, .L657+8
10442 0064 1A65 str r2, [r3, #80]
5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10443 .loc 1 5885 7 is_stmt 1 view .LVU3517
5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10444 .loc 1 5885 7 view .LVU3518
10445 0066 0023 movs r3, #0
10446 0068 84F84030 strb r3, [r4, #64]
5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10447 .loc 1 5885 7 view .LVU3519
5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10448 .loc 1 5888 7 view .LVU3520
5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10449 .loc 1 5888 11 is_stmt 0 view .LVU3521
10450 006c A06B ldr r0, [r4, #56]
10451 006e FFF7FEFF bl HAL_DMA_Abort_IT
10452 .LVL689:
5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10453 .loc 1 5888 10 view .LVU3522
10454 0072 0028 cmp r0, #0
10455 0074 40D0 beq .L645
5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10456 .loc 1 5891 9 is_stmt 1 view .LVU3523
5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10457 .loc 1 5891 13 is_stmt 0 view .LVU3524
10458 0076 A06B ldr r0, [r4, #56]
5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10459 .loc 1 5891 21 view .LVU3525
10460 0078 036D ldr r3, [r0, #80]
5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10461 .loc 1 5891 9 view .LVU3526
10462 007a 9847 blx r3
10463 .LVL690:
10464 007c 3CE0 b .L645
10465 .LVL691:
10466 .L646:
5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10467 .loc 1 5857 5 is_stmt 1 view .LVU3527
10468 007e 48F20301 movw r1, #32771
10469 .LVL692:
5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10470 .loc 1 5857 5 is_stmt 0 view .LVU3528
10471 0082 2046 mov r0, r4
10472 0084 FFF7FEFF bl I2C_Disable_IRQ
ARM GAS /tmp/ccEimIdZ.s page 359
10473 .LVL693:
5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10474 .loc 1 5861 5 is_stmt 1 view .LVU3529
5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10475 .loc 1 5861 13 is_stmt 0 view .LVU3530
10476 0088 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10477 008c DBB2 uxtb r3, r3
5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10478 .loc 1 5861 8 view .LVU3531
10479 008e 602B cmp r3, #96
10480 0090 02D0 beq .L648
5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10481 .loc 1 5864 7 is_stmt 1 view .LVU3532
5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10482 .loc 1 5864 27 is_stmt 0 view .LVU3533
10483 0092 2023 movs r3, #32
10484 0094 84F84130 strb r3, [r4, #65]
10485 .L648:
5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10486 .loc 1 5866 5 is_stmt 1 view .LVU3534
5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10487 .loc 1 5866 25 is_stmt 0 view .LVU3535
10488 0098 0023 movs r3, #0
10489 009a 6363 str r3, [r4, #52]
10490 009c CAE7 b .L647
10491 .L651:
5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10492 .loc 1 5896 7 is_stmt 1 view .LVU3536
10493 009e 2046 mov r0, r4
10494 00a0 FFF7FEFF bl I2C_TreatErrorCallback
10495 .LVL694:
10496 00a4 28E0 b .L645
10497 .LVL695:
10498 .L649:
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10499 .loc 1 5900 8 view .LVU3537
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10500 .loc 1 5900 17 is_stmt 0 view .LVU3538
10501 00a6 E26B ldr r2, [r4, #60]
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10502 .loc 1 5900 11 view .LVU3539
10503 00a8 1AB3 cbz r2, .L653
5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10504 .loc 1 5900 35 discriminator 1 view .LVU3540
10505 00aa 222B cmp r3, #34
10506 00ac 18BF it ne
10507 00ae 122B cmpne r3, #18
10508 00b0 1FD1 bne .L653
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10509 .loc 1 5902 5 is_stmt 1 view .LVU3541
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10510 .loc 1 5902 14 is_stmt 0 view .LVU3542
10511 00b2 2368 ldr r3, [r4]
10512 .LVL696:
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10513 .loc 1 5902 24 view .LVU3543
10514 00b4 1A68 ldr r2, [r3]
ARM GAS /tmp/ccEimIdZ.s page 360
5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10515 .loc 1 5902 8 view .LVU3544
10516 00b6 12F4004F tst r2, #32768
10517 00ba 03D0 beq .L654
5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10518 .loc 1 5904 7 is_stmt 1 view .LVU3545
5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10519 .loc 1 5904 27 is_stmt 0 view .LVU3546
10520 00bc 1A68 ldr r2, [r3]
10521 00be 22F40042 bic r2, r2, #32768
10522 00c2 1A60 str r2, [r3]
10523 .L654:
5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10524 .loc 1 5907 5 is_stmt 1 view .LVU3547
5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10525 .loc 1 5907 9 is_stmt 0 view .LVU3548
10526 00c4 E06B ldr r0, [r4, #60]
10527 00c6 FFF7FEFF bl HAL_DMA_GetState
10528 .LVL697:
5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10529 .loc 1 5907 8 view .LVU3549
10530 00ca 0128 cmp r0, #1
10531 00cc 0DD0 beq .L655
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10532 .loc 1 5911 7 is_stmt 1 view .LVU3550
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10533 .loc 1 5911 11 is_stmt 0 view .LVU3551
10534 00ce E36B ldr r3, [r4, #60]
5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10535 .loc 1 5911 39 view .LVU3552
10536 00d0 0C4A ldr r2, .L657+8
10537 00d2 1A65 str r2, [r3, #80]
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10538 .loc 1 5914 7 is_stmt 1 view .LVU3553
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10539 .loc 1 5914 7 view .LVU3554
10540 00d4 0023 movs r3, #0
10541 00d6 84F84030 strb r3, [r4, #64]
5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10542 .loc 1 5914 7 view .LVU3555
5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10543 .loc 1 5917 7 view .LVU3556
5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10544 .loc 1 5917 11 is_stmt 0 view .LVU3557
10545 00da E06B ldr r0, [r4, #60]
10546 00dc FFF7FEFF bl HAL_DMA_Abort_IT
10547 .LVL698:
5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10548 .loc 1 5917 10 view .LVU3558
10549 00e0 50B1 cbz r0, .L645
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10550 .loc 1 5920 9 is_stmt 1 view .LVU3559
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10551 .loc 1 5920 13 is_stmt 0 view .LVU3560
10552 00e2 E06B ldr r0, [r4, #60]
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10553 .loc 1 5920 21 view .LVU3561
ARM GAS /tmp/ccEimIdZ.s page 361
10554 00e4 036D ldr r3, [r0, #80]
5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10555 .loc 1 5920 9 view .LVU3562
10556 00e6 9847 blx r3
10557 .LVL699:
10558 00e8 06E0 b .L645
10559 .L655:
5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10560 .loc 1 5925 7 is_stmt 1 view .LVU3563
10561 00ea 2046 mov r0, r4
10562 00ec FFF7FEFF bl I2C_TreatErrorCallback
10563 .LVL700:
10564 00f0 02E0 b .L645
10565 .LVL701:
10566 .L653:
5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10567 .loc 1 5930 5 view .LVU3564
10568 00f2 2046 mov r0, r4
10569 00f4 FFF7FEFF bl I2C_TreatErrorCallback
10570 .LVL702:
10571 .L645:
5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10572 .loc 1 5932 1 is_stmt 0 view .LVU3565
10573 00f8 10BD pop {r4, pc}
10574 .LVL703:
10575 .L658:
5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10576 .loc 1 5932 1 view .LVU3566
10577 00fa 00BF .align 2
10578 .L657:
10579 00fc 0000FFFF .word -65536
10580 0100 00000000 .word I2C_Slave_ISR_IT
10581 0104 00000000 .word I2C_DMAAbort
10582 .cfi_endproc
10583 .LFE202:
10585 .section .text.I2C_ITSlaveCplt,"ax",%progbits
10586 .align 1
10587 .syntax unified
10588 .thumb
10589 .thumb_func
10590 .fpu fpv5-d16
10592 I2C_ITSlaveCplt:
10593 .LVL704:
10594 .LFB200:
5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10595 .loc 1 5620 1 is_stmt 1 view -0
10596 .cfi_startproc
10597 @ args = 0, pretend = 0, frame = 0
10598 @ frame_needed = 0, uses_anonymous_args = 0
5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10599 .loc 1 5620 1 is_stmt 0 view .LVU3568
10600 0000 70B5 push {r4, r5, r6, lr}
10601 .LCFI120:
10602 .cfi_def_cfa_offset 16
10603 .cfi_offset 4, -16
10604 .cfi_offset 5, -12
10605 .cfi_offset 6, -8
ARM GAS /tmp/ccEimIdZ.s page 362
10606 .cfi_offset 14, -4
10607 0002 0446 mov r4, r0
10608 0004 0D46 mov r5, r1
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10609 .loc 1 5621 3 is_stmt 1 view .LVU3569
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10610 .loc 1 5621 26 is_stmt 0 view .LVU3570
10611 0006 0268 ldr r2, [r0]
5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10612 .loc 1 5621 12 view .LVU3571
10613 0008 1668 ldr r6, [r2]
10614 .LVL705:
5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10615 .loc 1 5622 3 is_stmt 1 view .LVU3572
5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10616 .loc 1 5623 3 view .LVU3573
5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10617 .loc 1 5623 24 is_stmt 0 view .LVU3574
10618 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10619 000e DBB2 uxtb r3, r3
10620 .LVL706:
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10621 .loc 1 5626 3 is_stmt 1 view .LVU3575
10622 0010 2021 movs r1, #32
10623 .LVL707:
5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10624 .loc 1 5626 3 is_stmt 0 view .LVU3576
10625 0012 D161 str r1, [r2, #28]
5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10626 .loc 1 5629 3 is_stmt 1 view .LVU3577
5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10627 .loc 1 5629 6 is_stmt 0 view .LVU3578
10628 0014 292B cmp r3, #41
10629 0016 18BF it ne
10630 0018 212B cmpne r3, #33
10631 001a 57D0 beq .L677
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10632 .loc 1 5634 8 is_stmt 1 view .LVU3579
5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10633 .loc 1 5634 11 is_stmt 0 view .LVU3580
10634 001c 2A2B cmp r3, #42
10635 001e 18BF it ne
10636 0020 222B cmpne r3, #34
10637 0022 5AD0 beq .L678
10638 .LVL708:
10639 .L661:
5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10640 .loc 1 5642 3 is_stmt 1 view .LVU3581
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10641 .loc 1 5645 3 view .LVU3582
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10642 .loc 1 5645 7 is_stmt 0 view .LVU3583
10643 0024 2268 ldr r2, [r4]
5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10644 .loc 1 5645 23 view .LVU3584
10645 0026 5368 ldr r3, [r2, #4]
10646 0028 43F40043 orr r3, r3, #32768
ARM GAS /tmp/ccEimIdZ.s page 363
10647 002c 5360 str r3, [r2, #4]
5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10648 .loc 1 5648 3 is_stmt 1 view .LVU3585
10649 002e 2268 ldr r2, [r4]
10650 0030 5368 ldr r3, [r2, #4]
10651 0032 23F0FF73 bic r3, r3, #33423360
10652 0036 23F48B33 bic r3, r3, #71168
10653 003a 23F4FF73 bic r3, r3, #510
10654 003e 23F00103 bic r3, r3, #1
10655 0042 5360 str r3, [r2, #4]
5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10656 .loc 1 5651 3 view .LVU3586
10657 0044 2046 mov r0, r4
10658 0046 FFF7FEFF bl I2C_Flush_TXDR
10659 .LVL709:
5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10660 .loc 1 5654 3 view .LVU3587
5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10661 .loc 1 5654 6 is_stmt 0 view .LVU3588
10662 004a 16F4804F tst r6, #16384
10663 004e 00F08580 beq .L662
5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10664 .loc 1 5657 5 is_stmt 1 view .LVU3589
5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10665 .loc 1 5657 9 is_stmt 0 view .LVU3590
10666 0052 2268 ldr r2, [r4]
5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10667 .loc 1 5657 25 view .LVU3591
10668 0054 1368 ldr r3, [r2]
10669 0056 23F48043 bic r3, r3, #16384
10670 005a 1360 str r3, [r2]
5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10671 .loc 1 5659 5 is_stmt 1 view .LVU3592
5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10672 .loc 1 5659 13 is_stmt 0 view .LVU3593
10673 005c A36B ldr r3, [r4, #56]
5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10674 .loc 1 5659 8 view .LVU3594
10675 005e 002B cmp r3, #0
10676 0060 45D0 beq .L663
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10677 .loc 1 5661 7 is_stmt 1 view .LVU3595
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10678 .loc 1 5661 35 is_stmt 0 view .LVU3596
10679 0062 1B68 ldr r3, [r3]
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10680 .loc 1 5661 25 view .LVU3597
10681 0064 7449 ldr r1, .L682
10682 0066 754A ldr r2, .L682+4
10683 0068 9342 cmp r3, r2
10684 006a 18BF it ne
10685 006c 8B42 cmpne r3, r1
10686 006e 3BD0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10687 .loc 1 5661 35 discriminator 2 view .LVU3598
10688 0070 1832 adds r2, r2, #24
10689 0072 9342 cmp r3, r2
ARM GAS /tmp/ccEimIdZ.s page 364
10690 0074 38D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10691 .loc 1 5661 35 discriminator 4 view .LVU3599
10692 0076 1832 adds r2, r2, #24
10693 0078 9342 cmp r3, r2
10694 007a 35D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10695 .loc 1 5661 35 discriminator 6 view .LVU3600
10696 007c 1832 adds r2, r2, #24
10697 007e 9342 cmp r3, r2
10698 0080 32D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10699 .loc 1 5661 35 discriminator 8 view .LVU3601
10700 0082 1832 adds r2, r2, #24
10701 0084 9342 cmp r3, r2
10702 0086 2FD0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10703 .loc 1 5661 35 discriminator 10 view .LVU3602
10704 0088 1832 adds r2, r2, #24
10705 008a 9342 cmp r3, r2
10706 008c 2CD0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10707 .loc 1 5661 35 discriminator 12 view .LVU3603
10708 008e 1832 adds r2, r2, #24
10709 0090 9342 cmp r3, r2
10710 0092 29D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10711 .loc 1 5661 35 discriminator 14 view .LVU3604
10712 0094 02F55672 add r2, r2, #856
10713 0098 9342 cmp r3, r2
10714 009a 25D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10715 .loc 1 5661 35 discriminator 16 view .LVU3605
10716 009c 1832 adds r2, r2, #24
10717 009e 9342 cmp r3, r2
10718 00a0 22D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10719 .loc 1 5661 35 discriminator 18 view .LVU3606
10720 00a2 1832 adds r2, r2, #24
10721 00a4 9342 cmp r3, r2
10722 00a6 1FD0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10723 .loc 1 5661 35 discriminator 20 view .LVU3607
10724 00a8 1832 adds r2, r2, #24
10725 00aa 9342 cmp r3, r2
10726 00ac 1CD0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10727 .loc 1 5661 35 discriminator 22 view .LVU3608
10728 00ae 1832 adds r2, r2, #24
10729 00b0 9342 cmp r3, r2
10730 00b2 19D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10731 .loc 1 5661 35 discriminator 24 view .LVU3609
10732 00b4 1832 adds r2, r2, #24
10733 00b6 9342 cmp r3, r2
10734 00b8 16D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 365
10735 .loc 1 5661 35 discriminator 26 view .LVU3610
10736 00ba 1832 adds r2, r2, #24
10737 00bc 9342 cmp r3, r2
10738 00be 13D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10739 .loc 1 5661 35 discriminator 28 view .LVU3611
10740 00c0 1832 adds r2, r2, #24
10741 00c2 9342 cmp r3, r2
10742 00c4 10D0 beq .L664
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10743 .loc 1 5661 35 discriminator 30 view .LVU3612
10744 00c6 5B68 ldr r3, [r3, #4]
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10745 .loc 1 5661 25 discriminator 30 view .LVU3613
10746 00c8 9BB2 uxth r3, r3
10747 00ca 0FE0 b .L666
10748 .LVL710:
10749 .L677:
5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10750 .loc 1 5631 5 is_stmt 1 view .LVU3614
10751 00cc 48F20101 movw r1, #32769
10752 00d0 FFF7FEFF bl I2C_Disable_IRQ
10753 .LVL711:
5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10754 .loc 1 5632 5 view .LVU3615
5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10755 .loc 1 5632 25 is_stmt 0 view .LVU3616
10756 00d4 2123 movs r3, #33
10757 00d6 2363 str r3, [r4, #48]
10758 00d8 A4E7 b .L661
10759 .LVL712:
10760 .L678:
5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10761 .loc 1 5636 5 is_stmt 1 view .LVU3617
10762 00da 48F20201 movw r1, #32770
10763 00de FFF7FEFF bl I2C_Disable_IRQ
10764 .LVL713:
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10765 .loc 1 5637 5 view .LVU3618
5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10766 .loc 1 5637 25 is_stmt 0 view .LVU3619
10767 00e2 2223 movs r3, #34
10768 00e4 2363 str r3, [r4, #48]
10769 00e6 9DE7 b .L661
10770 .L664:
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10771 .loc 1 5661 35 discriminator 29 view .LVU3620
10772 00e8 5B68 ldr r3, [r3, #4]
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10773 .loc 1 5661 25 discriminator 29 view .LVU3621
10774 00ea 9BB2 uxth r3, r3
10775 .L666:
5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10776 .loc 1 5661 23 discriminator 32 view .LVU3622
10777 00ec 6385 strh r3, [r4, #42] @ movhi
10778 .L663:
5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 366
10779 .loc 1 5677 3 is_stmt 1 view .LVU3623
5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10780 .loc 1 5680 3 view .LVU3624
5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10781 .loc 1 5680 6 is_stmt 0 view .LVU3625
10782 00ee 15F0040F tst r5, #4
10783 00f2 11D0 beq .L670
5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10784 .loc 1 5683 5 is_stmt 1 view .LVU3626
5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10785 .loc 1 5683 16 is_stmt 0 view .LVU3627
10786 00f4 25F00405 bic r5, r5, #4
10787 .LVL714:
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10788 .loc 1 5686 5 is_stmt 1 view .LVU3628
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10789 .loc 1 5686 36 is_stmt 0 view .LVU3629
10790 00f8 2368 ldr r3, [r4]
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10791 .loc 1 5686 46 view .LVU3630
10792 00fa 5A6A ldr r2, [r3, #36]
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10793 .loc 1 5686 10 view .LVU3631
10794 00fc 636A ldr r3, [r4, #36]
5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10795 .loc 1 5686 21 view .LVU3632
10796 00fe 1A70 strb r2, [r3]
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10797 .loc 1 5689 5 is_stmt 1 view .LVU3633
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10798 .loc 1 5689 9 is_stmt 0 view .LVU3634
10799 0100 636A ldr r3, [r4, #36]
5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10800 .loc 1 5689 19 view .LVU3635
10801 0102 0133 adds r3, r3, #1
10802 0104 6362 str r3, [r4, #36]
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10803 .loc 1 5691 5 is_stmt 1 view .LVU3636
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10804 .loc 1 5691 14 is_stmt 0 view .LVU3637
10805 0106 238D ldrh r3, [r4, #40]
5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10806 .loc 1 5691 8 view .LVU3638
10807 0108 33B1 cbz r3, .L670
5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10808 .loc 1 5693 7 is_stmt 1 view .LVU3639
5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
10809 .loc 1 5693 21 is_stmt 0 view .LVU3640
10810 010a 013B subs r3, r3, #1
10811 010c 2385 strh r3, [r4, #40] @ movhi
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10812 .loc 1 5694 7 is_stmt 1 view .LVU3641
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10813 .loc 1 5694 11 is_stmt 0 view .LVU3642
10814 010e 638D ldrh r3, [r4, #42]
10815 0110 9BB2 uxth r3, r3
5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 367
10816 .loc 1 5694 22 view .LVU3643
10817 0112 013B subs r3, r3, #1
10818 0114 9BB2 uxth r3, r3
10819 0116 6385 strh r3, [r4, #42] @ movhi
10820 .L670:
5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10821 .loc 1 5699 3 is_stmt 1 view .LVU3644
5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10822 .loc 1 5699 11 is_stmt 0 view .LVU3645
10823 0118 638D ldrh r3, [r4, #42]
10824 011a 9BB2 uxth r3, r3
5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10825 .loc 1 5699 6 view .LVU3646
10826 011c 1BB1 cbz r3, .L671
5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10827 .loc 1 5702 5 is_stmt 1 view .LVU3647
5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10828 .loc 1 5702 21 is_stmt 0 view .LVU3648
10829 011e 636C ldr r3, [r4, #68]
10830 0120 43F00403 orr r3, r3, #4
10831 0124 6364 str r3, [r4, #68]
10832 .L671:
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10833 .loc 1 5705 3 is_stmt 1 view .LVU3649
5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL;
10834 .loc 1 5705 14 is_stmt 0 view .LVU3650
10835 0126 0023 movs r3, #0
10836 0128 84F84230 strb r3, [r4, #66]
5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10837 .loc 1 5706 3 is_stmt 1 view .LVU3651
5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10838 .loc 1 5706 17 is_stmt 0 view .LVU3652
10839 012c 6363 str r3, [r4, #52]
5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10840 .loc 1 5708 3 is_stmt 1 view .LVU3653
5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10841 .loc 1 5708 11 is_stmt 0 view .LVU3654
10842 012e 636C ldr r3, [r4, #68]
5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10843 .loc 1 5708 6 view .LVU3655
10844 0130 002B cmp r3, #0
10845 0132 57D1 bne .L679
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10846 .loc 1 5720 8 is_stmt 1 view .LVU3656
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10847 .loc 1 5720 16 is_stmt 0 view .LVU3657
10848 0134 E36A ldr r3, [r4, #44]
5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10849 .loc 1 5720 11 view .LVU3658
10850 0136 13F5803F cmn r3, #65536
10851 013a 61D1 bne .L680
5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10852 .loc 1 5740 8 is_stmt 1 view .LVU3659
5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10853 .loc 1 5740 16 is_stmt 0 view .LVU3660
10854 013c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10855 0140 DBB2 uxtb r3, r3
ARM GAS /tmp/ccEimIdZ.s page 368
5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10856 .loc 1 5740 11 view .LVU3661
10857 0142 222B cmp r3, #34
10858 0144 6CD0 beq .L681
5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10859 .loc 1 5757 5 is_stmt 1 view .LVU3662
5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10860 .loc 1 5757 17 is_stmt 0 view .LVU3663
10861 0146 2023 movs r3, #32
10862 0148 84F84130 strb r3, [r4, #65]
5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10863 .loc 1 5758 5 is_stmt 1 view .LVU3664
5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10864 .loc 1 5758 25 is_stmt 0 view .LVU3665
10865 014c 0023 movs r3, #0
10866 014e 2363 str r3, [r4, #48]
5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10867 .loc 1 5761 5 is_stmt 1 view .LVU3666
5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10868 .loc 1 5761 5 view .LVU3667
10869 0150 84F84030 strb r3, [r4, #64]
5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10870 .loc 1 5761 5 view .LVU3668
5767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10871 .loc 1 5767 5 view .LVU3669
10872 0154 2046 mov r0, r4
10873 0156 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
10874 .LVL715:
5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10875 .loc 1 5770 1 is_stmt 0 view .LVU3670
10876 015a 60E0 b .L659
10877 .LVL716:
10878 .L662:
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10879 .loc 1 5664 8 is_stmt 1 view .LVU3671
5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10880 .loc 1 5664 11 is_stmt 0 view .LVU3672
10881 015c 16F4004F tst r6, #32768
10882 0160 C5D0 beq .L663
5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10883 .loc 1 5667 5 is_stmt 1 view .LVU3673
5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10884 .loc 1 5667 9 is_stmt 0 view .LVU3674
10885 0162 2268 ldr r2, [r4]
5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10886 .loc 1 5667 25 view .LVU3675
10887 0164 1368 ldr r3, [r2]
10888 0166 23F40043 bic r3, r3, #32768
10889 016a 1360 str r3, [r2]
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10890 .loc 1 5669 5 is_stmt 1 view .LVU3676
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10891 .loc 1 5669 13 is_stmt 0 view .LVU3677
10892 016c E36B ldr r3, [r4, #60]
5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10893 .loc 1 5669 8 view .LVU3678
10894 016e 002B cmp r3, #0
ARM GAS /tmp/ccEimIdZ.s page 369
10895 0170 BDD0 beq .L663
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10896 .loc 1 5671 7 is_stmt 1 view .LVU3679
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10897 .loc 1 5671 35 is_stmt 0 view .LVU3680
10898 0172 1B68 ldr r3, [r3]
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10899 .loc 1 5671 25 view .LVU3681
10900 0174 3049 ldr r1, .L682
10901 0176 314A ldr r2, .L682+4
10902 0178 9342 cmp r3, r2
10903 017a 18BF it ne
10904 017c 8B42 cmpne r3, r1
10905 017e 2DD0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10906 .loc 1 5671 35 discriminator 2 view .LVU3682
10907 0180 1832 adds r2, r2, #24
10908 0182 9342 cmp r3, r2
10909 0184 2AD0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10910 .loc 1 5671 35 discriminator 4 view .LVU3683
10911 0186 1832 adds r2, r2, #24
10912 0188 9342 cmp r3, r2
10913 018a 27D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10914 .loc 1 5671 35 discriminator 6 view .LVU3684
10915 018c 1832 adds r2, r2, #24
10916 018e 9342 cmp r3, r2
10917 0190 24D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10918 .loc 1 5671 35 discriminator 8 view .LVU3685
10919 0192 1832 adds r2, r2, #24
10920 0194 9342 cmp r3, r2
10921 0196 21D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10922 .loc 1 5671 35 discriminator 10 view .LVU3686
10923 0198 1832 adds r2, r2, #24
10924 019a 9342 cmp r3, r2
10925 019c 1ED0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10926 .loc 1 5671 35 discriminator 12 view .LVU3687
10927 019e 1832 adds r2, r2, #24
10928 01a0 9342 cmp r3, r2
10929 01a2 1BD0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10930 .loc 1 5671 35 discriminator 14 view .LVU3688
10931 01a4 02F55672 add r2, r2, #856
10932 01a8 9342 cmp r3, r2
10933 01aa 17D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10934 .loc 1 5671 35 discriminator 16 view .LVU3689
10935 01ac 1832 adds r2, r2, #24
10936 01ae 9342 cmp r3, r2
10937 01b0 14D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10938 .loc 1 5671 35 discriminator 18 view .LVU3690
10939 01b2 1832 adds r2, r2, #24
ARM GAS /tmp/ccEimIdZ.s page 370
10940 01b4 9342 cmp r3, r2
10941 01b6 11D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10942 .loc 1 5671 35 discriminator 20 view .LVU3691
10943 01b8 1832 adds r2, r2, #24
10944 01ba 9342 cmp r3, r2
10945 01bc 0ED0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10946 .loc 1 5671 35 discriminator 22 view .LVU3692
10947 01be 1832 adds r2, r2, #24
10948 01c0 9342 cmp r3, r2
10949 01c2 0BD0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10950 .loc 1 5671 35 discriminator 24 view .LVU3693
10951 01c4 1832 adds r2, r2, #24
10952 01c6 9342 cmp r3, r2
10953 01c8 08D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10954 .loc 1 5671 35 discriminator 26 view .LVU3694
10955 01ca 1832 adds r2, r2, #24
10956 01cc 9342 cmp r3, r2
10957 01ce 05D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10958 .loc 1 5671 35 discriminator 28 view .LVU3695
10959 01d0 1832 adds r2, r2, #24
10960 01d2 9342 cmp r3, r2
10961 01d4 02D0 beq .L667
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10962 .loc 1 5671 35 discriminator 30 view .LVU3696
10963 01d6 5B68 ldr r3, [r3, #4]
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10964 .loc 1 5671 25 discriminator 30 view .LVU3697
10965 01d8 9BB2 uxth r3, r3
10966 01da 01E0 b .L669
10967 .L667:
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10968 .loc 1 5671 35 discriminator 29 view .LVU3698
10969 01dc 5B68 ldr r3, [r3, #4]
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10970 .loc 1 5671 25 discriminator 29 view .LVU3699
10971 01de 9BB2 uxth r3, r3
10972 .L669:
5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10973 .loc 1 5671 23 discriminator 32 view .LVU3700
10974 01e0 6385 strh r3, [r4, #42] @ movhi
10975 01e2 84E7 b .L663
10976 .LVL717:
10977 .L679:
5711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10978 .loc 1 5711 5 is_stmt 1 view .LVU3701
10979 01e4 616C ldr r1, [r4, #68]
10980 01e6 2046 mov r0, r4
10981 01e8 FFF7FEFF bl I2C_ITError
10982 .LVL718:
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10983 .loc 1 5714 5 view .LVU3702
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 371
10984 .loc 1 5714 13 is_stmt 0 view .LVU3703
10985 01ec 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10986 01f0 DBB2 uxtb r3, r3
5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
10987 .loc 1 5714 8 view .LVU3704
10988 01f2 282B cmp r3, #40
10989 01f4 13D1 bne .L659
5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
10990 .loc 1 5717 7 is_stmt 1 view .LVU3705
10991 01f6 2946 mov r1, r5
10992 01f8 2046 mov r0, r4
10993 01fa FFF7FEFF bl I2C_ITListenCplt
10994 .LVL719:
10995 01fe 0EE0 b .L659
10996 .L680:
5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
10997 .loc 1 5723 5 view .LVU3706
10998 0200 2046 mov r0, r4
10999 0202 FFF7FEFF bl I2C_ITSlaveSeqCplt
11000 .LVL720:
5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11001 .loc 1 5725 5 view .LVU3707
5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11002 .loc 1 5725 23 is_stmt 0 view .LVU3708
11003 0206 0E4B ldr r3, .L682+8
11004 0208 E362 str r3, [r4, #44]
5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11005 .loc 1 5726 5 is_stmt 1 view .LVU3709
5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11006 .loc 1 5726 17 is_stmt 0 view .LVU3710
11007 020a 2023 movs r3, #32
11008 020c 84F84130 strb r3, [r4, #65]
5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11009 .loc 1 5727 5 is_stmt 1 view .LVU3711
5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11010 .loc 1 5727 25 is_stmt 0 view .LVU3712
11011 0210 0023 movs r3, #0
11012 0212 2363 str r3, [r4, #48]
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11013 .loc 1 5730 5 is_stmt 1 view .LVU3713
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11014 .loc 1 5730 5 view .LVU3714
11015 0214 84F84030 strb r3, [r4, #64]
5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11016 .loc 1 5730 5 view .LVU3715
5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11017 .loc 1 5736 5 view .LVU3716
11018 0218 2046 mov r0, r4
11019 021a FFF7FEFF bl HAL_I2C_ListenCpltCallback
11020 .LVL721:
11021 .L659:
5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11022 .loc 1 5770 1 is_stmt 0 view .LVU3717
11023 021e 70BD pop {r4, r5, r6, pc}
11024 .LVL722:
11025 .L681:
5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
ARM GAS /tmp/ccEimIdZ.s page 372
11026 .loc 1 5742 5 is_stmt 1 view .LVU3718
5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11027 .loc 1 5742 17 is_stmt 0 view .LVU3719
11028 0220 2023 movs r3, #32
11029 0222 84F84130 strb r3, [r4, #65]
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11030 .loc 1 5743 5 is_stmt 1 view .LVU3720
5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11031 .loc 1 5743 25 is_stmt 0 view .LVU3721
11032 0226 0023 movs r3, #0
11033 0228 2363 str r3, [r4, #48]
5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11034 .loc 1 5746 5 is_stmt 1 view .LVU3722
5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11035 .loc 1 5746 5 view .LVU3723
11036 022a 84F84030 strb r3, [r4, #64]
5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11037 .loc 1 5746 5 view .LVU3724
5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11038 .loc 1 5752 5 view .LVU3725
11039 022e 2046 mov r0, r4
11040 0230 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
11041 .LVL723:
11042 0234 F3E7 b .L659
11043 .L683:
11044 0236 00BF .align 2
11045 .L682:
11046 0238 10000240 .word 1073872912
11047 023c 28000240 .word 1073872936
11048 0240 0000FFFF .word -65536
11049 .cfi_endproc
11050 .LFE200:
11052 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
11053 .align 1
11054 .syntax unified
11055 .thumb
11056 .thumb_func
11057 .fpu fpv5-d16
11059 I2C_Slave_ISR_IT:
11060 .LVL724:
11061 .LFB191:
4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11062 .loc 1 4748 1 view -0
11063 .cfi_startproc
11064 @ args = 0, pretend = 0, frame = 0
11065 @ frame_needed = 0, uses_anonymous_args = 0
4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11066 .loc 1 4748 1 is_stmt 0 view .LVU3727
11067 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
11068 .LCFI121:
11069 .cfi_def_cfa_offset 24
11070 .cfi_offset 3, -24
11071 .cfi_offset 4, -20
11072 .cfi_offset 5, -16
11073 .cfi_offset 6, -12
11074 .cfi_offset 7, -8
11075 .cfi_offset 14, -4
ARM GAS /tmp/ccEimIdZ.s page 373
4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11076 .loc 1 4749 3 is_stmt 1 view .LVU3728
4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11077 .loc 1 4749 12 is_stmt 0 view .LVU3729
11078 0002 C76A ldr r7, [r0, #44]
11079 .LVL725:
4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11080 .loc 1 4750 3 is_stmt 1 view .LVU3730
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11081 .loc 1 4753 3 view .LVU3731
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11082 .loc 1 4753 3 view .LVU3732
11083 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
11084 0008 012B cmp r3, #1
11085 000a 00F09F80 beq .L696
11086 000e 0446 mov r4, r0
11087 0010 0D46 mov r5, r1
11088 0012 1646 mov r6, r2
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11089 .loc 1 4753 3 discriminator 2 view .LVU3733
11090 0014 0123 movs r3, #1
11091 0016 80F84030 strb r3, [r0, #64]
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11092 .loc 1 4753 3 discriminator 2 view .LVU3734
4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11093 .loc 1 4756 3 discriminator 2 view .LVU3735
4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11094 .loc 1 4756 6 is_stmt 0 discriminator 2 view .LVU3736
11095 001a 11F0200F tst r1, #32
11096 001e 02D0 beq .L686
4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11097 .loc 1 4756 61 discriminator 1 view .LVU3737
11098 0020 12F0200F tst r2, #32
11099 0024 19D1 bne .L698
11100 .LVL726:
11101 .L686:
4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11102 .loc 1 4762 3 is_stmt 1 view .LVU3738
4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11103 .loc 1 4762 6 is_stmt 0 view .LVU3739
11104 0026 15F0100F tst r5, #16
11105 002a 3FD0 beq .L687
4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11106 .loc 1 4762 58 discriminator 1 view .LVU3740
11107 002c 16F0100F tst r6, #16
11108 0030 3CD0 beq .L687
4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11109 .loc 1 4768 5 is_stmt 1 view .LVU3741
4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11110 .loc 1 4768 13 is_stmt 0 view .LVU3742
11111 0032 638D ldrh r3, [r4, #42]
11112 0034 9BB2 uxth r3, r3
4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11113 .loc 1 4768 8 view .LVU3743
11114 0036 43BB cbnz r3, .L688
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11115 .loc 1 4770 7 is_stmt 1 view .LVU3744
ARM GAS /tmp/ccEimIdZ.s page 374
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11116 .loc 1 4770 16 is_stmt 0 view .LVU3745
11117 0038 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11118 003c DBB2 uxtb r3, r3
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11119 .loc 1 4770 10 view .LVU3746
11120 003e 282B cmp r3, #40
11121 0040 0ED0 beq .L699
11122 .L689:
4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11123 .loc 1 4775 12 is_stmt 1 view .LVU3747
4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11124 .loc 1 4775 21 is_stmt 0 view .LVU3748
11125 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11126 0046 DBB2 uxtb r3, r3
4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11127 .loc 1 4775 15 view .LVU3749
11128 0048 292B cmp r3, #41
11129 004a 11D0 beq .L700
11130 .L691:
4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11131 .loc 1 4790 9 is_stmt 1 view .LVU3750
11132 004c 2368 ldr r3, [r4]
11133 004e 1022 movs r2, #16
11134 0050 DA61 str r2, [r3, #28]
11135 .L690:
4864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11136 .loc 1 4864 3 view .LVU3751
4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11137 .loc 1 4867 3 view .LVU3752
4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11138 .loc 1 4867 3 view .LVU3753
11139 0052 0020 movs r0, #0
11140 0054 84F84000 strb r0, [r4, #64]
4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11141 .loc 1 4867 3 view .LVU3754
4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11142 .loc 1 4869 3 view .LVU3755
11143 .LVL727:
11144 .L685:
4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11145 .loc 1 4870 1 is_stmt 0 view .LVU3756
11146 0058 F8BD pop {r3, r4, r5, r6, r7, pc}
11147 .LVL728:
11148 .L698:
4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11149 .loc 1 4759 5 is_stmt 1 view .LVU3757
11150 005a FFF7FEFF bl I2C_ITSlaveCplt
11151 .LVL729:
4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11152 .loc 1 4759 5 is_stmt 0 view .LVU3758
11153 005e E2E7 b .L686
11154 .L699:
4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11155 .loc 1 4770 49 discriminator 1 view .LVU3759
11156 0060 B7F1007F cmp r7, #33554432
11157 0064 EDD1 bne .L689
ARM GAS /tmp/ccEimIdZ.s page 375
4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11158 .loc 1 4773 9 is_stmt 1 view .LVU3760
11159 0066 2946 mov r1, r5
11160 0068 2046 mov r0, r4
11161 006a FFF7FEFF bl I2C_ITListenCplt
11162 .LVL730:
11163 006e F0E7 b .L690
11164 .L700:
4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11165 .loc 1 4775 62 is_stmt 0 discriminator 1 view .LVU3761
11166 0070 17F5803F cmn r7, #65536
11167 0074 EAD0 beq .L691
4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11168 .loc 1 4778 9 is_stmt 1 view .LVU3762
11169 0076 2368 ldr r3, [r4]
11170 0078 1022 movs r2, #16
11171 007a DA61 str r2, [r3, #28]
4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11172 .loc 1 4781 9 view .LVU3763
11173 007c 2046 mov r0, r4
11174 007e FFF7FEFF bl I2C_Flush_TXDR
11175 .LVL731:
4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11176 .loc 1 4785 9 view .LVU3764
11177 0082 2046 mov r0, r4
11178 0084 FFF7FEFF bl I2C_ITSlaveSeqCplt
11179 .LVL732:
11180 0088 E3E7 b .L690
11181 .L688:
4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11182 .loc 1 4797 7 view .LVU3765
11183 008a 2368 ldr r3, [r4]
11184 008c 1022 movs r2, #16
11185 008e DA61 str r2, [r3, #28]
4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11186 .loc 1 4800 7 view .LVU3766
4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11187 .loc 1 4800 23 is_stmt 0 view .LVU3767
11188 0090 636C ldr r3, [r4, #68]
11189 0092 43F00403 orr r3, r3, #4
11190 0096 6364 str r3, [r4, #68]
4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11191 .loc 1 4802 7 is_stmt 1 view .LVU3768
4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11192 .loc 1 4802 10 is_stmt 0 view .LVU3769
11193 0098 B7F1807F cmp r7, #16777216
11194 009c 18BF it ne
11195 009e 002F cmpne r7, #0
11196 00a0 D7D1 bne .L690
4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11197 .loc 1 4805 9 is_stmt 1 view .LVU3770
11198 00a2 616C ldr r1, [r4, #68]
11199 00a4 2046 mov r0, r4
11200 00a6 FFF7FEFF bl I2C_ITError
11201 .LVL733:
11202 00aa D2E7 b .L690
11203 .L687:
ARM GAS /tmp/ccEimIdZ.s page 376
4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11204 .loc 1 4809 8 view .LVU3771
4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11205 .loc 1 4809 11 is_stmt 0 view .LVU3772
11206 00ac 15F0040F tst r5, #4
11207 00b0 1FD0 beq .L692
4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11208 .loc 1 4809 65 discriminator 1 view .LVU3773
11209 00b2 16F0040F tst r6, #4
11210 00b6 1CD0 beq .L692
4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11211 .loc 1 4811 5 is_stmt 1 view .LVU3774
4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11212 .loc 1 4811 13 is_stmt 0 view .LVU3775
11213 00b8 638D ldrh r3, [r4, #42]
11214 00ba 9BB2 uxth r3, r3
4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11215 .loc 1 4811 8 view .LVU3776
11216 00bc 73B1 cbz r3, .L693
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11217 .loc 1 4814 7 is_stmt 1 view .LVU3777
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11218 .loc 1 4814 38 is_stmt 0 view .LVU3778
11219 00be 2368 ldr r3, [r4]
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11220 .loc 1 4814 48 view .LVU3779
11221 00c0 5A6A ldr r2, [r3, #36]
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11222 .loc 1 4814 12 view .LVU3780
11223 00c2 636A ldr r3, [r4, #36]
4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11224 .loc 1 4814 23 view .LVU3781
11225 00c4 1A70 strb r2, [r3]
4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11226 .loc 1 4817 7 is_stmt 1 view .LVU3782
4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11227 .loc 1 4817 11 is_stmt 0 view .LVU3783
11228 00c6 636A ldr r3, [r4, #36]
4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11229 .loc 1 4817 21 view .LVU3784
11230 00c8 0133 adds r3, r3, #1
11231 00ca 6362 str r3, [r4, #36]
4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11232 .loc 1 4819 7 is_stmt 1 view .LVU3785
4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11233 .loc 1 4819 11 is_stmt 0 view .LVU3786
11234 00cc 238D ldrh r3, [r4, #40]
4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11235 .loc 1 4819 21 view .LVU3787
11236 00ce 013B subs r3, r3, #1
11237 00d0 2385 strh r3, [r4, #40] @ movhi
4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11238 .loc 1 4820 7 is_stmt 1 view .LVU3788
4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11239 .loc 1 4820 11 is_stmt 0 view .LVU3789
11240 00d2 638D ldrh r3, [r4, #42]
11241 00d4 9BB2 uxth r3, r3
ARM GAS /tmp/ccEimIdZ.s page 377
4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11242 .loc 1 4820 22 view .LVU3790
11243 00d6 013B subs r3, r3, #1
11244 00d8 9BB2 uxth r3, r3
11245 00da 6385 strh r3, [r4, #42] @ movhi
11246 .L693:
4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11247 .loc 1 4823 5 is_stmt 1 view .LVU3791
4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11248 .loc 1 4823 14 is_stmt 0 view .LVU3792
11249 00dc 638D ldrh r3, [r4, #42]
11250 00de 9BB2 uxth r3, r3
4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11251 .loc 1 4823 8 view .LVU3793
11252 00e0 002B cmp r3, #0
11253 00e2 B6D1 bne .L690
4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11254 .loc 1 4823 33 discriminator 1 view .LVU3794
11255 00e4 17F5803F cmn r7, #65536
11256 00e8 B3D0 beq .L690
4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11257 .loc 1 4827 7 is_stmt 1 view .LVU3795
11258 00ea 2046 mov r0, r4
11259 00ec FFF7FEFF bl I2C_ITSlaveSeqCplt
11260 .LVL734:
11261 00f0 AFE7 b .L690
11262 .L692:
4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11263 .loc 1 4830 8 view .LVU3796
4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11264 .loc 1 4830 11 is_stmt 0 view .LVU3797
11265 00f2 15F0080F tst r5, #8
11266 00f6 02D0 beq .L694
4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11267 .loc 1 4830 65 discriminator 1 view .LVU3798
11268 00f8 16F0080F tst r6, #8
11269 00fc 18D1 bne .L701
11270 .L694:
4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11271 .loc 1 4834 8 is_stmt 1 view .LVU3799
4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11272 .loc 1 4834 11 is_stmt 0 view .LVU3800
11273 00fe 15F0020F tst r5, #2
11274 0102 A6D0 beq .L690
4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11275 .loc 1 4834 65 discriminator 1 view .LVU3801
11276 0104 16F0020F tst r6, #2
11277 0108 A3D0 beq .L690
4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11278 .loc 1 4840 5 is_stmt 1 view .LVU3802
4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11279 .loc 1 4840 13 is_stmt 0 view .LVU3803
11280 010a 638D ldrh r3, [r4, #42]
11281 010c 9BB2 uxth r3, r3
4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11282 .loc 1 4840 8 view .LVU3804
11283 010e A3B1 cbz r3, .L695
ARM GAS /tmp/ccEimIdZ.s page 378
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11284 .loc 1 4843 7 is_stmt 1 view .LVU3805
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11285 .loc 1 4843 35 is_stmt 0 view .LVU3806
11286 0110 626A ldr r2, [r4, #36]
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11287 .loc 1 4843 11 view .LVU3807
11288 0112 2368 ldr r3, [r4]
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11289 .loc 1 4843 30 view .LVU3808
11290 0114 1278 ldrb r2, [r2] @ zero_extendqisi2
4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11291 .loc 1 4843 28 view .LVU3809
11292 0116 9A62 str r2, [r3, #40]
4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11293 .loc 1 4846 7 is_stmt 1 view .LVU3810
4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11294 .loc 1 4846 11 is_stmt 0 view .LVU3811
11295 0118 636A ldr r3, [r4, #36]
4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11296 .loc 1 4846 21 view .LVU3812
11297 011a 0133 adds r3, r3, #1
11298 011c 6362 str r3, [r4, #36]
4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
11299 .loc 1 4848 7 is_stmt 1 view .LVU3813
4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
11300 .loc 1 4848 11 is_stmt 0 view .LVU3814
11301 011e 638D ldrh r3, [r4, #42]
11302 0120 9BB2 uxth r3, r3
4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--;
11303 .loc 1 4848 22 view .LVU3815
11304 0122 013B subs r3, r3, #1
11305 0124 9BB2 uxth r3, r3
11306 0126 6385 strh r3, [r4, #42] @ movhi
4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11307 .loc 1 4849 7 is_stmt 1 view .LVU3816
4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11308 .loc 1 4849 11 is_stmt 0 view .LVU3817
11309 0128 238D ldrh r3, [r4, #40]
4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11310 .loc 1 4849 21 view .LVU3818
11311 012a 013B subs r3, r3, #1
11312 012c 2385 strh r3, [r4, #40] @ movhi
11313 012e 90E7 b .L690
11314 .L701:
4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11315 .loc 1 4832 5 is_stmt 1 view .LVU3819
11316 0130 2946 mov r1, r5
11317 0132 2046 mov r0, r4
11318 0134 FFF7FEFF bl I2C_ITAddrCplt
11319 .LVL735:
11320 0138 8BE7 b .L690
11321 .L695:
4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11322 .loc 1 4853 7 view .LVU3820
4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11323 .loc 1 4853 10 is_stmt 0 view .LVU3821
ARM GAS /tmp/ccEimIdZ.s page 379
11324 013a 002F cmp r7, #0
11325 013c 18BF it ne
11326 013e B7F1807F cmpne r7, #16777216
11327 0142 86D1 bne .L690
4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11328 .loc 1 4857 9 is_stmt 1 view .LVU3822
11329 0144 2046 mov r0, r4
11330 0146 FFF7FEFF bl I2C_ITSlaveSeqCplt
11331 .LVL736:
11332 014a 82E7 b .L690
11333 .LVL737:
11334 .L696:
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11335 .loc 1 4753 3 is_stmt 0 view .LVU3823
11336 014c 0220 movs r0, #2
11337 .LVL738:
4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11338 .loc 1 4753 3 view .LVU3824
11339 014e 83E7 b .L685
11340 .cfi_endproc
11341 .LFE191:
11343 .section .text.I2C_ITMasterCplt,"ax",%progbits
11344 .align 1
11345 .syntax unified
11346 .thumb
11347 .thumb_func
11348 .fpu fpv5-d16
11350 I2C_ITMasterCplt:
11351 .LVL739:
11352 .LFB199:
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
11353 .loc 1 5477 1 is_stmt 1 view -0
11354 .cfi_startproc
11355 @ args = 0, pretend = 0, frame = 8
11356 @ frame_needed = 0, uses_anonymous_args = 0
5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
11357 .loc 1 5477 1 is_stmt 0 view .LVU3826
11358 0000 30B5 push {r4, r5, lr}
11359 .LCFI122:
11360 .cfi_def_cfa_offset 12
11361 .cfi_offset 4, -12
11362 .cfi_offset 5, -8
11363 .cfi_offset 14, -4
11364 0002 83B0 sub sp, sp, #12
11365 .LCFI123:
11366 .cfi_def_cfa_offset 24
11367 0004 0446 mov r4, r0
11368 0006 0D46 mov r5, r1
5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11369 .loc 1 5478 3 is_stmt 1 view .LVU3827
5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg;
11370 .loc 1 5479 3 view .LVU3828
11371 .LVL740:
5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11372 .loc 1 5480 3 view .LVU3829
5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11373 .loc 1 5483 3 view .LVU3830
ARM GAS /tmp/ccEimIdZ.s page 380
11374 0008 0368 ldr r3, [r0]
11375 000a 2022 movs r2, #32
11376 000c DA61 str r2, [r3, #28]
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11377 .loc 1 5486 3 view .LVU3831
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11378 .loc 1 5486 11 is_stmt 0 view .LVU3832
11379 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11380 0012 DBB2 uxtb r3, r3
5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11381 .loc 1 5486 6 view .LVU3833
11382 0014 212B cmp r3, #33
11383 0016 33D0 beq .L714
5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11384 .loc 1 5491 8 is_stmt 1 view .LVU3834
5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11385 .loc 1 5491 16 is_stmt 0 view .LVU3835
11386 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11387 001c DBB2 uxtb r3, r3
5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11388 .loc 1 5491 11 view .LVU3836
11389 001e 222B cmp r3, #34
11390 0020 34D0 beq .L715
11391 .LVL741:
11392 .L704:
5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11393 .loc 1 5499 3 is_stmt 1 view .LVU3837
5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11394 .loc 1 5502 3 view .LVU3838
11395 0022 2268 ldr r2, [r4]
11396 0024 5368 ldr r3, [r2, #4]
11397 0026 23F0FF73 bic r3, r3, #33423360
11398 002a 23F48B33 bic r3, r3, #71168
11399 002e 23F4FF73 bic r3, r3, #510
11400 0032 23F00103 bic r3, r3, #1
11401 0036 5360 str r3, [r2, #4]
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
11402 .loc 1 5505 3 view .LVU3839
5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
11403 .loc 1 5505 23 is_stmt 0 view .LVU3840
11404 0038 0023 movs r3, #0
11405 003a 6363 str r3, [r4, #52]
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11406 .loc 1 5506 3 is_stmt 1 view .LVU3841
5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11407 .loc 1 5506 23 is_stmt 0 view .LVU3842
11408 003c A3F58033 sub r3, r3, #65536
11409 0040 E362 str r3, [r4, #44]
5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11410 .loc 1 5508 3 is_stmt 1 view .LVU3843
5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11411 .loc 1 5508 6 is_stmt 0 view .LVU3844
11412 0042 15F0100F tst r5, #16
11413 0046 06D0 beq .L705
5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11414 .loc 1 5511 5 is_stmt 1 view .LVU3845
11415 0048 2368 ldr r3, [r4]
ARM GAS /tmp/ccEimIdZ.s page 381
11416 004a 1022 movs r2, #16
11417 004c DA61 str r2, [r3, #28]
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11418 .loc 1 5514 5 view .LVU3846
5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11419 .loc 1 5514 21 is_stmt 0 view .LVU3847
11420 004e 636C ldr r3, [r4, #68]
11421 0050 43F00403 orr r3, r3, #4
11422 0054 6364 str r3, [r4, #68]
11423 .L705:
5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11424 .loc 1 5518 3 is_stmt 1 view .LVU3848
5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11425 .loc 1 5518 12 is_stmt 0 view .LVU3849
11426 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11427 005a DBB2 uxtb r3, r3
5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11428 .loc 1 5518 6 view .LVU3850
11429 005c 602B cmp r3, #96
11430 005e 1BD0 beq .L716
11431 .L706:
5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11432 .loc 1 5526 3 is_stmt 1 view .LVU3851
11433 0060 2046 mov r0, r4
11434 0062 FFF7FEFF bl I2C_Flush_TXDR
11435 .LVL742:
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11436 .loc 1 5529 3 view .LVU3852
5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11437 .loc 1 5529 12 is_stmt 0 view .LVU3853
11438 0066 626C ldr r2, [r4, #68]
11439 .LVL743:
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11440 .loc 1 5532 3 is_stmt 1 view .LVU3854
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11441 .loc 1 5532 12 is_stmt 0 view .LVU3855
11442 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11443 006c DBB2 uxtb r3, r3
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11444 .loc 1 5532 6 view .LVU3856
11445 006e 602B cmp r3, #96
11446 0070 00D0 beq .L707
5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11447 .loc 1 5532 44 discriminator 1 view .LVU3857
11448 0072 D2B1 cbz r2, .L708
11449 .L707:
5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11450 .loc 1 5535 5 is_stmt 1 view .LVU3858
11451 0074 616C ldr r1, [r4, #68]
11452 0076 2046 mov r0, r4
11453 0078 FFF7FEFF bl I2C_ITError
11454 .LVL744:
11455 .L702:
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11456 .loc 1 5611 1 is_stmt 0 view .LVU3859
11457 007c 03B0 add sp, sp, #12
11458 .LCFI124:
ARM GAS /tmp/ccEimIdZ.s page 382
11459 .cfi_remember_state
11460 .cfi_def_cfa_offset 12
11461 @ sp needed
11462 007e 30BD pop {r4, r5, pc}
11463 .LVL745:
11464 .L714:
11465 .LCFI125:
11466 .cfi_restore_state
5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
11467 .loc 1 5488 5 is_stmt 1 view .LVU3860
11468 0080 0121 movs r1, #1
11469 .LVL746:
5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
11470 .loc 1 5488 5 is_stmt 0 view .LVU3861
11471 0082 FFF7FEFF bl I2C_Disable_IRQ
11472 .LVL747:
5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11473 .loc 1 5489 5 is_stmt 1 view .LVU3862
5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11474 .loc 1 5489 25 is_stmt 0 view .LVU3863
11475 0086 1123 movs r3, #17
11476 0088 2363 str r3, [r4, #48]
11477 008a CAE7 b .L704
11478 .LVL748:
11479 .L715:
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
11480 .loc 1 5493 5 is_stmt 1 view .LVU3864
11481 008c 0221 movs r1, #2
11482 .LVL749:
5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
11483 .loc 1 5493 5 is_stmt 0 view .LVU3865
11484 008e FFF7FEFF bl I2C_Disable_IRQ
11485 .LVL750:
5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11486 .loc 1 5494 5 is_stmt 1 view .LVU3866
5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11487 .loc 1 5494 25 is_stmt 0 view .LVU3867
11488 0092 1223 movs r3, #18
11489 0094 2363 str r3, [r4, #48]
11490 0096 C4E7 b .L704
11491 .L716:
5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11492 .loc 1 5518 44 discriminator 1 view .LVU3868
11493 0098 15F0040F tst r5, #4
11494 009c E0D0 beq .L706
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
11495 .loc 1 5521 5 is_stmt 1 view .LVU3869
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
11496 .loc 1 5521 27 is_stmt 0 view .LVU3870
11497 009e 2368 ldr r3, [r4]
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
11498 .loc 1 5521 37 view .LVU3871
11499 00a0 5B6A ldr r3, [r3, #36]
11500 00a2 DBB2 uxtb r3, r3
5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg);
11501 .loc 1 5521 12 view .LVU3872
11502 00a4 0193 str r3, [sp, #4]
ARM GAS /tmp/ccEimIdZ.s page 383
5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11503 .loc 1 5522 5 is_stmt 1 view .LVU3873
11504 00a6 019B ldr r3, [sp, #4]
11505 00a8 DAE7 b .L706
11506 .LVL751:
11507 .L708:
5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11508 .loc 1 5538 8 view .LVU3874
5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11509 .loc 1 5538 16 is_stmt 0 view .LVU3875
11510 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11511 00ae DBB2 uxtb r3, r3
5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11512 .loc 1 5538 11 view .LVU3876
11513 00b0 212B cmp r3, #33
11514 00b2 17D0 beq .L717
5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11515 .loc 1 5573 8 is_stmt 1 view .LVU3877
5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11516 .loc 1 5573 16 is_stmt 0 view .LVU3878
11517 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11518 00b8 DBB2 uxtb r3, r3
5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11519 .loc 1 5573 11 view .LVU3879
11520 00ba 222B cmp r3, #34
11521 00bc DED1 bne .L702
5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11522 .loc 1 5575 5 is_stmt 1 view .LVU3880
5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11523 .loc 1 5575 17 is_stmt 0 view .LVU3881
11524 00be 2023 movs r3, #32
11525 00c0 84F84130 strb r3, [r4, #65]
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11526 .loc 1 5576 5 is_stmt 1 view .LVU3882
5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11527 .loc 1 5576 25 is_stmt 0 view .LVU3883
11528 00c4 0023 movs r3, #0
11529 00c6 2363 str r3, [r4, #48]
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11530 .loc 1 5578 5 is_stmt 1 view .LVU3884
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11531 .loc 1 5578 13 is_stmt 0 view .LVU3885
11532 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
11533 00cc DBB2 uxtb r3, r3
5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11534 .loc 1 5578 8 view .LVU3886
11535 00ce 402B cmp r3, #64
11536 00d0 24D0 beq .L718
5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11537 .loc 1 5594 7 is_stmt 1 view .LVU3887
5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11538 .loc 1 5594 18 is_stmt 0 view .LVU3888
11539 00d2 0023 movs r3, #0
11540 00d4 84F84230 strb r3, [r4, #66]
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11541 .loc 1 5597 7 is_stmt 1 view .LVU3889
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 384
11542 .loc 1 5597 7 view .LVU3890
11543 00d8 84F84030 strb r3, [r4, #64]
5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11544 .loc 1 5597 7 view .LVU3891
5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11545 .loc 1 5603 7 view .LVU3892
11546 00dc 2046 mov r0, r4
11547 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
11548 .LVL752:
5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11549 .loc 1 5610 3 view .LVU3893
5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11550 .loc 1 5611 1 is_stmt 0 view .LVU3894
11551 00e2 CBE7 b .L702
11552 .LVL753:
11553 .L717:
5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11554 .loc 1 5540 5 is_stmt 1 view .LVU3895
5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11555 .loc 1 5540 17 is_stmt 0 view .LVU3896
11556 00e4 2023 movs r3, #32
11557 00e6 84F84130 strb r3, [r4, #65]
5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11558 .loc 1 5541 5 is_stmt 1 view .LVU3897
5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11559 .loc 1 5541 25 is_stmt 0 view .LVU3898
11560 00ea 0023 movs r3, #0
11561 00ec 2363 str r3, [r4, #48]
5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11562 .loc 1 5543 5 is_stmt 1 view .LVU3899
5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11563 .loc 1 5543 13 is_stmt 0 view .LVU3900
11564 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
11565 00f2 DBB2 uxtb r3, r3
5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11566 .loc 1 5543 8 view .LVU3901
11567 00f4 402B cmp r3, #64
11568 00f6 08D0 beq .L719
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11569 .loc 1 5559 7 is_stmt 1 view .LVU3902
5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11570 .loc 1 5559 18 is_stmt 0 view .LVU3903
11571 00f8 0023 movs r3, #0
11572 00fa 84F84230 strb r3, [r4, #66]
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11573 .loc 1 5562 7 is_stmt 1 view .LVU3904
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11574 .loc 1 5562 7 view .LVU3905
11575 00fe 84F84030 strb r3, [r4, #64]
5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11576 .loc 1 5562 7 view .LVU3906
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11577 .loc 1 5568 7 view .LVU3907
11578 0102 2046 mov r0, r4
11579 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
11580 .LVL754:
5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
ARM GAS /tmp/ccEimIdZ.s page 385
11581 .loc 1 5568 7 is_stmt 0 view .LVU3908
11582 0108 B8E7 b .L702
11583 .LVL755:
11584 .L719:
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11585 .loc 1 5545 7 is_stmt 1 view .LVU3909
5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11586 .loc 1 5545 18 is_stmt 0 view .LVU3910
11587 010a 0023 movs r3, #0
11588 010c 84F84230 strb r3, [r4, #66]
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11589 .loc 1 5548 7 is_stmt 1 view .LVU3911
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11590 .loc 1 5548 7 view .LVU3912
11591 0110 84F84030 strb r3, [r4, #64]
5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11592 .loc 1 5548 7 view .LVU3913
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11593 .loc 1 5554 7 view .LVU3914
11594 0114 2046 mov r0, r4
11595 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
11596 .LVL756:
5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11597 .loc 1 5554 7 is_stmt 0 view .LVU3915
11598 011a AFE7 b .L702
11599 .LVL757:
11600 .L718:
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11601 .loc 1 5580 7 is_stmt 1 view .LVU3916
5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11602 .loc 1 5580 18 is_stmt 0 view .LVU3917
11603 011c 0023 movs r3, #0
11604 011e 84F84230 strb r3, [r4, #66]
5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11605 .loc 1 5583 7 is_stmt 1 view .LVU3918
5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11606 .loc 1 5583 7 view .LVU3919
11607 0122 84F84030 strb r3, [r4, #64]
5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11608 .loc 1 5583 7 view .LVU3920
5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11609 .loc 1 5589 7 view .LVU3921
11610 0126 2046 mov r0, r4
11611 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
11612 .LVL758:
5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11613 .loc 1 5589 7 is_stmt 0 view .LVU3922
11614 012c A6E7 b .L702
11615 .cfi_endproc
11616 .LFE199:
11618 .section .text.I2C_Master_ISR_IT,"ax",%progbits
11619 .align 1
11620 .syntax unified
11621 .thumb
11622 .thumb_func
11623 .fpu fpv5-d16
11625 I2C_Master_ISR_IT:
ARM GAS /tmp/ccEimIdZ.s page 386
11626 .LVL759:
11627 .LFB190:
4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
11628 .loc 1 4611 1 is_stmt 1 view -0
11629 .cfi_startproc
11630 @ args = 0, pretend = 0, frame = 0
11631 @ frame_needed = 0, uses_anonymous_args = 0
4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11632 .loc 1 4612 3 view .LVU3924
4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11633 .loc 1 4613 3 view .LVU3925
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11634 .loc 1 4616 3 view .LVU3926
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11635 .loc 1 4616 3 view .LVU3927
11636 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
11637 0004 012B cmp r3, #1
11638 0006 00F0B980 beq .L734
4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
11639 .loc 1 4611 1 is_stmt 0 discriminator 2 view .LVU3928
11640 000a 70B5 push {r4, r5, r6, lr}
11641 .LCFI126:
11642 .cfi_def_cfa_offset 16
11643 .cfi_offset 4, -16
11644 .cfi_offset 5, -12
11645 .cfi_offset 6, -8
11646 .cfi_offset 14, -4
11647 000c 82B0 sub sp, sp, #8
11648 .LCFI127:
11649 .cfi_def_cfa_offset 24
11650 000e 0446 mov r4, r0
11651 0010 0D46 mov r5, r1
11652 0012 1646 mov r6, r2
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11653 .loc 1 4616 3 is_stmt 1 discriminator 2 view .LVU3929
11654 0014 0123 movs r3, #1
11655 0016 80F84030 strb r3, [r0, #64]
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11656 .loc 1 4616 3 discriminator 2 view .LVU3930
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11657 .loc 1 4618 3 discriminator 2 view .LVU3931
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11658 .loc 1 4618 6 is_stmt 0 discriminator 2 view .LVU3932
11659 001a 11F0100F tst r1, #16
11660 001e 02D0 beq .L722
4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11661 .loc 1 4618 58 discriminator 1 view .LVU3933
11662 0020 12F0100F tst r2, #16
11663 0024 22D1 bne .L739
11664 .L722:
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11665 .loc 1 4631 8 is_stmt 1 view .LVU3934
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11666 .loc 1 4631 11 is_stmt 0 view .LVU3935
11667 0026 15F0040F tst r5, #4
11668 002a 29D0 beq .L724
4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 387
11669 .loc 1 4631 65 discriminator 1 view .LVU3936
11670 002c 16F0040F tst r6, #4
11671 0030 26D0 beq .L724
4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11672 .loc 1 4634 5 is_stmt 1 view .LVU3937
4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11673 .loc 1 4634 16 is_stmt 0 view .LVU3938
11674 0032 25F00405 bic r5, r5, #4
11675 .LVL760:
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11676 .loc 1 4637 5 is_stmt 1 view .LVU3939
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11677 .loc 1 4637 36 is_stmt 0 view .LVU3940
11678 0036 2368 ldr r3, [r4]
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11679 .loc 1 4637 46 view .LVU3941
11680 0038 5A6A ldr r2, [r3, #36]
11681 .LVL761:
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11682 .loc 1 4637 10 view .LVU3942
11683 003a 636A ldr r3, [r4, #36]
4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11684 .loc 1 4637 21 view .LVU3943
11685 003c 1A70 strb r2, [r3]
4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11686 .loc 1 4640 5 is_stmt 1 view .LVU3944
4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11687 .loc 1 4640 9 is_stmt 0 view .LVU3945
11688 003e 636A ldr r3, [r4, #36]
4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11689 .loc 1 4640 19 view .LVU3946
11690 0040 0133 adds r3, r3, #1
11691 0042 6362 str r3, [r4, #36]
4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11692 .loc 1 4642 5 is_stmt 1 view .LVU3947
4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11693 .loc 1 4642 9 is_stmt 0 view .LVU3948
11694 0044 238D ldrh r3, [r4, #40]
4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11695 .loc 1 4642 19 view .LVU3949
11696 0046 013B subs r3, r3, #1
11697 0048 2385 strh r3, [r4, #40] @ movhi
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11698 .loc 1 4643 5 is_stmt 1 view .LVU3950
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11699 .loc 1 4643 9 is_stmt 0 view .LVU3951
11700 004a 638D ldrh r3, [r4, #42]
11701 004c 9BB2 uxth r3, r3
4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11702 .loc 1 4643 20 view .LVU3952
11703 004e 013B subs r3, r3, #1
11704 0050 9BB2 uxth r3, r3
11705 0052 6385 strh r3, [r4, #42] @ movhi
11706 .LVL762:
11707 .L723:
4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11708 .loc 1 4725 3 is_stmt 1 view .LVU3953
ARM GAS /tmp/ccEimIdZ.s page 388
4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11709 .loc 1 4727 3 view .LVU3954
4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11710 .loc 1 4727 6 is_stmt 0 view .LVU3955
11711 0054 15F0200F tst r5, #32
11712 0058 03D0 beq .L733
4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11713 .loc 1 4727 61 discriminator 1 view .LVU3956
11714 005a 16F0200F tst r6, #32
11715 005e 40F08880 bne .L740
11716 .L733:
4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11717 .loc 1 4734 3 is_stmt 1 view .LVU3957
4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11718 .loc 1 4734 3 view .LVU3958
11719 0062 0020 movs r0, #0
11720 0064 84F84000 strb r0, [r4, #64]
4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11721 .loc 1 4734 3 view .LVU3959
4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11722 .loc 1 4736 3 view .LVU3960
4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11723 .loc 1 4737 1 is_stmt 0 view .LVU3961
11724 0068 02B0 add sp, sp, #8
11725 .LCFI128:
11726 .cfi_remember_state
11727 .cfi_def_cfa_offset 16
11728 @ sp needed
11729 006a 70BD pop {r4, r5, r6, pc}
11730 .LVL763:
11731 .L739:
11732 .LCFI129:
11733 .cfi_restore_state
4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11734 .loc 1 4621 5 is_stmt 1 view .LVU3962
11735 006c 0368 ldr r3, [r0]
11736 006e 1022 movs r2, #16
11737 .LVL764:
4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11738 .loc 1 4621 5 is_stmt 0 view .LVU3963
11739 0070 DA61 str r2, [r3, #28]
4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11740 .loc 1 4626 5 is_stmt 1 view .LVU3964
4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11741 .loc 1 4626 21 is_stmt 0 view .LVU3965
11742 0072 436C ldr r3, [r0, #68]
11743 0074 43F00403 orr r3, r3, #4
11744 0078 4364 str r3, [r0, #68]
4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11745 .loc 1 4629 5 is_stmt 1 view .LVU3966
11746 007a FFF7FEFF bl I2C_Flush_TXDR
11747 .LVL765:
4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11748 .loc 1 4629 5 is_stmt 0 view .LVU3967
11749 007e E9E7 b .L723
11750 .LVL766:
11751 .L724:
ARM GAS /tmp/ccEimIdZ.s page 389
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11752 .loc 1 4645 8 is_stmt 1 view .LVU3968
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11753 .loc 1 4645 11 is_stmt 0 view .LVU3969
11754 0080 15F0020F tst r5, #2
11755 0084 12D0 beq .L725
4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11756 .loc 1 4645 65 discriminator 1 view .LVU3970
11757 0086 16F0020F tst r6, #2
11758 008a 0FD0 beq .L725
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11759 .loc 1 4648 5 is_stmt 1 view .LVU3971
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11760 .loc 1 4648 33 is_stmt 0 view .LVU3972
11761 008c 626A ldr r2, [r4, #36]
11762 .LVL767:
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11763 .loc 1 4648 9 view .LVU3973
11764 008e 2368 ldr r3, [r4]
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11765 .loc 1 4648 28 view .LVU3974
11766 0090 1278 ldrb r2, [r2] @ zero_extendqisi2
4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11767 .loc 1 4648 26 view .LVU3975
11768 0092 9A62 str r2, [r3, #40]
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11769 .loc 1 4651 5 is_stmt 1 view .LVU3976
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11770 .loc 1 4651 9 is_stmt 0 view .LVU3977
11771 0094 636A ldr r3, [r4, #36]
4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11772 .loc 1 4651 19 view .LVU3978
11773 0096 0133 adds r3, r3, #1
11774 0098 6362 str r3, [r4, #36]
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11775 .loc 1 4653 5 is_stmt 1 view .LVU3979
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11776 .loc 1 4653 9 is_stmt 0 view .LVU3980
11777 009a 238D ldrh r3, [r4, #40]
4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--;
11778 .loc 1 4653 19 view .LVU3981
11779 009c 013B subs r3, r3, #1
11780 009e 2385 strh r3, [r4, #40] @ movhi
4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11781 .loc 1 4654 5 is_stmt 1 view .LVU3982
4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11782 .loc 1 4654 9 is_stmt 0 view .LVU3983
11783 00a0 638D ldrh r3, [r4, #42]
11784 00a2 9BB2 uxth r3, r3
4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11785 .loc 1 4654 20 view .LVU3984
11786 00a4 013B subs r3, r3, #1
11787 00a6 9BB2 uxth r3, r3
11788 00a8 6385 strh r3, [r4, #42] @ movhi
11789 00aa D3E7 b .L723
11790 .LVL768:
11791 .L725:
ARM GAS /tmp/ccEimIdZ.s page 390
4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11792 .loc 1 4656 8 is_stmt 1 view .LVU3985
4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11793 .loc 1 4656 11 is_stmt 0 view .LVU3986
11794 00ac 15F0800F tst r5, #128
11795 00b0 3FD0 beq .L726
4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11796 .loc 1 4656 64 discriminator 1 view .LVU3987
11797 00b2 16F0400F tst r6, #64
11798 00b6 3CD0 beq .L726
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11799 .loc 1 4658 5 is_stmt 1 view .LVU3988
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11800 .loc 1 4658 14 is_stmt 0 view .LVU3989
11801 00b8 638D ldrh r3, [r4, #42]
11802 00ba 9BB2 uxth r3, r3
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11803 .loc 1 4658 8 view .LVU3990
11804 00bc 5BB3 cbz r3, .L727
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11805 .loc 1 4658 41 discriminator 1 view .LVU3991
11806 00be 238D ldrh r3, [r4, #40]
4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11807 .loc 1 4658 33 discriminator 1 view .LVU3992
11808 00c0 4BBB cbnz r3, .L727
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11809 .loc 1 4660 7 is_stmt 1 view .LVU3993
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11810 .loc 1 4660 35 is_stmt 0 view .LVU3994
11811 00c2 2368 ldr r3, [r4]
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11812 .loc 1 4660 45 view .LVU3995
11813 00c4 5968 ldr r1, [r3, #4]
11814 .LVL769:
4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11815 .loc 1 4660 18 view .LVU3996
11816 00c6 C1F30901 ubfx r1, r1, #0, #10
11817 .LVL770:
4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11818 .loc 1 4662 7 is_stmt 1 view .LVU3997
4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11819 .loc 1 4662 15 is_stmt 0 view .LVU3998
11820 00ca 638D ldrh r3, [r4, #42]
11821 00cc 9BB2 uxth r3, r3
4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11822 .loc 1 4662 10 view .LVU3999
11823 00ce FF2B cmp r3, #255
11824 00d0 0ED8 bhi .L741
4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11825 .loc 1 4669 9 is_stmt 1 view .LVU4000
4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11826 .loc 1 4669 30 is_stmt 0 view .LVU4001
11827 00d2 628D ldrh r2, [r4, #42]
11828 .LVL771:
4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11829 .loc 1 4669 30 view .LVU4002
11830 00d4 92B2 uxth r2, r2
ARM GAS /tmp/ccEimIdZ.s page 391
4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11831 .loc 1 4669 24 view .LVU4003
11832 00d6 2285 strh r2, [r4, #40] @ movhi
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11833 .loc 1 4670 9 is_stmt 1 view .LVU4004
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11834 .loc 1 4670 17 is_stmt 0 view .LVU4005
11835 00d8 E36A ldr r3, [r4, #44]
4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11836 .loc 1 4670 12 view .LVU4006
11837 00da 13F5803F cmn r3, #65536
11838 00de 11D0 beq .L729
4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11839 .loc 1 4672 11 is_stmt 1 view .LVU4007
11840 00e0 E36A ldr r3, [r4, #44]
11841 00e2 0020 movs r0, #0
11842 .LVL772:
4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11843 .loc 1 4672 11 is_stmt 0 view .LVU4008
11844 00e4 0090 str r0, [sp]
11845 00e6 D2B2 uxtb r2, r2
11846 00e8 2046 mov r0, r4
11847 00ea FFF7FEFF bl I2C_TransferConfig
11848 .LVL773:
4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11849 .loc 1 4672 11 view .LVU4009
11850 00ee B1E7 b .L723
11851 .LVL774:
11852 .L741:
4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
11853 .loc 1 4664 9 is_stmt 1 view .LVU4010
4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
11854 .loc 1 4664 24 is_stmt 0 view .LVU4011
11855 00f0 FF22 movs r2, #255
11856 .LVL775:
4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
11857 .loc 1 4664 24 view .LVU4012
11858 00f2 2285 strh r2, [r4, #40] @ movhi
4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11859 .loc 1 4665 9 is_stmt 1 view .LVU4013
11860 00f4 0023 movs r3, #0
11861 00f6 0093 str r3, [sp]
11862 00f8 4FF08073 mov r3, #16777216
11863 00fc 2046 mov r0, r4
11864 .LVL776:
4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11865 .loc 1 4665 9 is_stmt 0 view .LVU4014
11866 00fe FFF7FEFF bl I2C_TransferConfig
11867 .LVL777:
4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11868 .loc 1 4665 9 view .LVU4015
11869 0102 A7E7 b .L723
11870 .LVL778:
11871 .L729:
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11872 .loc 1 4676 11 is_stmt 1 view .LVU4016
11873 0104 0023 movs r3, #0
ARM GAS /tmp/ccEimIdZ.s page 392
11874 0106 0093 str r3, [sp]
11875 0108 4FF00073 mov r3, #33554432
11876 010c D2B2 uxtb r2, r2
11877 010e 2046 mov r0, r4
11878 .LVL779:
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11879 .loc 1 4676 11 is_stmt 0 view .LVU4017
11880 0110 FFF7FEFF bl I2C_TransferConfig
11881 .LVL780:
4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11882 .loc 1 4676 11 view .LVU4018
11883 0114 9EE7 b .L723
11884 .LVL781:
11885 .L727:
4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11886 .loc 1 4683 7 is_stmt 1 view .LVU4019
4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11887 .loc 1 4683 11 is_stmt 0 view .LVU4020
11888 0116 2368 ldr r3, [r4]
11889 0118 5B68 ldr r3, [r3, #4]
4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11890 .loc 1 4683 10 view .LVU4021
11891 011a 13F0007F tst r3, #33554432
11892 011e 03D1 bne .L730
4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11893 .loc 1 4686 9 is_stmt 1 view .LVU4022
11894 0120 2046 mov r0, r4
11895 .LVL782:
4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11896 .loc 1 4686 9 is_stmt 0 view .LVU4023
11897 0122 FFF7FEFF bl I2C_ITMasterSeqCplt
11898 .LVL783:
4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11899 .loc 1 4686 9 view .LVU4024
11900 0126 95E7 b .L723
11901 .LVL784:
11902 .L730:
4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11903 .loc 1 4692 9 is_stmt 1 view .LVU4025
11904 0128 4021 movs r1, #64
11905 .LVL785:
4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11906 .loc 1 4692 9 is_stmt 0 view .LVU4026
11907 012a 2046 mov r0, r4
11908 .LVL786:
4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11909 .loc 1 4692 9 view .LVU4027
11910 012c FFF7FEFF bl I2C_ITError
11911 .LVL787:
4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11912 .loc 1 4692 9 view .LVU4028
11913 0130 90E7 b .L723
11914 .LVL788:
11915 .L726:
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11916 .loc 1 4696 8 is_stmt 1 view .LVU4029
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 393
11917 .loc 1 4696 11 is_stmt 0 view .LVU4030
11918 0132 15F0400F tst r5, #64
11919 0136 8DD0 beq .L723
4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11920 .loc 1 4696 63 discriminator 1 view .LVU4031
11921 0138 16F0400F tst r6, #64
11922 013c 8AD0 beq .L723
4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11923 .loc 1 4698 5 is_stmt 1 view .LVU4032
4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11924 .loc 1 4698 13 is_stmt 0 view .LVU4033
11925 013e 638D ldrh r3, [r4, #42]
11926 0140 9BB2 uxth r3, r3
4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11927 .loc 1 4698 8 view .LVU4034
11928 0142 8BB9 cbnz r3, .L731
4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11929 .loc 1 4700 7 is_stmt 1 view .LVU4035
4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11930 .loc 1 4700 11 is_stmt 0 view .LVU4036
11931 0144 2368 ldr r3, [r4]
11932 0146 5A68 ldr r2, [r3, #4]
11933 .LVL789:
4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11934 .loc 1 4700 10 view .LVU4037
11935 0148 12F0007F tst r2, #33554432
11936 014c 82D1 bne .L723
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11937 .loc 1 4703 9 is_stmt 1 view .LVU4038
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11938 .loc 1 4703 17 is_stmt 0 view .LVU4039
11939 014e E26A ldr r2, [r4, #44]
4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
11940 .loc 1 4703 12 view .LVU4040
11941 0150 12F5803F cmn r2, #65536
11942 0154 04D1 bne .L732
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11943 .loc 1 4706 11 is_stmt 1 view .LVU4041
4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11944 .loc 1 4706 31 is_stmt 0 view .LVU4042
11945 0156 5A68 ldr r2, [r3, #4]
11946 0158 42F48042 orr r2, r2, #16384
11947 015c 5A60 str r2, [r3, #4]
11948 015e 79E7 b .L723
11949 .L732:
4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11950 .loc 1 4711 11 is_stmt 1 view .LVU4043
11951 0160 2046 mov r0, r4
11952 .LVL790:
4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11953 .loc 1 4711 11 is_stmt 0 view .LVU4044
11954 0162 FFF7FEFF bl I2C_ITMasterSeqCplt
11955 .LVL791:
4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11956 .loc 1 4711 11 view .LVU4045
11957 0166 75E7 b .L723
11958 .LVL792:
ARM GAS /tmp/ccEimIdZ.s page 394
11959 .L731:
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11960 .loc 1 4719 7 is_stmt 1 view .LVU4046
11961 0168 4021 movs r1, #64
11962 .LVL793:
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11963 .loc 1 4719 7 is_stmt 0 view .LVU4047
11964 016a 2046 mov r0, r4
11965 .LVL794:
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11966 .loc 1 4719 7 view .LVU4048
11967 016c FFF7FEFF bl I2C_ITError
11968 .LVL795:
4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11969 .loc 1 4719 7 view .LVU4049
11970 0170 70E7 b .L723
11971 .LVL796:
11972 .L740:
4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
11973 .loc 1 4730 5 is_stmt 1 view .LVU4050
11974 0172 2946 mov r1, r5
11975 0174 2046 mov r0, r4
11976 0176 FFF7FEFF bl I2C_ITMasterCplt
11977 .LVL797:
11978 017a 72E7 b .L733
11979 .LVL798:
11980 .L734:
11981 .LCFI130:
11982 .cfi_def_cfa_offset 0
11983 .cfi_restore 4
11984 .cfi_restore 5
11985 .cfi_restore 6
11986 .cfi_restore 14
4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11987 .loc 1 4616 3 is_stmt 0 view .LVU4051
11988 017c 0220 movs r0, #2
11989 .LVL799:
4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
11990 .loc 1 4737 1 view .LVU4052
11991 017e 7047 bx lr
11992 .cfi_endproc
11993 .LFE190:
11995 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
11996 .align 1
11997 .syntax unified
11998 .thumb
11999 .thumb_func
12000 .fpu fpv5-d16
12002 I2C_Slave_ISR_DMA:
12003 .LVL800:
12004 .LFB193:
5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
12005 .loc 1 5016 1 is_stmt 1 view -0
12006 .cfi_startproc
12007 @ args = 0, pretend = 0, frame = 0
12008 @ frame_needed = 0, uses_anonymous_args = 0
5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
ARM GAS /tmp/ccEimIdZ.s page 395
12009 .loc 1 5016 1 is_stmt 0 view .LVU4054
12010 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
12011 .LCFI131:
12012 .cfi_def_cfa_offset 24
12013 .cfi_offset 3, -24
12014 .cfi_offset 4, -20
12015 .cfi_offset 5, -16
12016 .cfi_offset 6, -12
12017 .cfi_offset 7, -8
12018 .cfi_offset 14, -4
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
12019 .loc 1 5017 3 is_stmt 1 view .LVU4055
5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
12020 .loc 1 5017 12 is_stmt 0 view .LVU4056
12021 0002 C76A ldr r7, [r0, #44]
12022 .LVL801:
5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
12023 .loc 1 5018 3 is_stmt 1 view .LVU4057
5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12024 .loc 1 5019 3 view .LVU4058
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12025 .loc 1 5022 3 view .LVU4059
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12026 .loc 1 5022 3 view .LVU4060
12027 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12028 0008 012B cmp r3, #1
12029 000a 00F00381 beq .L763
12030 000e 0446 mov r4, r0
12031 0010 0D46 mov r5, r1
12032 0012 1646 mov r6, r2
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12033 .loc 1 5022 3 discriminator 2 view .LVU4061
12034 0014 0123 movs r3, #1
12035 0016 80F84030 strb r3, [r0, #64]
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12036 .loc 1 5022 3 discriminator 2 view .LVU4062
5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12037 .loc 1 5025 3 discriminator 2 view .LVU4063
5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12038 .loc 1 5025 6 is_stmt 0 discriminator 2 view .LVU4064
12039 001a 11F0200F tst r1, #32
12040 001e 02D0 beq .L744
5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12041 .loc 1 5025 58 discriminator 1 view .LVU4065
12042 0020 12F0200F tst r2, #32
12043 0024 4DD1 bne .L768
12044 .LVL802:
12045 .L744:
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12046 .loc 1 5031 3 is_stmt 1 view .LVU4066
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12047 .loc 1 5031 6 is_stmt 0 view .LVU4067
12048 0026 15F0100F tst r5, #16
12049 002a 00F0E480 beq .L745
5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12050 .loc 1 5031 55 discriminator 1 view .LVU4068
12051 002e 16F0100F tst r6, #16
ARM GAS /tmp/ccEimIdZ.s page 396
12052 0032 00F0E080 beq .L745
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
12053 .loc 1 5037 5 is_stmt 1 view .LVU4069
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
12054 .loc 1 5037 10 is_stmt 0 view .LVU4070
12055 0036 C6F38032 ubfx r2, r6, #14, #1
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
12056 .loc 1 5037 8 view .LVU4071
12057 003a 16F4804F tst r6, #16384
12058 003e 03D1 bne .L746
5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
12059 .loc 1 5037 68 discriminator 1 view .LVU4072
12060 0040 16F4004F tst r6, #32768
12061 0044 00F0D380 beq .L747
12062 .L746:
5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12063 .loc 1 5041 7 is_stmt 1 view .LVU4073
5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12064 .loc 1 5041 15 is_stmt 0 view .LVU4074
12065 0048 E36B ldr r3, [r4, #60]
5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12066 .loc 1 5041 10 view .LVU4075
12067 004a 002B cmp r3, #0
12068 004c 44D0 beq .L764
5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12069 .loc 1 5043 9 is_stmt 1 view .LVU4076
5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12070 .loc 1 5043 12 is_stmt 0 view .LVU4077
12071 004e 16F4004F tst r6, #32768
12072 0052 43D0 beq .L765
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12073 .loc 1 5045 11 is_stmt 1 view .LVU4078
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12074 .loc 1 5045 15 is_stmt 0 view .LVU4079
12075 0054 1B68 ldr r3, [r3]
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12076 .loc 1 5045 51 view .LVU4080
12077 0056 7048 ldr r0, .L772
12078 0058 7049 ldr r1, .L772+4
12079 005a 8B42 cmp r3, r1
12080 005c 18BF it ne
12081 005e 8342 cmpne r3, r0
12082 0060 32D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12083 .loc 1 5045 15 discriminator 2 view .LVU4081
12084 0062 1831 adds r1, r1, #24
12085 0064 8B42 cmp r3, r1
12086 0066 2FD0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12087 .loc 1 5045 15 discriminator 4 view .LVU4082
12088 0068 1831 adds r1, r1, #24
12089 006a 8B42 cmp r3, r1
12090 006c 2CD0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12091 .loc 1 5045 15 discriminator 6 view .LVU4083
12092 006e 1831 adds r1, r1, #24
12093 0070 8B42 cmp r3, r1
ARM GAS /tmp/ccEimIdZ.s page 397
12094 0072 29D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12095 .loc 1 5045 15 discriminator 8 view .LVU4084
12096 0074 1831 adds r1, r1, #24
12097 0076 8B42 cmp r3, r1
12098 0078 26D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12099 .loc 1 5045 15 discriminator 10 view .LVU4085
12100 007a 1831 adds r1, r1, #24
12101 007c 8B42 cmp r3, r1
12102 007e 23D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12103 .loc 1 5045 15 discriminator 12 view .LVU4086
12104 0080 1831 adds r1, r1, #24
12105 0082 8B42 cmp r3, r1
12106 0084 20D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12107 .loc 1 5045 15 discriminator 14 view .LVU4087
12108 0086 01F55671 add r1, r1, #856
12109 008a 8B42 cmp r3, r1
12110 008c 1CD0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12111 .loc 1 5045 15 discriminator 16 view .LVU4088
12112 008e 1831 adds r1, r1, #24
12113 0090 8B42 cmp r3, r1
12114 0092 19D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12115 .loc 1 5045 15 discriminator 18 view .LVU4089
12116 0094 1831 adds r1, r1, #24
12117 0096 8B42 cmp r3, r1
12118 0098 16D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12119 .loc 1 5045 15 discriminator 20 view .LVU4090
12120 009a 1831 adds r1, r1, #24
12121 009c 8B42 cmp r3, r1
12122 009e 13D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12123 .loc 1 5045 15 discriminator 22 view .LVU4091
12124 00a0 1831 adds r1, r1, #24
12125 00a2 8B42 cmp r3, r1
12126 00a4 10D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12127 .loc 1 5045 15 discriminator 24 view .LVU4092
12128 00a6 1831 adds r1, r1, #24
12129 00a8 8B42 cmp r3, r1
12130 00aa 0DD0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12131 .loc 1 5045 15 discriminator 26 view .LVU4093
12132 00ac 1831 adds r1, r1, #24
12133 00ae 8B42 cmp r3, r1
12134 00b0 0AD0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12135 .loc 1 5045 15 discriminator 28 view .LVU4094
12136 00b2 1831 adds r1, r1, #24
12137 00b4 8B42 cmp r3, r1
12138 00b6 07D0 beq .L749
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 398
12139 .loc 1 5045 15 discriminator 30 view .LVU4095
12140 00b8 5B68 ldr r3, [r3, #4]
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12141 .loc 1 5045 51 discriminator 30 view .LVU4096
12142 00ba B3FA83F3 clz r3, r3
12143 00be 5B09 lsrs r3, r3, #5
12144 00c0 06E0 b .L751
12145 .LVL803:
12146 .L768:
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12147 .loc 1 5028 5 is_stmt 1 view .LVU4097
12148 00c2 FFF7FEFF bl I2C_ITSlaveCplt
12149 .LVL804:
5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12150 .loc 1 5028 5 is_stmt 0 view .LVU4098
12151 00c6 AEE7 b .L744
12152 .L749:
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12153 .loc 1 5045 15 discriminator 29 view .LVU4099
12154 00c8 5B68 ldr r3, [r3, #4]
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12155 .loc 1 5045 51 discriminator 29 view .LVU4100
12156 00ca B3FA83F3 clz r3, r3
12157 00ce 5B09 lsrs r3, r3, #5
12158 .L751:
5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12159 .loc 1 5045 14 discriminator 32 view .LVU4101
12160 00d0 002B cmp r3, #0
12161 00d2 40D1 bne .L766
5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
12162 .loc 1 5018 12 view .LVU4102
12163 00d4 0021 movs r1, #0
12164 00d6 02E0 b .L748
12165 .L764:
5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
12166 .loc 1 5018 12 view .LVU4103
12167 00d8 0021 movs r1, #0
12168 00da 00E0 b .L748
12169 .L765:
5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
12170 .loc 1 5018 12 view .LVU4104
12171 00dc 0021 movs r1, #0
12172 .L748:
12173 .LVL805:
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12174 .loc 1 5053 7 is_stmt 1 view .LVU4105
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12175 .loc 1 5053 15 is_stmt 0 view .LVU4106
12176 00de A36B ldr r3, [r4, #56]
5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12177 .loc 1 5053 10 view .LVU4107
12178 00e0 002B cmp r3, #0
12179 00e2 3FD0 beq .L752
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12180 .loc 1 5055 9 is_stmt 1 view .LVU4108
5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12181 .loc 1 5055 12 is_stmt 0 view .LVU4109
ARM GAS /tmp/ccEimIdZ.s page 399
12182 00e4 002A cmp r2, #0
12183 00e6 3DD0 beq .L752
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12184 .loc 1 5057 11 is_stmt 1 view .LVU4110
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12185 .loc 1 5057 15 is_stmt 0 view .LVU4111
12186 00e8 1B68 ldr r3, [r3]
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12187 .loc 1 5057 51 view .LVU4112
12188 00ea 4B48 ldr r0, .L772
12189 00ec 4B4A ldr r2, .L772+4
12190 00ee 9342 cmp r3, r2
12191 00f0 18BF it ne
12192 00f2 8342 cmpne r3, r0
12193 00f4 31D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12194 .loc 1 5057 15 discriminator 2 view .LVU4113
12195 00f6 1832 adds r2, r2, #24
12196 00f8 9342 cmp r3, r2
12197 00fa 2ED0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12198 .loc 1 5057 15 discriminator 4 view .LVU4114
12199 00fc 1832 adds r2, r2, #24
12200 00fe 9342 cmp r3, r2
12201 0100 2BD0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12202 .loc 1 5057 15 discriminator 6 view .LVU4115
12203 0102 1832 adds r2, r2, #24
12204 0104 9342 cmp r3, r2
12205 0106 28D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12206 .loc 1 5057 15 discriminator 8 view .LVU4116
12207 0108 1832 adds r2, r2, #24
12208 010a 9342 cmp r3, r2
12209 010c 25D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12210 .loc 1 5057 15 discriminator 10 view .LVU4117
12211 010e 1832 adds r2, r2, #24
12212 0110 9342 cmp r3, r2
12213 0112 22D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12214 .loc 1 5057 15 discriminator 12 view .LVU4118
12215 0114 1832 adds r2, r2, #24
12216 0116 9342 cmp r3, r2
12217 0118 1FD0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12218 .loc 1 5057 15 discriminator 14 view .LVU4119
12219 011a 02F55672 add r2, r2, #856
12220 011e 9342 cmp r3, r2
12221 0120 1BD0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12222 .loc 1 5057 15 discriminator 16 view .LVU4120
12223 0122 1832 adds r2, r2, #24
12224 0124 9342 cmp r3, r2
12225 0126 18D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12226 .loc 1 5057 15 discriminator 18 view .LVU4121
ARM GAS /tmp/ccEimIdZ.s page 400
12227 0128 1832 adds r2, r2, #24
12228 012a 9342 cmp r3, r2
12229 012c 15D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12230 .loc 1 5057 15 discriminator 20 view .LVU4122
12231 012e 1832 adds r2, r2, #24
12232 0130 9342 cmp r3, r2
12233 0132 12D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12234 .loc 1 5057 15 discriminator 22 view .LVU4123
12235 0134 1832 adds r2, r2, #24
12236 0136 9342 cmp r3, r2
12237 0138 0FD0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12238 .loc 1 5057 15 discriminator 24 view .LVU4124
12239 013a 1832 adds r2, r2, #24
12240 013c 9342 cmp r3, r2
12241 013e 0CD0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12242 .loc 1 5057 15 discriminator 26 view .LVU4125
12243 0140 1832 adds r2, r2, #24
12244 0142 9342 cmp r3, r2
12245 0144 09D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12246 .loc 1 5057 15 discriminator 28 view .LVU4126
12247 0146 1832 adds r2, r2, #24
12248 0148 9342 cmp r3, r2
12249 014a 06D0 beq .L753
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12250 .loc 1 5057 15 discriminator 30 view .LVU4127
12251 014c 5B68 ldr r3, [r3, #4]
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12252 .loc 1 5057 51 discriminator 30 view .LVU4128
12253 014e B3FA83F3 clz r3, r3
12254 0152 5B09 lsrs r3, r3, #5
12255 0154 05E0 b .L755
12256 .LVL806:
12257 .L766:
5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12258 .loc 1 5047 26 view .LVU4129
12259 0156 0121 movs r1, #1
12260 0158 C1E7 b .L748
12261 .LVL807:
12262 .L753:
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12263 .loc 1 5057 15 discriminator 29 view .LVU4130
12264 015a 5B68 ldr r3, [r3, #4]
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12265 .loc 1 5057 51 discriminator 29 view .LVU4131
12266 015c B3FA83F3 clz r3, r3
12267 0160 5B09 lsrs r3, r3, #5
12268 .L755:
5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12269 .loc 1 5057 14 discriminator 32 view .LVU4132
12270 0162 D3B9 cbnz r3, .L756
12271 .L752:
5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 401
12272 .loc 1 5064 7 is_stmt 1 view .LVU4133
5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12273 .loc 1 5064 10 is_stmt 0 view .LVU4134
12274 0164 C9B9 cbnz r1, .L756
5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12275 .loc 1 5093 9 is_stmt 1 view .LVU4135
12276 0166 2368 ldr r3, [r4]
12277 0168 1022 movs r2, #16
12278 016a DA61 str r2, [r3, #28]
5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12279 .loc 1 5096 9 view .LVU4136
5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12280 .loc 1 5096 25 is_stmt 0 view .LVU4137
12281 016c 636C ldr r3, [r4, #68]
12282 016e 43F00403 orr r3, r3, #4
12283 0172 6364 str r3, [r4, #68]
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12284 .loc 1 5099 9 is_stmt 1 view .LVU4138
5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12285 .loc 1 5099 18 is_stmt 0 view .LVU4139
12286 0174 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12287 0178 DBB2 uxtb r3, r3
12288 .LVL808:
5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12289 .loc 1 5101 9 is_stmt 1 view .LVU4140
5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12290 .loc 1 5101 12 is_stmt 0 view .LVU4141
12291 017a B7F1807F cmp r7, #16777216
12292 017e 18BF it ne
12293 0180 002F cmpne r7, #0
12294 0182 3ED1 bne .L759
5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12295 .loc 1 5103 11 is_stmt 1 view .LVU4142
5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12296 .loc 1 5103 14 is_stmt 0 view .LVU4143
12297 0184 292B cmp r3, #41
12298 0186 18BF it ne
12299 0188 212B cmpne r3, #33
12300 018a 29D1 bne .L761
5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12301 .loc 1 5105 13 is_stmt 1 view .LVU4144
5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12302 .loc 1 5105 33 is_stmt 0 view .LVU4145
12303 018c 2123 movs r3, #33
12304 .LVL809:
5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12305 .loc 1 5105 33 view .LVU4146
12306 018e 2363 str r3, [r4, #48]
12307 .L762:
5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12308 .loc 1 5114 11 is_stmt 1 view .LVU4147
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12309 .loc 1 5117 11 view .LVU4148
12310 0190 616C ldr r1, [r4, #68]
12311 .LVL810:
5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12312 .loc 1 5117 11 is_stmt 0 view .LVU4149
ARM GAS /tmp/ccEimIdZ.s page 402
12313 0192 2046 mov r0, r4
12314 0194 FFF7FEFF bl I2C_ITError
12315 .LVL811:
12316 0198 33E0 b .L759
12317 .LVL812:
12318 .L756:
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12319 .loc 1 5066 9 is_stmt 1 view .LVU4150
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12320 .loc 1 5066 18 is_stmt 0 view .LVU4151
12321 019a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12322 019e DBB2 uxtb r3, r3
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12323 .loc 1 5066 12 view .LVU4152
12324 01a0 282B cmp r3, #40
12325 01a2 08D0 beq .L769
12326 .L758:
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12327 .loc 1 5071 14 is_stmt 1 view .LVU4153
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12328 .loc 1 5071 23 is_stmt 0 view .LVU4154
12329 01a4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12330 01a8 DBB2 uxtb r3, r3
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12331 .loc 1 5071 17 view .LVU4155
12332 01aa 292B cmp r3, #41
12333 01ac 0BD0 beq .L770
12334 .L760:
5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12335 .loc 1 5086 11 is_stmt 1 view .LVU4156
12336 01ae 2368 ldr r3, [r4]
12337 01b0 1022 movs r2, #16
12338 01b2 DA61 str r2, [r3, #28]
12339 01b4 25E0 b .L759
12340 .L769:
5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12341 .loc 1 5066 51 is_stmt 0 discriminator 1 view .LVU4157
12342 01b6 B7F1007F cmp r7, #33554432
12343 01ba F3D1 bne .L758
5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12344 .loc 1 5069 11 is_stmt 1 view .LVU4158
12345 01bc 2946 mov r1, r5
12346 01be 2046 mov r0, r4
12347 01c0 FFF7FEFF bl I2C_ITListenCplt
12348 .LVL813:
12349 01c4 1DE0 b .L759
12350 .L770:
5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12351 .loc 1 5071 64 is_stmt 0 discriminator 1 view .LVU4159
12352 01c6 17F5803F cmn r7, #65536
12353 01ca F0D0 beq .L760
5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12354 .loc 1 5074 11 is_stmt 1 view .LVU4160
12355 01cc 2368 ldr r3, [r4]
12356 01ce 1022 movs r2, #16
12357 01d0 DA61 str r2, [r3, #28]
5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 403
12358 .loc 1 5077 11 view .LVU4161
12359 01d2 2046 mov r0, r4
12360 01d4 FFF7FEFF bl I2C_Flush_TXDR
12361 .LVL814:
5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12362 .loc 1 5081 11 view .LVU4162
12363 01d8 2046 mov r0, r4
12364 01da FFF7FEFF bl I2C_ITSlaveSeqCplt
12365 .LVL815:
12366 01de 10E0 b .L759
12367 .LVL816:
12368 .L761:
5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12369 .loc 1 5107 16 view .LVU4163
5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12370 .loc 1 5107 19 is_stmt 0 view .LVU4164
12371 01e0 2A2B cmp r3, #42
12372 01e2 18BF it ne
12373 01e4 222B cmpne r3, #34
12374 01e6 D3D1 bne .L762
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12375 .loc 1 5109 13 is_stmt 1 view .LVU4165
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12376 .loc 1 5109 33 is_stmt 0 view .LVU4166
12377 01e8 2223 movs r3, #34
12378 .LVL817:
5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12379 .loc 1 5109 33 view .LVU4167
12380 01ea 2363 str r3, [r4, #48]
12381 01ec D0E7 b .L762
12382 .LVL818:
12383 .L747:
5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12384 .loc 1 5124 7 is_stmt 1 view .LVU4168
12385 01ee 2368 ldr r3, [r4]
12386 01f0 1022 movs r2, #16
12387 01f2 DA61 str r2, [r3, #28]
12388 01f4 05E0 b .L759
12389 .L745:
5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12390 .loc 1 5127 8 view .LVU4169
5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12391 .loc 1 5127 11 is_stmt 0 view .LVU4170
12392 01f6 15F0080F tst r5, #8
12393 01fa 02D0 beq .L759
5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12394 .loc 1 5127 62 discriminator 1 view .LVU4171
12395 01fc 16F0080F tst r6, #8
12396 0200 03D1 bne .L771
12397 .LVL819:
12398 .L759:
5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12399 .loc 1 5134 3 is_stmt 1 view .LVU4172
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12400 .loc 1 5137 3 view .LVU4173
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12401 .loc 1 5137 3 view .LVU4174
ARM GAS /tmp/ccEimIdZ.s page 404
12402 0202 0020 movs r0, #0
12403 0204 84F84000 strb r0, [r4, #64]
5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12404 .loc 1 5137 3 view .LVU4175
5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12405 .loc 1 5139 3 view .LVU4176
12406 .LVL820:
12407 .L743:
5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12408 .loc 1 5140 1 is_stmt 0 view .LVU4177
12409 0208 F8BD pop {r3, r4, r5, r6, r7, pc}
12410 .LVL821:
12411 .L771:
5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12412 .loc 1 5129 5 is_stmt 1 view .LVU4178
12413 020a 2946 mov r1, r5
12414 020c 2046 mov r0, r4
12415 020e FFF7FEFF bl I2C_ITAddrCplt
12416 .LVL822:
12417 0212 F6E7 b .L759
12418 .LVL823:
12419 .L763:
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12420 .loc 1 5022 3 is_stmt 0 view .LVU4179
12421 0214 0220 movs r0, #2
12422 .LVL824:
5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12423 .loc 1 5022 3 view .LVU4180
12424 0216 F7E7 b .L743
12425 .L773:
12426 .align 2
12427 .L772:
12428 0218 10000240 .word 1073872912
12429 021c 28000240 .word 1073872936
12430 .cfi_endproc
12431 .LFE193:
12433 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
12434 .align 1
12435 .syntax unified
12436 .thumb
12437 .thumb_func
12438 .fpu fpv5-d16
12440 I2C_Master_ISR_DMA:
12441 .LVL825:
12442 .LFB192:
4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
12443 .loc 1 4881 1 is_stmt 1 view -0
12444 .cfi_startproc
12445 @ args = 0, pretend = 0, frame = 0
12446 @ frame_needed = 0, uses_anonymous_args = 0
4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode;
12447 .loc 1 4882 3 view .LVU4182
4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12448 .loc 1 4883 3 view .LVU4183
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12449 .loc 1 4886 3 view .LVU4184
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 405
12450 .loc 1 4886 3 view .LVU4185
12451 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12452 0004 012B cmp r3, #1
12453 0006 00F09A80 beq .L787
4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress;
12454 .loc 1 4881 1 is_stmt 0 discriminator 2 view .LVU4186
12455 000a 10B5 push {r4, lr}
12456 .LCFI132:
12457 .cfi_def_cfa_offset 8
12458 .cfi_offset 4, -8
12459 .cfi_offset 14, -4
12460 000c 82B0 sub sp, sp, #8
12461 .LCFI133:
12462 .cfi_def_cfa_offset 16
12463 000e 0446 mov r4, r0
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12464 .loc 1 4886 3 is_stmt 1 discriminator 2 view .LVU4187
12465 0010 0123 movs r3, #1
12466 0012 80F84030 strb r3, [r0, #64]
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12467 .loc 1 4886 3 discriminator 2 view .LVU4188
4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12468 .loc 1 4888 3 discriminator 2 view .LVU4189
4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12469 .loc 1 4888 6 is_stmt 0 discriminator 2 view .LVU4190
12470 0016 11F0100F tst r1, #16
12471 001a 02D0 beq .L776
4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12472 .loc 1 4888 55 discriminator 1 view .LVU4191
12473 001c 12F0100F tst r2, #16
12474 0020 32D1 bne .L793
12475 .L776:
4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12476 .loc 1 4904 8 is_stmt 1 view .LVU4192
4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12477 .loc 1 4904 11 is_stmt 0 view .LVU4193
12478 0022 11F0800F tst r1, #128
12479 0026 60D0 beq .L778
4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12480 .loc 1 4904 61 discriminator 1 view .LVU4194
12481 0028 12F0400F tst r2, #64
12482 002c 5DD0 beq .L778
4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12483 .loc 1 4907 5 is_stmt 1 view .LVU4195
12484 002e 2268 ldr r2, [r4]
12485 .LVL826:
4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12486 .loc 1 4907 5 is_stmt 0 view .LVU4196
12487 0030 1368 ldr r3, [r2]
12488 0032 23F04003 bic r3, r3, #64
12489 0036 1360 str r3, [r2]
4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12490 .loc 1 4909 5 is_stmt 1 view .LVU4197
4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12491 .loc 1 4909 13 is_stmt 0 view .LVU4198
12492 0038 638D ldrh r3, [r4, #42]
12493 003a 9BB2 uxth r3, r3
ARM GAS /tmp/ccEimIdZ.s page 406
4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12494 .loc 1 4909 8 view .LVU4199
12495 003c 002B cmp r3, #0
12496 003e 46D0 beq .L779
4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12497 .loc 1 4912 7 is_stmt 1 view .LVU4200
4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12498 .loc 1 4912 35 is_stmt 0 view .LVU4201
12499 0040 2368 ldr r3, [r4]
4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12500 .loc 1 4912 45 view .LVU4202
12501 0042 5968 ldr r1, [r3, #4]
12502 .LVL827:
4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12503 .loc 1 4912 18 view .LVU4203
12504 0044 C1F30901 ubfx r1, r1, #0, #10
12505 .LVL828:
4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12506 .loc 1 4915 7 is_stmt 1 view .LVU4204
4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12507 .loc 1 4915 15 is_stmt 0 view .LVU4205
12508 0048 638D ldrh r3, [r4, #42]
12509 004a 9BB2 uxth r3, r3
4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12510 .loc 1 4915 10 view .LVU4206
12511 004c FF2B cmp r3, #255
12512 004e 2DD9 bls .L780
4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
12513 .loc 1 4917 9 is_stmt 1 view .LVU4207
4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
12514 .loc 1 4917 24 is_stmt 0 view .LVU4208
12515 0050 FF23 movs r3, #255
12516 0052 2385 strh r3, [r4, #40] @ movhi
4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12517 .loc 1 4918 9 is_stmt 1 view .LVU4209
12518 .LVL829:
4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12519 .loc 1 4918 18 is_stmt 0 view .LVU4210
12520 0054 4FF08073 mov r3, #16777216
12521 .LVL830:
12522 .L781:
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12523 .loc 1 4934 7 is_stmt 1 view .LVU4211
12524 0058 0022 movs r2, #0
12525 005a 0092 str r2, [sp]
12526 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
12527 0060 2046 mov r0, r4
12528 .LVL831:
4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12529 .loc 1 4934 7 is_stmt 0 view .LVU4212
12530 0062 FFF7FEFF bl I2C_TransferConfig
12531 .LVL832:
4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12532 .loc 1 4937 7 is_stmt 1 view .LVU4213
4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12533 .loc 1 4937 23 is_stmt 0 view .LVU4214
12534 0066 638D ldrh r3, [r4, #42]
ARM GAS /tmp/ccEimIdZ.s page 407
12535 0068 9BB2 uxth r3, r3
4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12536 .loc 1 4937 30 view .LVU4215
12537 006a 228D ldrh r2, [r4, #40]
4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12538 .loc 1 4937 23 view .LVU4216
12539 006c 9B1A subs r3, r3, r2
12540 006e 9BB2 uxth r3, r3
12541 0070 6385 strh r3, [r4, #42] @ movhi
4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12542 .loc 1 4940 7 is_stmt 1 view .LVU4217
4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12543 .loc 1 4940 15 is_stmt 0 view .LVU4218
12544 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12545 0076 DBB2 uxtb r3, r3
4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12546 .loc 1 4940 10 view .LVU4219
12547 0078 222B cmp r3, #34
12548 007a 22D0 beq .L794
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12549 .loc 1 4946 9 is_stmt 1 view .LVU4220
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12550 .loc 1 4946 13 is_stmt 0 view .LVU4221
12551 007c 2268 ldr r2, [r4]
4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12552 .loc 1 4946 29 view .LVU4222
12553 007e 1368 ldr r3, [r2]
12554 0080 43F48043 orr r3, r3, #16384
12555 0084 1360 str r3, [r2]
12556 0086 0CE0 b .L777
12557 .LVL833:
12558 .L793:
4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12559 .loc 1 4891 5 is_stmt 1 view .LVU4223
12560 0088 0368 ldr r3, [r0]
12561 008a 1022 movs r2, #16
12562 .LVL834:
4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12563 .loc 1 4891 5 is_stmt 0 view .LVU4224
12564 008c DA61 str r2, [r3, #28]
4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12565 .loc 1 4894 5 is_stmt 1 view .LVU4225
4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12566 .loc 1 4894 21 is_stmt 0 view .LVU4226
12567 008e 436C ldr r3, [r0, #68]
12568 0090 43F00403 orr r3, r3, #4
12569 0094 4364 str r3, [r0, #68]
4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12570 .loc 1 4899 5 is_stmt 1 view .LVU4227
12571 0096 2021 movs r1, #32
12572 .LVL835:
4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12573 .loc 1 4899 5 is_stmt 0 view .LVU4228
12574 0098 FFF7FEFF bl I2C_Enable_IRQ
12575 .LVL836:
4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12576 .loc 1 4902 5 is_stmt 1 view .LVU4229
ARM GAS /tmp/ccEimIdZ.s page 408
12577 009c 2046 mov r0, r4
12578 009e FFF7FEFF bl I2C_Flush_TXDR
12579 .LVL837:
12580 .L777:
4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12581 .loc 1 4999 3 view .LVU4230
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12582 .loc 1 5002 3 view .LVU4231
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12583 .loc 1 5002 3 view .LVU4232
12584 00a2 0020 movs r0, #0
12585 00a4 84F84000 strb r0, [r4, #64]
5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12586 .loc 1 5002 3 view .LVU4233
5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12587 .loc 1 5004 3 view .LVU4234
5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12588 .loc 1 5005 1 is_stmt 0 view .LVU4235
12589 00a8 02B0 add sp, sp, #8
12590 .LCFI134:
12591 .cfi_remember_state
12592 .cfi_def_cfa_offset 8
12593 @ sp needed
12594 00aa 10BD pop {r4, pc}
12595 .LVL838:
12596 .L780:
12597 .LCFI135:
12598 .cfi_restore_state
4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12599 .loc 1 4922 9 is_stmt 1 view .LVU4236
4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12600 .loc 1 4922 30 is_stmt 0 view .LVU4237
12601 00ac 638D ldrh r3, [r4, #42]
4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12602 .loc 1 4922 24 view .LVU4238
12603 00ae 2385 strh r3, [r4, #40] @ movhi
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12604 .loc 1 4923 9 is_stmt 1 view .LVU4239
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12605 .loc 1 4923 17 is_stmt 0 view .LVU4240
12606 00b0 E36A ldr r3, [r4, #44]
4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12607 .loc 1 4923 12 view .LVU4241
12608 00b2 13F5803F cmn r3, #65536
12609 00b6 01D0 beq .L788
4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12610 .loc 1 4925 11 is_stmt 1 view .LVU4242
4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12611 .loc 1 4925 20 is_stmt 0 view .LVU4243
12612 00b8 E36A ldr r3, [r4, #44]
12613 .LVL839:
4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12614 .loc 1 4925 20 view .LVU4244
12615 00ba CDE7 b .L781
12616 .LVL840:
12617 .L788:
4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
ARM GAS /tmp/ccEimIdZ.s page 409
12618 .loc 1 4929 20 view .LVU4245
12619 00bc 4FF00073 mov r3, #33554432
12620 00c0 CAE7 b .L781
12621 .LVL841:
12622 .L794:
4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12623 .loc 1 4942 9 is_stmt 1 view .LVU4246
4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12624 .loc 1 4942 13 is_stmt 0 view .LVU4247
12625 00c2 2268 ldr r2, [r4]
4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12626 .loc 1 4942 29 view .LVU4248
12627 00c4 1368 ldr r3, [r2]
12628 00c6 43F40043 orr r3, r3, #32768
12629 00ca 1360 str r3, [r2]
12630 00cc E9E7 b .L777
12631 .LVL842:
12632 .L779:
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12633 .loc 1 4952 7 is_stmt 1 view .LVU4249
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12634 .loc 1 4952 11 is_stmt 0 view .LVU4250
12635 00ce 2368 ldr r3, [r4]
12636 00d0 5B68 ldr r3, [r3, #4]
4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12637 .loc 1 4952 10 view .LVU4251
12638 00d2 13F0007F tst r3, #33554432
12639 00d6 03D1 bne .L783
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12640 .loc 1 4955 9 is_stmt 1 view .LVU4252
12641 00d8 2046 mov r0, r4
12642 .LVL843:
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12643 .loc 1 4955 9 is_stmt 0 view .LVU4253
12644 00da FFF7FEFF bl I2C_ITMasterSeqCplt
12645 .LVL844:
4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12646 .loc 1 4955 9 view .LVU4254
12647 00de E0E7 b .L777
12648 .LVL845:
12649 .L783:
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12650 .loc 1 4961 9 is_stmt 1 view .LVU4255
12651 00e0 4021 movs r1, #64
12652 .LVL846:
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12653 .loc 1 4961 9 is_stmt 0 view .LVU4256
12654 00e2 2046 mov r0, r4
12655 .LVL847:
4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12656 .loc 1 4961 9 view .LVU4257
12657 00e4 FFF7FEFF bl I2C_ITError
12658 .LVL848:
12659 00e8 DBE7 b .L777
12660 .LVL849:
12661 .L778:
4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 410
12662 .loc 1 4965 8 is_stmt 1 view .LVU4258
4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12663 .loc 1 4965 11 is_stmt 0 view .LVU4259
12664 00ea 11F0400F tst r1, #64
12665 00ee 1CD0 beq .L784
4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12666 .loc 1 4965 60 discriminator 1 view .LVU4260
12667 00f0 12F0400F tst r2, #64
12668 00f4 19D0 beq .L784
4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12669 .loc 1 4967 5 is_stmt 1 view .LVU4261
4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12670 .loc 1 4967 13 is_stmt 0 view .LVU4262
12671 00f6 638D ldrh r3, [r4, #42]
12672 00f8 9BB2 uxth r3, r3
4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12673 .loc 1 4967 8 view .LVU4263
12674 00fa 8BB9 cbnz r3, .L785
4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12675 .loc 1 4969 7 is_stmt 1 view .LVU4264
4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12676 .loc 1 4969 11 is_stmt 0 view .LVU4265
12677 00fc 2368 ldr r3, [r4]
12678 00fe 5A68 ldr r2, [r3, #4]
12679 .LVL850:
4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12680 .loc 1 4969 10 view .LVU4266
12681 0100 12F0007F tst r2, #33554432
12682 0104 CDD1 bne .L777
4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12683 .loc 1 4972 9 is_stmt 1 view .LVU4267
4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12684 .loc 1 4972 17 is_stmt 0 view .LVU4268
12685 0106 E26A ldr r2, [r4, #44]
4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12686 .loc 1 4972 12 view .LVU4269
12687 0108 12F5803F cmn r2, #65536
12688 010c 04D1 bne .L786
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12689 .loc 1 4975 11 is_stmt 1 view .LVU4270
4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12690 .loc 1 4975 31 is_stmt 0 view .LVU4271
12691 010e 5A68 ldr r2, [r3, #4]
12692 0110 42F48042 orr r2, r2, #16384
12693 0114 5A60 str r2, [r3, #4]
12694 0116 C4E7 b .L777
12695 .L786:
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12696 .loc 1 4980 11 is_stmt 1 view .LVU4272
12697 0118 2046 mov r0, r4
12698 .LVL851:
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12699 .loc 1 4980 11 is_stmt 0 view .LVU4273
12700 011a FFF7FEFF bl I2C_ITMasterSeqCplt
12701 .LVL852:
4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12702 .loc 1 4980 11 view .LVU4274
ARM GAS /tmp/ccEimIdZ.s page 411
12703 011e C0E7 b .L777
12704 .LVL853:
12705 .L785:
4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12706 .loc 1 4988 7 is_stmt 1 view .LVU4275
12707 0120 4021 movs r1, #64
12708 .LVL854:
4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12709 .loc 1 4988 7 is_stmt 0 view .LVU4276
12710 0122 2046 mov r0, r4
12711 .LVL855:
4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12712 .loc 1 4988 7 view .LVU4277
12713 0124 FFF7FEFF bl I2C_ITError
12714 .LVL856:
4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12715 .loc 1 4988 7 view .LVU4278
12716 0128 BBE7 b .L777
12717 .LVL857:
12718 .L784:
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12719 .loc 1 4991 8 is_stmt 1 view .LVU4279
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12720 .loc 1 4991 11 is_stmt 0 view .LVU4280
12721 012a 11F0200F tst r1, #32
12722 012e B8D0 beq .L777
4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12723 .loc 1 4991 63 discriminator 1 view .LVU4281
12724 0130 12F0200F tst r2, #32
12725 0134 B5D0 beq .L777
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12726 .loc 1 4994 5 is_stmt 1 view .LVU4282
12727 0136 2046 mov r0, r4
12728 .LVL858:
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12729 .loc 1 4994 5 is_stmt 0 view .LVU4283
12730 0138 FFF7FEFF bl I2C_ITMasterCplt
12731 .LVL859:
4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12732 .loc 1 4994 5 view .LVU4284
12733 013c B1E7 b .L777
12734 .LVL860:
12735 .L787:
12736 .LCFI136:
12737 .cfi_def_cfa_offset 0
12738 .cfi_restore 4
12739 .cfi_restore 14
4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12740 .loc 1 4886 3 view .LVU4285
12741 013e 0220 movs r0, #2
12742 .LVL861:
5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12743 .loc 1 5005 1 view .LVU4286
12744 0140 7047 bx lr
12745 .cfi_endproc
12746 .LFE192:
12748 .section .text.I2C_DMAError,"ax",%progbits
ARM GAS /tmp/ccEimIdZ.s page 412
12749 .align 1
12750 .syntax unified
12751 .thumb
12752 .thumb_func
12753 .fpu fpv5-d16
12755 I2C_DMAError:
12756 .LVL862:
12757 .LFB209:
6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
12758 .loc 1 6149 1 is_stmt 1 view -0
12759 .cfi_startproc
12760 @ args = 0, pretend = 0, frame = 0
12761 @ frame_needed = 0, uses_anonymous_args = 0
6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U;
12762 .loc 1 6149 1 is_stmt 0 view .LVU4288
12763 0000 38B5 push {r3, r4, r5, lr}
12764 .LCFI137:
12765 .cfi_def_cfa_offset 16
12766 .cfi_offset 3, -16
12767 .cfi_offset 4, -12
12768 .cfi_offset 5, -8
12769 .cfi_offset 14, -4
6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
12770 .loc 1 6150 3 is_stmt 1 view .LVU4289
12771 .LVL863:
6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12772 .loc 1 6151 3 view .LVU4290
6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12773 .loc 1 6151 22 is_stmt 0 view .LVU4291
12774 0002 846B ldr r4, [r0, #56]
12775 .LVL864:
6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12776 .loc 1 6153 3 is_stmt 1 view .LVU4292
6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12777 .loc 1 6153 11 is_stmt 0 view .LVU4293
12778 0004 A36B ldr r3, [r4, #56]
6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12779 .loc 1 6153 6 view .LVU4294
12780 0006 002B cmp r3, #0
12781 0008 77D0 beq .L805
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12782 .loc 1 6155 5 is_stmt 1 view .LVU4295
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12783 .loc 1 6155 9 is_stmt 0 view .LVU4296
12784 000a 1B68 ldr r3, [r3]
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12785 .loc 1 6155 45 view .LVU4297
12786 000c 4849 ldr r1, .L810
12787 000e 494A ldr r2, .L810+4
12788 0010 9342 cmp r3, r2
12789 0012 18BF it ne
12790 0014 8B42 cmpne r3, r1
12791 0016 2FD0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12792 .loc 1 6155 9 discriminator 2 view .LVU4298
12793 0018 1832 adds r2, r2, #24
12794 001a 9342 cmp r3, r2
ARM GAS /tmp/ccEimIdZ.s page 413
12795 001c 2CD0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12796 .loc 1 6155 9 discriminator 4 view .LVU4299
12797 001e 1832 adds r2, r2, #24
12798 0020 9342 cmp r3, r2
12799 0022 29D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12800 .loc 1 6155 9 discriminator 6 view .LVU4300
12801 0024 1832 adds r2, r2, #24
12802 0026 9342 cmp r3, r2
12803 0028 26D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12804 .loc 1 6155 9 discriminator 8 view .LVU4301
12805 002a 1832 adds r2, r2, #24
12806 002c 9342 cmp r3, r2
12807 002e 23D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12808 .loc 1 6155 9 discriminator 10 view .LVU4302
12809 0030 1832 adds r2, r2, #24
12810 0032 9342 cmp r3, r2
12811 0034 20D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12812 .loc 1 6155 9 discriminator 12 view .LVU4303
12813 0036 1832 adds r2, r2, #24
12814 0038 9342 cmp r3, r2
12815 003a 1DD0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12816 .loc 1 6155 9 discriminator 14 view .LVU4304
12817 003c 02F55672 add r2, r2, #856
12818 0040 9342 cmp r3, r2
12819 0042 19D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12820 .loc 1 6155 9 discriminator 16 view .LVU4305
12821 0044 1832 adds r2, r2, #24
12822 0046 9342 cmp r3, r2
12823 0048 16D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12824 .loc 1 6155 9 discriminator 18 view .LVU4306
12825 004a 1832 adds r2, r2, #24
12826 004c 9342 cmp r3, r2
12827 004e 13D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12828 .loc 1 6155 9 discriminator 20 view .LVU4307
12829 0050 1832 adds r2, r2, #24
12830 0052 9342 cmp r3, r2
12831 0054 10D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12832 .loc 1 6155 9 discriminator 22 view .LVU4308
12833 0056 1832 adds r2, r2, #24
12834 0058 9342 cmp r3, r2
12835 005a 0DD0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12836 .loc 1 6155 9 discriminator 24 view .LVU4309
12837 005c 1832 adds r2, r2, #24
12838 005e 9342 cmp r3, r2
12839 0060 0AD0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 414
12840 .loc 1 6155 9 discriminator 26 view .LVU4310
12841 0062 1832 adds r2, r2, #24
12842 0064 9342 cmp r3, r2
12843 0066 07D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12844 .loc 1 6155 9 discriminator 28 view .LVU4311
12845 0068 1832 adds r2, r2, #24
12846 006a 9342 cmp r3, r2
12847 006c 04D0 beq .L797
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12848 .loc 1 6155 9 discriminator 30 view .LVU4312
12849 006e 5B68 ldr r3, [r3, #4]
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12850 .loc 1 6155 45 discriminator 30 view .LVU4313
12851 0070 B3FA83F3 clz r3, r3
12852 0074 5B09 lsrs r3, r3, #5
12853 0076 03E0 b .L799
12854 .L797:
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12855 .loc 1 6155 9 discriminator 29 view .LVU4314
12856 0078 5B68 ldr r3, [r3, #4]
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12857 .loc 1 6155 45 discriminator 29 view .LVU4315
12858 007a B3FA83F3 clz r3, r3
12859 007e 5B09 lsrs r3, r3, #5
12860 .L799:
6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12861 .loc 1 6155 8 discriminator 32 view .LVU4316
12862 0080 002B cmp r3, #0
12863 0082 3CD1 bne .L806
6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
12864 .loc 1 6150 12 view .LVU4317
12865 0084 0025 movs r5, #0
12866 .L796:
12867 .LVL865:
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12868 .loc 1 6161 3 is_stmt 1 view .LVU4318
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12869 .loc 1 6161 11 is_stmt 0 view .LVU4319
12870 0086 E36B ldr r3, [r4, #60]
6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12871 .loc 1 6161 6 view .LVU4320
12872 0088 002B cmp r3, #0
12873 008a 40D0 beq .L800
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12874 .loc 1 6163 5 is_stmt 1 view .LVU4321
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12875 .loc 1 6163 9 is_stmt 0 view .LVU4322
12876 008c 1B68 ldr r3, [r3]
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12877 .loc 1 6163 45 view .LVU4323
12878 008e 2849 ldr r1, .L810
12879 0090 284A ldr r2, .L810+4
12880 0092 9342 cmp r3, r2
12881 0094 18BF it ne
12882 0096 8B42 cmpne r3, r1
12883 0098 33D0 beq .L801
ARM GAS /tmp/ccEimIdZ.s page 415
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12884 .loc 1 6163 9 discriminator 2 view .LVU4324
12885 009a 1832 adds r2, r2, #24
12886 009c 9342 cmp r3, r2
12887 009e 30D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12888 .loc 1 6163 9 discriminator 4 view .LVU4325
12889 00a0 1832 adds r2, r2, #24
12890 00a2 9342 cmp r3, r2
12891 00a4 2DD0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12892 .loc 1 6163 9 discriminator 6 view .LVU4326
12893 00a6 1832 adds r2, r2, #24
12894 00a8 9342 cmp r3, r2
12895 00aa 2AD0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12896 .loc 1 6163 9 discriminator 8 view .LVU4327
12897 00ac 1832 adds r2, r2, #24
12898 00ae 9342 cmp r3, r2
12899 00b0 27D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12900 .loc 1 6163 9 discriminator 10 view .LVU4328
12901 00b2 1832 adds r2, r2, #24
12902 00b4 9342 cmp r3, r2
12903 00b6 24D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12904 .loc 1 6163 9 discriminator 12 view .LVU4329
12905 00b8 1832 adds r2, r2, #24
12906 00ba 9342 cmp r3, r2
12907 00bc 21D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12908 .loc 1 6163 9 discriminator 14 view .LVU4330
12909 00be 02F55672 add r2, r2, #856
12910 00c2 9342 cmp r3, r2
12911 00c4 1DD0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12912 .loc 1 6163 9 discriminator 16 view .LVU4331
12913 00c6 1832 adds r2, r2, #24
12914 00c8 9342 cmp r3, r2
12915 00ca 1AD0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12916 .loc 1 6163 9 discriminator 18 view .LVU4332
12917 00cc 1832 adds r2, r2, #24
12918 00ce 9342 cmp r3, r2
12919 00d0 17D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12920 .loc 1 6163 9 discriminator 20 view .LVU4333
12921 00d2 1832 adds r2, r2, #24
12922 00d4 9342 cmp r3, r2
12923 00d6 14D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12924 .loc 1 6163 9 discriminator 22 view .LVU4334
12925 00d8 1832 adds r2, r2, #24
12926 00da 9342 cmp r3, r2
12927 00dc 11D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12928 .loc 1 6163 9 discriminator 24 view .LVU4335
ARM GAS /tmp/ccEimIdZ.s page 416
12929 00de 1832 adds r2, r2, #24
12930 00e0 9342 cmp r3, r2
12931 00e2 0ED0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12932 .loc 1 6163 9 discriminator 26 view .LVU4336
12933 00e4 1832 adds r2, r2, #24
12934 00e6 9342 cmp r3, r2
12935 00e8 0BD0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12936 .loc 1 6163 9 discriminator 28 view .LVU4337
12937 00ea 1832 adds r2, r2, #24
12938 00ec 9342 cmp r3, r2
12939 00ee 08D0 beq .L801
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12940 .loc 1 6163 9 discriminator 30 view .LVU4338
12941 00f0 5B68 ldr r3, [r3, #4]
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12942 .loc 1 6163 45 discriminator 30 view .LVU4339
12943 00f2 B3FA83F3 clz r3, r3
12944 00f6 5B09 lsrs r3, r3, #5
12945 00f8 07E0 b .L803
12946 .LVL866:
12947 .L805:
6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
12948 .loc 1 6150 12 view .LVU4340
12949 00fa 0025 movs r5, #0
12950 00fc C3E7 b .L796
12951 .L806:
6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12952 .loc 1 6157 21 view .LVU4341
12953 00fe 0125 movs r5, #1
12954 0100 C1E7 b .L796
12955 .LVL867:
12956 .L801:
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12957 .loc 1 6163 9 discriminator 29 view .LVU4342
12958 0102 5B68 ldr r3, [r3, #4]
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12959 .loc 1 6163 45 discriminator 29 view .LVU4343
12960 0104 B3FA83F3 clz r3, r3
12961 0108 5B09 lsrs r3, r3, #5
12962 .L803:
6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12963 .loc 1 6163 8 discriminator 32 view .LVU4344
12964 010a 03B1 cbz r3, .L800
6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12965 .loc 1 6165 21 view .LVU4345
12966 010c 0125 movs r5, #1
12967 .LVL868:
12968 .L800:
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12969 .loc 1 6170 3 is_stmt 1 view .LVU4346
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12970 .loc 1 6170 10 is_stmt 0 view .LVU4347
12971 010e FFF7FEFF bl HAL_DMA_GetError
12972 .LVL869:
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 417
12973 .loc 1 6170 6 view .LVU4348
12974 0112 0228 cmp r0, #2
12975 0114 00D0 beq .L795
6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
12976 .loc 1 6170 55 discriminator 1 view .LVU4349
12977 0116 05B9 cbnz r5, .L809
12978 .L795:
6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12979 .loc 1 6178 1 view .LVU4350
12980 0118 38BD pop {r3, r4, r5, pc}
12981 .LVL870:
12982 .L809:
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12983 .loc 1 6173 5 is_stmt 1 view .LVU4351
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12984 .loc 1 6173 9 is_stmt 0 view .LVU4352
12985 011a 2268 ldr r2, [r4]
6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12986 .loc 1 6173 25 view .LVU4353
12987 011c 5368 ldr r3, [r2, #4]
12988 011e 43F40043 orr r3, r3, #32768
12989 0122 5360 str r3, [r2, #4]
6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
12990 .loc 1 6176 5 is_stmt 1 view .LVU4354
12991 0124 1021 movs r1, #16
12992 0126 2046 mov r0, r4
12993 0128 FFF7FEFF bl I2C_ITError
12994 .LVL871:
6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
12995 .loc 1 6178 1 is_stmt 0 view .LVU4355
12996 012c F4E7 b .L795
12997 .L811:
12998 012e 00BF .align 2
12999 .L810:
13000 0130 10000240 .word 1073872912
13001 0134 28000240 .word 1073872936
13002 .cfi_endproc
13003 .LFE209:
13005 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
13006 .align 1
13007 .syntax unified
13008 .thumb
13009 .thumb_func
13010 .fpu fpv5-d16
13012 I2C_DMAMasterTransmitCplt:
13013 .LVL872:
13014 .LFB205:
5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
13015 .loc 1 5999 1 is_stmt 1 view -0
13016 .cfi_startproc
13017 @ args = 0, pretend = 0, frame = 0
13018 @ frame_needed = 0, uses_anonymous_args = 0
5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
13019 .loc 1 5999 1 is_stmt 0 view .LVU4357
13020 0000 10B5 push {r4, lr}
13021 .LCFI138:
13022 .cfi_def_cfa_offset 8
ARM GAS /tmp/ccEimIdZ.s page 418
13023 .cfi_offset 4, -8
13024 .cfi_offset 14, -4
6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13025 .loc 1 6000 3 is_stmt 1 view .LVU4358
6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13026 .loc 1 6000 22 is_stmt 0 view .LVU4359
13027 0002 846B ldr r4, [r0, #56]
13028 .LVL873:
6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13029 .loc 1 6003 3 is_stmt 1 view .LVU4360
6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13030 .loc 1 6003 7 is_stmt 0 view .LVU4361
13031 0004 2268 ldr r2, [r4]
6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13032 .loc 1 6003 23 view .LVU4362
13033 0006 1368 ldr r3, [r2]
13034 0008 23F48043 bic r3, r3, #16384
13035 000c 1360 str r3, [r2]
6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13036 .loc 1 6006 3 is_stmt 1 view .LVU4363
6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13037 .loc 1 6006 11 is_stmt 0 view .LVU4364
13038 000e 638D ldrh r3, [r4, #42]
13039 0010 9BB2 uxth r3, r3
6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13040 .loc 1 6006 6 view .LVU4365
13041 0012 ABB1 cbz r3, .L819
6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13042 .loc 1 6015 5 is_stmt 1 view .LVU4366
6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13043 .loc 1 6015 27 is_stmt 0 view .LVU4367
13044 0014 238D ldrh r3, [r4, #40]
6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13045 .loc 1 6015 20 view .LVU4368
13046 0016 616A ldr r1, [r4, #36]
13047 0018 1944 add r1, r1, r3
13048 001a 6162 str r1, [r4, #36]
6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13049 .loc 1 6018 5 is_stmt 1 view .LVU4369
6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13050 .loc 1 6018 13 is_stmt 0 view .LVU4370
13051 001c 638D ldrh r3, [r4, #42]
13052 001e 9BB2 uxth r3, r3
6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13053 .loc 1 6018 8 view .LVU4371
13054 0020 FF2B cmp r3, #255
13055 0022 12D9 bls .L815
6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13056 .loc 1 6020 7 is_stmt 1 view .LVU4372
6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13057 .loc 1 6020 22 is_stmt 0 view .LVU4373
13058 0024 FF23 movs r3, #255
13059 0026 2385 strh r3, [r4, #40] @ movhi
13060 .L816:
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13061 .loc 1 6028 5 is_stmt 1 view .LVU4374
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 419
13062 .loc 1 6028 81 is_stmt 0 view .LVU4375
13063 0028 2268 ldr r2, [r4]
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13064 .loc 1 6028 9 view .LVU4376
13065 002a 238D ldrh r3, [r4, #40]
13066 002c 2832 adds r2, r2, #40
13067 002e A06B ldr r0, [r4, #56]
13068 .LVL874:
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13069 .loc 1 6028 9 view .LVU4377
13070 0030 FFF7FEFF bl HAL_DMA_Start_IT
13071 .LVL875:
6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13072 .loc 1 6028 8 view .LVU4378
13073 0034 60B1 cbz r0, .L817
6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13074 .loc 1 6031 7 is_stmt 1 view .LVU4379
13075 0036 1021 movs r1, #16
13076 0038 2046 mov r0, r4
13077 003a FFF7FEFF bl I2C_ITError
13078 .LVL876:
13079 .L812:
6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13080 .loc 1 6039 1 is_stmt 0 view .LVU4380
13081 003e 10BD pop {r4, pc}
13082 .LVL877:
13083 .L819:
6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13084 .loc 1 6009 5 is_stmt 1 view .LVU4381
13085 0040 2021 movs r1, #32
13086 0042 2046 mov r0, r4
13087 .LVL878:
6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13088 .loc 1 6009 5 is_stmt 0 view .LVU4382
13089 0044 FFF7FEFF bl I2C_Enable_IRQ
13090 .LVL879:
13091 0048 F9E7 b .L812
13092 .LVL880:
13093 .L815:
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13094 .loc 1 6024 7 is_stmt 1 view .LVU4383
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13095 .loc 1 6024 28 is_stmt 0 view .LVU4384
13096 004a 638D ldrh r3, [r4, #42]
6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13097 .loc 1 6024 22 view .LVU4385
13098 004c 2385 strh r3, [r4, #40] @ movhi
13099 004e EBE7 b .L816
13100 .LVL881:
13101 .L817:
6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13102 .loc 1 6036 7 is_stmt 1 view .LVU4386
13103 0050 4021 movs r1, #64
13104 0052 2046 mov r0, r4
13105 0054 FFF7FEFF bl I2C_Enable_IRQ
13106 .LVL882:
6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
ARM GAS /tmp/ccEimIdZ.s page 420
13107 .loc 1 6039 1 is_stmt 0 view .LVU4387
13108 0058 F1E7 b .L812
13109 .cfi_endproc
13110 .LFE205:
13112 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
13113 .align 1
13114 .syntax unified
13115 .thumb
13116 .thumb_func
13117 .fpu fpv5-d16
13119 I2C_DMAMasterReceiveCplt:
13120 .LVL883:
13121 .LFB207:
6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
13122 .loc 1 6074 1 is_stmt 1 view -0
13123 .cfi_startproc
13124 @ args = 0, pretend = 0, frame = 0
13125 @ frame_needed = 0, uses_anonymous_args = 0
6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
13126 .loc 1 6074 1 is_stmt 0 view .LVU4389
13127 0000 10B5 push {r4, lr}
13128 .LCFI139:
13129 .cfi_def_cfa_offset 8
13130 .cfi_offset 4, -8
13131 .cfi_offset 14, -4
6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13132 .loc 1 6075 3 is_stmt 1 view .LVU4390
6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13133 .loc 1 6075 22 is_stmt 0 view .LVU4391
13134 0002 846B ldr r4, [r0, #56]
13135 .LVL884:
6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13136 .loc 1 6078 3 is_stmt 1 view .LVU4392
6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13137 .loc 1 6078 7 is_stmt 0 view .LVU4393
13138 0004 2268 ldr r2, [r4]
6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13139 .loc 1 6078 23 view .LVU4394
13140 0006 1368 ldr r3, [r2]
13141 0008 23F40043 bic r3, r3, #32768
13142 000c 1360 str r3, [r2]
6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13143 .loc 1 6081 3 is_stmt 1 view .LVU4395
6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13144 .loc 1 6081 11 is_stmt 0 view .LVU4396
13145 000e 638D ldrh r3, [r4, #42]
13146 0010 9BB2 uxth r3, r3
6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13147 .loc 1 6081 6 view .LVU4397
13148 0012 ABB1 cbz r3, .L827
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13149 .loc 1 6090 5 is_stmt 1 view .LVU4398
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13150 .loc 1 6090 27 is_stmt 0 view .LVU4399
13151 0014 238D ldrh r3, [r4, #40]
6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13152 .loc 1 6090 20 view .LVU4400
ARM GAS /tmp/ccEimIdZ.s page 421
13153 0016 626A ldr r2, [r4, #36]
13154 0018 1A44 add r2, r2, r3
13155 001a 6262 str r2, [r4, #36]
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13156 .loc 1 6093 5 is_stmt 1 view .LVU4401
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13157 .loc 1 6093 13 is_stmt 0 view .LVU4402
13158 001c 638D ldrh r3, [r4, #42]
13159 001e 9BB2 uxth r3, r3
6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13160 .loc 1 6093 8 view .LVU4403
13161 0020 FF2B cmp r3, #255
13162 0022 12D9 bls .L823
6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13163 .loc 1 6095 7 is_stmt 1 view .LVU4404
6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13164 .loc 1 6095 22 is_stmt 0 view .LVU4405
13165 0024 FF23 movs r3, #255
13166 0026 2385 strh r3, [r4, #40] @ movhi
13167 .L824:
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13168 .loc 1 6103 5 is_stmt 1 view .LVU4406
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13169 .loc 1 6103 55 is_stmt 0 view .LVU4407
13170 0028 2168 ldr r1, [r4]
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13171 .loc 1 6103 9 view .LVU4408
13172 002a 238D ldrh r3, [r4, #40]
13173 002c 2431 adds r1, r1, #36
13174 002e E06B ldr r0, [r4, #60]
13175 .LVL885:
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13176 .loc 1 6103 9 view .LVU4409
13177 0030 FFF7FEFF bl HAL_DMA_Start_IT
13178 .LVL886:
6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13179 .loc 1 6103 8 view .LVU4410
13180 0034 60B1 cbz r0, .L825
6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13181 .loc 1 6106 7 is_stmt 1 view .LVU4411
13182 0036 1021 movs r1, #16
13183 0038 2046 mov r0, r4
13184 003a FFF7FEFF bl I2C_ITError
13185 .LVL887:
13186 .L820:
6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13187 .loc 1 6114 1 is_stmt 0 view .LVU4412
13188 003e 10BD pop {r4, pc}
13189 .LVL888:
13190 .L827:
6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13191 .loc 1 6084 5 is_stmt 1 view .LVU4413
13192 0040 2021 movs r1, #32
13193 0042 2046 mov r0, r4
13194 .LVL889:
6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13195 .loc 1 6084 5 is_stmt 0 view .LVU4414
ARM GAS /tmp/ccEimIdZ.s page 422
13196 0044 FFF7FEFF bl I2C_Enable_IRQ
13197 .LVL890:
13198 0048 F9E7 b .L820
13199 .LVL891:
13200 .L823:
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13201 .loc 1 6099 7 is_stmt 1 view .LVU4415
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13202 .loc 1 6099 28 is_stmt 0 view .LVU4416
13203 004a 638D ldrh r3, [r4, #42]
6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13204 .loc 1 6099 22 view .LVU4417
13205 004c 2385 strh r3, [r4, #40] @ movhi
13206 004e EBE7 b .L824
13207 .LVL892:
13208 .L825:
6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13209 .loc 1 6111 7 is_stmt 1 view .LVU4418
13210 0050 4021 movs r1, #64
13211 0052 2046 mov r0, r4
13212 0054 FFF7FEFF bl I2C_Enable_IRQ
13213 .LVL893:
6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13214 .loc 1 6114 1 is_stmt 0 view .LVU4419
13215 0058 F1E7 b .L820
13216 .cfi_endproc
13217 .LFE207:
13219 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
13220 .align 1
13221 .global HAL_I2C_ER_IRQHandler
13222 .syntax unified
13223 .thumb
13224 .thumb_func
13225 .fpu fpv5-d16
13227 HAL_I2C_ER_IRQHandler:
13228 .LVL894:
13229 .LFB176:
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
13230 .loc 1 4332 1 is_stmt 1 view -0
13231 .cfi_startproc
13232 @ args = 0, pretend = 0, frame = 0
13233 @ frame_needed = 0, uses_anonymous_args = 0
4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
13234 .loc 1 4332 1 is_stmt 0 view .LVU4421
13235 0000 10B5 push {r4, lr}
13236 .LCFI140:
13237 .cfi_def_cfa_offset 8
13238 .cfi_offset 4, -8
13239 .cfi_offset 14, -4
4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
13240 .loc 1 4333 3 is_stmt 1 view .LVU4422
4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
13241 .loc 1 4333 24 is_stmt 0 view .LVU4423
13242 0002 0268 ldr r2, [r0]
4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
13243 .loc 1 4333 12 view .LVU4424
13244 0004 9369 ldr r3, [r2, #24]
ARM GAS /tmp/ccEimIdZ.s page 423
13245 .LVL895:
4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
13246 .loc 1 4334 3 is_stmt 1 view .LVU4425
4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror;
13247 .loc 1 4334 12 is_stmt 0 view .LVU4426
13248 0006 1168 ldr r1, [r2]
13249 .LVL896:
4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13250 .loc 1 4335 3 is_stmt 1 view .LVU4427
4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13251 .loc 1 4338 3 view .LVU4428
4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13252 .loc 1 4338 6 is_stmt 0 view .LVU4429
13253 0008 13F4807F tst r3, #256
13254 000c 09D0 beq .L829
4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13255 .loc 1 4338 57 discriminator 1 view .LVU4430
13256 000e 11F0800F tst r1, #128
13257 0012 06D0 beq .L829
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13258 .loc 1 4340 5 is_stmt 1 view .LVU4431
4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13259 .loc 1 4340 21 is_stmt 0 view .LVU4432
13260 0014 446C ldr r4, [r0, #68]
13261 0016 44F00104 orr r4, r4, #1
13262 001a 4464 str r4, [r0, #68]
4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13263 .loc 1 4343 5 is_stmt 1 view .LVU4433
13264 001c 4FF48074 mov r4, #256
13265 0020 D461 str r4, [r2, #28]
13266 .L829:
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13267 .loc 1 4347 3 view .LVU4434
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13268 .loc 1 4347 6 is_stmt 0 view .LVU4435
13269 0022 13F4806F tst r3, #1024
13270 0026 0AD0 beq .L830
4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13271 .loc 1 4347 56 discriminator 1 view .LVU4436
13272 0028 11F0800F tst r1, #128
13273 002c 07D0 beq .L830
4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13274 .loc 1 4349 5 is_stmt 1 view .LVU4437
4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13275 .loc 1 4349 21 is_stmt 0 view .LVU4438
13276 002e 426C ldr r2, [r0, #68]
13277 0030 42F00802 orr r2, r2, #8
13278 0034 4264 str r2, [r0, #68]
4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13279 .loc 1 4352 5 is_stmt 1 view .LVU4439
13280 0036 0268 ldr r2, [r0]
13281 0038 4FF48064 mov r4, #1024
13282 003c D461 str r4, [r2, #28]
13283 .L830:
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13284 .loc 1 4356 3 view .LVU4440
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
ARM GAS /tmp/ccEimIdZ.s page 424
13285 .loc 1 4356 6 is_stmt 0 view .LVU4441
13286 003e 13F4007F tst r3, #512
13287 0042 0AD0 beq .L831
4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13288 .loc 1 4356 57 discriminator 1 view .LVU4442
13289 0044 11F0800F tst r1, #128
13290 0048 07D0 beq .L831
4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13291 .loc 1 4358 5 is_stmt 1 view .LVU4443
4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13292 .loc 1 4358 21 is_stmt 0 view .LVU4444
13293 004a 436C ldr r3, [r0, #68]
13294 .LVL897:
4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13295 .loc 1 4358 21 view .LVU4445
13296 004c 43F00203 orr r3, r3, #2
13297 0050 4364 str r3, [r0, #68]
4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13298 .loc 1 4361 5 is_stmt 1 view .LVU4446
13299 0052 0368 ldr r3, [r0]
13300 0054 4FF40072 mov r2, #512
13301 0058 DA61 str r2, [r3, #28]
13302 .L831:
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13303 .loc 1 4365 3 view .LVU4447
4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13304 .loc 1 4365 12 is_stmt 0 view .LVU4448
13305 005a 416C ldr r1, [r0, #68]
13306 .LVL898:
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13307 .loc 1 4368 3 is_stmt 1 view .LVU4449
4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13308 .loc 1 4368 6 is_stmt 0 view .LVU4450
13309 005c 11F00B0F tst r1, #11
13310 0060 00D1 bne .L834
13311 .LVL899:
13312 .L828:
4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13313 .loc 1 4372 1 view .LVU4451
13314 0062 10BD pop {r4, pc}
13315 .LVL900:
13316 .L834:
4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13317 .loc 1 4370 5 is_stmt 1 view .LVU4452
13318 0064 FFF7FEFF bl I2C_ITError
13319 .LVL901:
4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13320 .loc 1 4372 1 is_stmt 0 view .LVU4453
13321 0068 FBE7 b .L828
13322 .cfi_endproc
13323 .LFE176:
13325 .section .text.I2C_DMAAbort,"ax",%progbits
13326 .align 1
13327 .syntax unified
13328 .thumb
13329 .thumb_func
13330 .fpu fpv5-d16
ARM GAS /tmp/ccEimIdZ.s page 425
13332 I2C_DMAAbort:
13333 .LVL902:
13334 .LFB210:
6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
13335 .loc 1 6187 1 is_stmt 1 view -0
13336 .cfi_startproc
13337 @ args = 0, pretend = 0, frame = 0
13338 @ frame_needed = 0, uses_anonymous_args = 0
6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati
13339 .loc 1 6187 1 is_stmt 0 view .LVU4455
13340 0000 08B5 push {r3, lr}
13341 .LCFI141:
13342 .cfi_def_cfa_offset 8
13343 .cfi_offset 3, -8
13344 .cfi_offset 14, -4
6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13345 .loc 1 6188 3 is_stmt 1 view .LVU4456
6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13346 .loc 1 6188 22 is_stmt 0 view .LVU4457
13347 0002 806B ldr r0, [r0, #56]
13348 .LVL903:
6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13349 .loc 1 6191 3 is_stmt 1 view .LVU4458
6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13350 .loc 1 6191 11 is_stmt 0 view .LVU4459
13351 0004 836B ldr r3, [r0, #56]
6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13352 .loc 1 6191 6 view .LVU4460
13353 0006 0BB1 cbz r3, .L836
6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13354 .loc 1 6193 5 is_stmt 1 view .LVU4461
6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13355 .loc 1 6193 37 is_stmt 0 view .LVU4462
13356 0008 0022 movs r2, #0
13357 000a 1A65 str r2, [r3, #80]
13358 .L836:
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13359 .loc 1 6195 3 is_stmt 1 view .LVU4463
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13360 .loc 1 6195 11 is_stmt 0 view .LVU4464
13361 000c C36B ldr r3, [r0, #60]
6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** {
13362 .loc 1 6195 6 view .LVU4465
13363 000e 0BB1 cbz r3, .L837
6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13364 .loc 1 6197 5 is_stmt 1 view .LVU4466
6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13365 .loc 1 6197 37 is_stmt 0 view .LVU4467
13366 0010 0022 movs r2, #0
13367 0012 1A65 str r2, [r3, #80]
13368 .L837:
6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13369 .loc 1 6200 3 is_stmt 1 view .LVU4468
13370 0014 FFF7FEFF bl I2C_TreatErrorCallback
13371 .LVL904:
6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13372 .loc 1 6201 1 is_stmt 0 view .LVU4469
ARM GAS /tmp/ccEimIdZ.s page 426
13373 0018 08BD pop {r3, pc}
13374 .cfi_endproc
13375 .LFE210:
13377 .section .text.HAL_I2C_GetState,"ax",%progbits
13378 .align 1
13379 .global HAL_I2C_GetState
13380 .syntax unified
13381 .thumb
13382 .thumb_func
13383 .fpu fpv5-d16
13385 HAL_I2C_GetState:
13386 .LVL905:
13387 .LFB187:
4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */
13388 .loc 1 4563 1 is_stmt 1 view -0
13389 .cfi_startproc
13390 @ args = 0, pretend = 0, frame = 0
13391 @ frame_needed = 0, uses_anonymous_args = 0
13392 @ link register save eliminated.
4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13393 .loc 1 4565 3 view .LVU4471
4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13394 .loc 1 4565 14 is_stmt 0 view .LVU4472
13395 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
13396 .LVL906:
4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13397 .loc 1 4566 1 view .LVU4473
13398 0004 7047 bx lr
13399 .cfi_endproc
13400 .LFE187:
13402 .section .text.HAL_I2C_GetMode,"ax",%progbits
13403 .align 1
13404 .global HAL_I2C_GetMode
13405 .syntax unified
13406 .thumb
13407 .thumb_func
13408 .fpu fpv5-d16
13410 HAL_I2C_GetMode:
13411 .LVL907:
13412 .LFB188:
4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode;
13413 .loc 1 4575 1 is_stmt 1 view -0
13414 .cfi_startproc
13415 @ args = 0, pretend = 0, frame = 0
13416 @ frame_needed = 0, uses_anonymous_args = 0
13417 @ link register save eliminated.
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13418 .loc 1 4576 3 view .LVU4475
4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13419 .loc 1 4576 14 is_stmt 0 view .LVU4476
13420 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2
13421 .LVL908:
4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13422 .loc 1 4577 1 view .LVU4477
13423 0004 7047 bx lr
13424 .cfi_endproc
13425 .LFE188:
ARM GAS /tmp/ccEimIdZ.s page 427
13427 .section .text.HAL_I2C_GetError,"ax",%progbits
13428 .align 1
13429 .global HAL_I2C_GetError
13430 .syntax unified
13431 .thumb
13432 .thumb_func
13433 .fpu fpv5-d16
13435 HAL_I2C_GetError:
13436 .LVL909:
13437 .LFB189:
4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode;
13438 .loc 1 4586 1 is_stmt 1 view -0
13439 .cfi_startproc
13440 @ args = 0, pretend = 0, frame = 0
13441 @ frame_needed = 0, uses_anonymous_args = 0
13442 @ link register save eliminated.
4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13443 .loc 1 4587 3 view .LVU4479
4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** }
13444 .loc 1 4587 14 is_stmt 0 view .LVU4480
13445 0000 406C ldr r0, [r0, #68]
13446 .LVL910:
4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c ****
13447 .loc 1 4588 1 view .LVU4481
13448 0002 7047 bx lr
13449 .cfi_endproc
13450 .LFE189:
13452 .text
13453 .Letext0:
13454 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
13455 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
13456 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h"
13457 .file 5 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h"
13458 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h"
13459 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h"
13460 .file 8 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h"
13461 .file 9 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h"
ARM GAS /tmp/ccEimIdZ.s page 428
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32h7xx_hal_i2c.c
/tmp/ccEimIdZ.s:17 .text.I2C_Flush_TXDR:0000000000000000 $t
/tmp/ccEimIdZ.s:24 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR
/tmp/ccEimIdZ.s:63 .text.I2C_TransferConfig:0000000000000000 $t
/tmp/ccEimIdZ.s:69 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig
/tmp/ccEimIdZ.s:120 .text.I2C_Enable_IRQ:0000000000000000 $t
/tmp/ccEimIdZ.s:126 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ
/tmp/ccEimIdZ.s:253 .text.I2C_Enable_IRQ:000000000000006c $d
/tmp/ccEimIdZ.s:12440 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA
/tmp/ccEimIdZ.s:12002 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA
/tmp/ccEimIdZ.s:259 .text.I2C_Disable_IRQ:0000000000000000 $t
/tmp/ccEimIdZ.s:265 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ
/tmp/ccEimIdZ.s:389 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t
/tmp/ccEimIdZ.s:395 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions
/tmp/ccEimIdZ.s:436 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t
/tmp/ccEimIdZ.s:442 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed
/tmp/ccEimIdZ.s:566 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t
/tmp/ccEimIdZ.s:572 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout
/tmp/ccEimIdZ.s:662 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t
/tmp/ccEimIdZ.s:668 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout
/tmp/ccEimIdZ.s:753 .text.I2C_RequestMemoryWrite:0000000000000000 $t
/tmp/ccEimIdZ.s:759 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite
/tmp/ccEimIdZ.s:878 .text.I2C_RequestMemoryWrite:0000000000000078 $d
/tmp/ccEimIdZ.s:883 .text.I2C_RequestMemoryRead:0000000000000000 $t
/tmp/ccEimIdZ.s:889 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead
/tmp/ccEimIdZ.s:1008 .text.I2C_RequestMemoryRead:0000000000000074 $d
/tmp/ccEimIdZ.s:1013 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t
/tmp/ccEimIdZ.s:1019 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout
/tmp/ccEimIdZ.s:1105 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t
/tmp/ccEimIdZ.s:1111 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout
/tmp/ccEimIdZ.s:1246 .text.HAL_I2C_MspInit:0000000000000000 $t
/tmp/ccEimIdZ.s:1253 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit
/tmp/ccEimIdZ.s:1268 .text.HAL_I2C_Init:0000000000000000 $t
/tmp/ccEimIdZ.s:1275 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init
/tmp/ccEimIdZ.s:1463 .text.HAL_I2C_Init:00000000000000b8 $d
/tmp/ccEimIdZ.s:1468 .text.HAL_I2C_MspDeInit:0000000000000000 $t
/tmp/ccEimIdZ.s:1475 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit
/tmp/ccEimIdZ.s:1490 .text.HAL_I2C_DeInit:0000000000000000 $t
/tmp/ccEimIdZ.s:1497 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit
/tmp/ccEimIdZ.s:1562 .text.HAL_I2C_Master_Transmit:0000000000000000 $t
/tmp/ccEimIdZ.s:1569 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit
/tmp/ccEimIdZ.s:1879 .text.HAL_I2C_Master_Transmit:0000000000000178 $d
/tmp/ccEimIdZ.s:1884 .text.HAL_I2C_Master_Receive:0000000000000000 $t
/tmp/ccEimIdZ.s:1891 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive
/tmp/ccEimIdZ.s:2200 .text.HAL_I2C_Master_Receive:0000000000000178 $d
/tmp/ccEimIdZ.s:2205 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t
/tmp/ccEimIdZ.s:2212 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit
/tmp/ccEimIdZ.s:2560 .text.HAL_I2C_Slave_Receive:0000000000000000 $t
/tmp/ccEimIdZ.s:2567 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive
/tmp/ccEimIdZ.s:2894 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:2901 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT
/tmp/ccEimIdZ.s:3053 .text.HAL_I2C_Master_Transmit_IT:000000000000008c $d
/tmp/ccEimIdZ.s:11625 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT
/tmp/ccEimIdZ.s:3060 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:3067 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT
/tmp/ccEimIdZ.s:3219 .text.HAL_I2C_Master_Receive_IT:000000000000008c $d
ARM GAS /tmp/ccEimIdZ.s page 429
/tmp/ccEimIdZ.s:3226 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:3233 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT
/tmp/ccEimIdZ.s:3335 .text.HAL_I2C_Slave_Transmit_IT:000000000000005c $d
/tmp/ccEimIdZ.s:11059 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT
/tmp/ccEimIdZ.s:3341 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:3348 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT
/tmp/ccEimIdZ.s:3450 .text.HAL_I2C_Slave_Receive_IT:000000000000005c $d
/tmp/ccEimIdZ.s:3456 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:3463 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA
/tmp/ccEimIdZ.s:3762 .text.HAL_I2C_Master_Transmit_DMA:000000000000013c $d
/tmp/ccEimIdZ.s:13012 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt
/tmp/ccEimIdZ.s:12755 .text.I2C_DMAError:0000000000000000 I2C_DMAError
/tmp/ccEimIdZ.s:3772 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:3779 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA
/tmp/ccEimIdZ.s:4078 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d
/tmp/ccEimIdZ.s:13119 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt
/tmp/ccEimIdZ.s:4088 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:4095 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA
/tmp/ccEimIdZ.s:4311 .text.HAL_I2C_Slave_Transmit_DMA:00000000000000e0 $d
/tmp/ccEimIdZ.s:9662 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt
/tmp/ccEimIdZ.s:4319 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:4326 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA
/tmp/ccEimIdZ.s:4544 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d
/tmp/ccEimIdZ.s:9720 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt
/tmp/ccEimIdZ.s:4552 .text.HAL_I2C_Mem_Write:0000000000000000 $t
/tmp/ccEimIdZ.s:4559 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write
/tmp/ccEimIdZ.s:4917 .text.HAL_I2C_Mem_Read:0000000000000000 $t
/tmp/ccEimIdZ.s:4924 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read
/tmp/ccEimIdZ.s:5282 .text.HAL_I2C_Mem_Read:00000000000001ac $d
/tmp/ccEimIdZ.s:5287 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:5294 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT
/tmp/ccEimIdZ.s:5502 .text.HAL_I2C_Mem_Write_IT:00000000000000dc $d
/tmp/ccEimIdZ.s:5508 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:5515 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT
/tmp/ccEimIdZ.s:5724 .text.HAL_I2C_Mem_Read_IT:00000000000000dc $d
/tmp/ccEimIdZ.s:5731 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:5738 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA
/tmp/ccEimIdZ.s:6054 .text.HAL_I2C_Mem_Write_DMA:000000000000015c $d
/tmp/ccEimIdZ.s:6061 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:6068 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA
/tmp/ccEimIdZ.s:6385 .text.HAL_I2C_Mem_Read_DMA:000000000000015c $d
/tmp/ccEimIdZ.s:6393 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t
/tmp/ccEimIdZ.s:6400 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady
/tmp/ccEimIdZ.s:6726 .text.HAL_I2C_IsDeviceReady:0000000000000168 $d
/tmp/ccEimIdZ.s:6731 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:6738 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT
/tmp/ccEimIdZ.s:6924 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000000000ac $d
/tmp/ccEimIdZ.s:6930 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:6937 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA
/tmp/ccEimIdZ.s:7265 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000160 $d
/tmp/ccEimIdZ.s:7274 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:7281 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT
/tmp/ccEimIdZ.s:7467 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000ac $d
/tmp/ccEimIdZ.s:7473 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:7480 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA
/tmp/ccEimIdZ.s:7808 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000160 $d
/tmp/ccEimIdZ.s:7817 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t
ARM GAS /tmp/ccEimIdZ.s page 430
/tmp/ccEimIdZ.s:7824 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT
/tmp/ccEimIdZ.s:8023 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000d4 $d
/tmp/ccEimIdZ.s:13332 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort
/tmp/ccEimIdZ.s:8029 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:8036 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA
/tmp/ccEimIdZ.s:8408 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000194 $d
/tmp/ccEimIdZ.s:8416 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:8423 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT
/tmp/ccEimIdZ.s:8622 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000d4 $d
/tmp/ccEimIdZ.s:8628 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:8635 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA
/tmp/ccEimIdZ.s:9005 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000194 $d
/tmp/ccEimIdZ.s:9013 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:9020 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT
/tmp/ccEimIdZ.s:9067 .text.HAL_I2C_EnableListen_IT:0000000000000028 $d
/tmp/ccEimIdZ.s:9072 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:9079 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT
/tmp/ccEimIdZ.s:9145 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:9152 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT
/tmp/ccEimIdZ.s:9293 .text.HAL_I2C_Master_Abort_IT:0000000000000080 $d
/tmp/ccEimIdZ.s:9298 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t
/tmp/ccEimIdZ.s:9305 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler
/tmp/ccEimIdZ.s:9343 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:9350 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback
/tmp/ccEimIdZ.s:9365 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:9372 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback
/tmp/ccEimIdZ.s:9387 .text.I2C_ITMasterSeqCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:9393 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt
/tmp/ccEimIdZ.s:9478 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:9485 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback
/tmp/ccEimIdZ.s:9500 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:9507 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback
/tmp/ccEimIdZ.s:9522 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:9528 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt
/tmp/ccEimIdZ.s:9656 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:9714 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:9848 .text.I2C_DMASlaveReceiveCplt:0000000000000098 $d
/tmp/ccEimIdZ.s:9854 .text.HAL_I2C_AddrCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:9861 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback
/tmp/ccEimIdZ.s:9878 .text.I2C_ITAddrCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:9884 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt
/tmp/ccEimIdZ.s:10044 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:10051 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback
/tmp/ccEimIdZ.s:10066 .text.I2C_ITListenCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:10072 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt
/tmp/ccEimIdZ.s:10175 .text.I2C_ITListenCplt:0000000000000064 $d
/tmp/ccEimIdZ.s:10180 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:10187 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback
/tmp/ccEimIdZ.s:10202 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:10209 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback
/tmp/ccEimIdZ.s:10224 .text.HAL_I2C_ErrorCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:10231 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback
/tmp/ccEimIdZ.s:10246 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:10253 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback
/tmp/ccEimIdZ.s:10268 .text.I2C_TreatErrorCallback:0000000000000000 $t
/tmp/ccEimIdZ.s:10274 .text.I2C_TreatErrorCallback:0000000000000000 I2C_TreatErrorCallback
/tmp/ccEimIdZ.s:10331 .text.I2C_ITError:0000000000000000 $t
ARM GAS /tmp/ccEimIdZ.s page 431
/tmp/ccEimIdZ.s:10337 .text.I2C_ITError:0000000000000000 I2C_ITError
/tmp/ccEimIdZ.s:10579 .text.I2C_ITError:00000000000000fc $d
/tmp/ccEimIdZ.s:10586 .text.I2C_ITSlaveCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:10592 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt
/tmp/ccEimIdZ.s:11046 .text.I2C_ITSlaveCplt:0000000000000238 $d
/tmp/ccEimIdZ.s:11053 .text.I2C_Slave_ISR_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:11344 .text.I2C_ITMasterCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:11350 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt
/tmp/ccEimIdZ.s:11619 .text.I2C_Master_ISR_IT:0000000000000000 $t
/tmp/ccEimIdZ.s:11996 .text.I2C_Slave_ISR_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:12428 .text.I2C_Slave_ISR_DMA:0000000000000218 $d
/tmp/ccEimIdZ.s:12434 .text.I2C_Master_ISR_DMA:0000000000000000 $t
/tmp/ccEimIdZ.s:12749 .text.I2C_DMAError:0000000000000000 $t
/tmp/ccEimIdZ.s:13000 .text.I2C_DMAError:0000000000000130 $d
/tmp/ccEimIdZ.s:13006 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:13113 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t
/tmp/ccEimIdZ.s:13220 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t
/tmp/ccEimIdZ.s:13227 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler
/tmp/ccEimIdZ.s:13326 .text.I2C_DMAAbort:0000000000000000 $t
/tmp/ccEimIdZ.s:13378 .text.HAL_I2C_GetState:0000000000000000 $t
/tmp/ccEimIdZ.s:13385 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState
/tmp/ccEimIdZ.s:13403 .text.HAL_I2C_GetMode:0000000000000000 $t
/tmp/ccEimIdZ.s:13410 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode
/tmp/ccEimIdZ.s:13428 .text.HAL_I2C_GetError:0000000000000000 $t
/tmp/ccEimIdZ.s:13435 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError
UNDEFINED SYMBOLS
HAL_GetTick
HAL_DMA_Start_IT
HAL_DMA_Abort_IT
HAL_DMA_GetState
HAL_DMA_GetError