STM32H750VB_Bootloader/build/stm32h7xx_hal_i2c.lst

25816 lines
1.5 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 **** * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * All rights reserved.</center></h2>
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