ARM GAS /tmp/ccEimIdZ.s page 1 1 .cpu cortex-m7 2 .eabi_attribute 28, 1 3 .eabi_attribute 20, 1 4 .eabi_attribute 21, 1 5 .eabi_attribute 23, 3 6 .eabi_attribute 24, 1 7 .eabi_attribute 25, 1 8 .eabi_attribute 26, 1 9 .eabi_attribute 30, 1 10 .eabi_attribute 34, 1 11 .eabi_attribute 18, 4 12 .file "stm32h7xx_hal_i2c.c" 13 .text 14 .Ltext0: 15 .cfi_sections .debug_frame 16 .section .text.I2C_Flush_TXDR,"ax",%progbits 17 .align 1 18 .arch armv7e-m 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv5-d16 24 I2C_Flush_TXDR: 25 .LVL0: 26 .LFB204: 27 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c" 1:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ****************************************************************************** 3:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @file stm32h7xx_hal_i2c.c 4:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @author MCD Application Team 5:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver. 6:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: 8:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Initialization and de-initialization functions 9:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + IO operation functions 10:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Peripheral State and Errors functions 11:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 12:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 13:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================================================================== 14:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### How to use this driver ##### 15:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================================================================== 16:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 17:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The I2C HAL driver can be used as follows: 18:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 19:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: 20:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; 21:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 22:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the @ref HAL_I2C_MspInit() API: 23:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) Enable the I2Cx interface clock 24:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) I2C pins configuration 25:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs 26:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain 27:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process 28:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority 29:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel 30:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process 31:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive stream o ARM GAS /tmp/ccEimIdZ.s page 2 32:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using 33:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA handle parameters 34:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx stream or channel depends on Instance 35:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle 36:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on 37:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the DMA Tx or Rx stream or channel depends on Instance 38:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 39:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres 40:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure 41:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 42:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the @ref HAL_I2C_Init(), configures also the low le 43:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized @ref HAL_I2C_MspInit(&hi2c) API. 44:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 45:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function @ref HAL_I2C_IsDevic 46:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 47:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : 48:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 49:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO operation *** 50:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ================================= 51:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 52:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Tran 53:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Recei 54:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Transm 55:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Receive 56:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 57:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO MEM operation *** 58:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===================================== 59:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 60:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using @ref HAL_I2C_ 61:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using @ref HAL_I2C 62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO operation *** 65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =================================== 66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_ 68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user 69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback( 70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_R 71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca 72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback( 73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Tr 74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user 75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback() 76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Rec 77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can 78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback() 79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can 80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() 81:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I 82:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can 83:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback() 84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro. 85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** ARM GAS /tmp/ccEimIdZ.s page 3 89:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ========================================================== 90:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition 92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** when a direction change during transfer 93:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 94:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer 95:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Option field values are defined through @ref I2C_XFEROPTIONS and are listed below: 96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfa 97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con 98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and data to transfer without a final stop condition 99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a 100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and data to transfer without a final stop condition, an then permit a c 101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** several times (like @ref HAL_I2C_Master_Seq_Transmit_IT() then @ref HAL 102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or @ref HAL_I2C_Master_Seq_Transmit_DMA() then @ref HAL_I2C_Master_Seq_ 103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart 104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases 106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart 107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases 109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re 110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** interface several times (link with option I2C_FIRST_AND_NEXT_FRAME). 111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one using HAL_I2C_Master_Seq_T 112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_AND_NEXT_FRAME then 113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_AND_NEXT_FRAME th 114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_AND_NEXT_FRAME the 115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit o 116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio 117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c 118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** interface. 119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave 120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_FRAME then I2C_OTHE 121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_FRAME then I2C_OT 122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_FRAME then I2C_OTH 123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to 124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Differents sequential I2C interfaces are listed below: 126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using @ref 127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Transmit_DMA() 128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_MasterTxCpltCallback() is e 129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback( 130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using @ref 131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Master_Seq_Receive_DMA() 132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_MasterRxCpltCallback() is exec 133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback( 134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using @ref HAL_I2C_Mas 135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can 136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback() 137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using @ref HAL_I2C_EnableListen 138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) When address slave I2C match, @ref HAL_I2C_AddrCallback() is executed and user can 139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code to check the Address Match Code and the transmission direction request 140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At Listen mode end @ref HAL_I2C_ListenCpltCallback() is executed and user can 141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ListenCpltCallback() 142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using @ref 143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Transmit_DMA() 144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, @ref HAL_I2C_SlaveTxCpltCallback() is ex 145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback() ARM GAS /tmp/ccEimIdZ.s page 4 146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using @ref H 147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or using @ref HAL_I2C_Slave_Seq_Receive_DMA() 148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, @ref HAL_I2C_SlaveRxCpltCallback() is execu 149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback() 150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user ca 151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() 152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro. 153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** 156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ======================================= 157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address 159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_IT() 160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca 161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback() 162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address 163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_IT() 164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can 165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback() 166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() 168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO operation *** 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================== 171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using 173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Master_Transmit_DMA() 174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user 175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback( 176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using 177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Master_Receive_DMA() 178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user ca 179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback( 180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using 181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Slave_Transmit_DMA() 182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user 183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback() 184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using 185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Slave_Receive_DMA() 186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback() 188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can 189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() 190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_I 191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can 192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback() 193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using @ref __HAL_I2C_GENERATE_NACK() macro. 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO MEM operation *** 197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ================================= 198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using 200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Write_DMA() 201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, @ref HAL_I2C_MemTxCpltCallback() is executed and user ca 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemTxCpltCallback() ARM GAS /tmp/ccEimIdZ.s page 5 203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_Mem_Read_DMA() 205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, @ref HAL_I2C_MemRxCpltCallback() is executed and user can 206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_MemRxCpltCallback() 207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can 208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback() 209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** I2C HAL driver macros list *** 212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ================================== 213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. 215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE: Enable the I2C peripheral 217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE: Disable the I2C peripheral 218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode 219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not 220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag 221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt 222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) @ref __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt 223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Callback registration *** 225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================================= 226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. 229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use Functions @ref HAL_I2C_RegisterCallback() or @ref HAL_I2C_RegisterAddrCallback() 230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to register an interrupt callback. 231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Function @ref HAL_I2C_RegisterCallback() allows to register following callbacks: 233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and a pointer to the user callback function. 246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_RegisterAdd 248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use function @ref HAL_I2C_UnRegisterCallback to reset a callback to the default 250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** weak function. 251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, 252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the Callback ID. 253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function allows to reset following callbacks: 254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. ARM GAS /tmp/ccEimIdZ.s page 6 260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : @ref HAL_I2C_UnRegisterAddrCallba 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** By default, after the @ref HAL_I2C_Init() and when the state is @ref HAL_I2C_STATE_RESET 269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: 270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** examples @ref HAL_I2C_MasterTxCpltCallback(), @ref HAL_I2C_MasterRxCpltCallback(). 271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are 272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** reset to the legacy weak functions in the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit() only when 273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** these callbacks are null (not registered beforehand). 274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the @ref HAL_I2C_Init()/ @ref HAL_I2C_DeInit() 275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. 276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Callbacks can be registered/unregistered in @ref HAL_I2C_STATE_READY state only. 278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** in @ref HAL_I2C_STATE_READY or @ref HAL_I2C_STATE_RESET state, 280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using @ref HAL_I2C_RegisterCallback() before calling @ref HAL_I2C_DeInit() 283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or @ref HAL_I2C_Init() function. 284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or 286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks 287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** are set to the corresponding weak functions. 288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros 291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ****************************************************************************** 294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @attention 295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *

© Copyright (c) 2017 STMicroelectronics. 297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * All rights reserved.

298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This software component is licensed by ST under BSD 3-Clause license, 300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the "License"; You may not use this file except in compliance with the 301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * License. You may obtain a copy of the License at: 302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * opensource.org/licenses/BSD-3-Clause 303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ****************************************************************************** 305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #include "stm32h7xx_hal.h" 309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup STM32H7xx_HAL_Driver 311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C I2C 315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver 316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ ARM GAS /tmp/ccEimIdZ.s page 7 317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SlaveAddr_SHIFT 7U 340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SlaveAddr_MSK 0x06U 341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | (uint32_ 344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | ( 346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | ( 347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | ( 348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | ( 349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | ( 350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | ( 351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /* Bit field can be combinated with @ref I2C_ 355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /* Bit field can be combinated with @ref I2C_ 356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /* Bit field can be combinated with @ref I2C_ 357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /* Bit definition to manage addition of globa 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /* Bit definition to manage only STOP eveneme 360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /* Bit definition to manage only Reload of NB 361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/ 369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ ARM GAS /tmp/ccEimIdZ.s page 8 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); 386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1 394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16 395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3 399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin 400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ 408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to treat different error callback */ 414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to flush TXDR register */ 417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to Convert Specific options */ 423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); 424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions ARM GAS /tmp/ccEimIdZ.s page 9 431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialization and Configuration functions 436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the selected configuration: 449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Clock Timing 450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 1 451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Dual Addressing mode 453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2 454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2 Mask 455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) General call mode 456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Nostretch mode 457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** of the selected I2Cx peripheral. 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL) 476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); ARM GAS /tmp/ccEimIdZ.s page 10 488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the I2C Callback settings */ 497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ ARM GAS /tmp/ccEimIdZ.s page 11 545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); 549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddr 559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL) 585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 12 602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */ 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register a User I2C Callback 656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak predefined callback 657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccEimIdZ.s page 13 659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL) 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; 703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; ARM GAS /tmp/ccEimIdZ.s page 14 716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ ARM GAS /tmp/ccEimIdZ.s page 15 773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */ 777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Unregister an I2C Callback 783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb 819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : ARM GAS /tmp/ccEimIdZ.s page 16 830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 17 887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */ 897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL) 914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */ 937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal ARM GAS /tmp/ccEimIdZ.s page 18 944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */ 969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Data transfers functions 981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### IO operation functions ##### 985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfers. 989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) There are two modes of transfer: 991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The status of all data processing is returned by the same function 993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** after finishing transfer. 994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The end of the data processing will be indicated through the 997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using DMA mode. 999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Blocking mode functions are : ARM GAS /tmp/ccEimIdZ.s page 19 1001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 1002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 1049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 1050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/ccEimIdZ.s page 20 1058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 1095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 1100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 21 1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 1130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/ccEimIdZ.s page 22 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 1214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/ccEimIdZ.s page 23 1229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 1250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer ARM GAS /tmp/ccEimIdZ.s page 24 1286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); ARM GAS /tmp/ccEimIdZ.s page 25 1343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Normal use case for Transmitter mode */ 1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */ 1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */ 1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 26 1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ ARM GAS /tmp/ccEimIdZ.s page 27 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 28 1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */ 1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 29 1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT 1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 30 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccEimIdZ.s page 31 1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 32 1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccEimIdZ.s page 33 1799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 1828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 1831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 1834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 1841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 34 1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 1865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 1877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 1901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 35 1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 36 1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 1971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 1984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 37 2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ 2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 38 2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); ARM GAS /tmp/ccEimIdZ.s page 39 2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccEimIdZ.s page 40 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ ARM GAS /tmp/ccEimIdZ.s page 41 2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccEimIdZ.s page 42 2312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 2367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS /tmp/ccEimIdZ.s page 43 2369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U); 2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) ARM GAS /tmp/ccEimIdZ.s page 44 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 2472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 2475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ ARM GAS /tmp/ccEimIdZ.s page 45 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST 2503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U); 2512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** ARM GAS /tmp/ccEimIdZ.s page 46 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; ARM GAS /tmp/ccEimIdZ.s page 47 2597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 48 2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX ARM GAS /tmp/ccEimIdZ.s page 49 2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; ARM GAS /tmp/ccEimIdZ.s page 50 2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); ARM GAS /tmp/ccEimIdZ.s page 51 2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 2866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be read 2874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 52 2882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 2927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ ARM GAS /tmp/ccEimIdZ.s page 53 2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE 2967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccEimIdZ.s page 54 2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This function is used with Memory devices 3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Trials Number of trials 3014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 3015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp1; 3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2; 3025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 3040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Start */ 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 55 3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Device is ready */ 3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ ARM GAS /tmp/ccEimIdZ.s page 56 3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_Trials == Trials) 3111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Trials */ 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Trials++; 3127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (I2C_Trials < Trials); 3129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 57 3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene 3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST 3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; ARM GAS /tmp/ccEimIdZ.s page 58 3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene 3280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ ARM GAS /tmp/ccEimIdZ.s page 59 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST 3282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccEimIdZ.s page 60 3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 3372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter ARM GAS /tmp/ccEimIdZ.s page 61 3395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene 3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST 3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ ARM GAS /tmp/ccEimIdZ.s page 62 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; ARM GAS /tmp/ccEimIdZ.s page 63 3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, do not gene 3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST 3528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 64 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 3618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process ARM GAS /tmp/ccEimIdZ.s page 65 3623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ 3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 66 3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 3711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 3725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during ARM GAS /tmp/ccEimIdZ.s page 67 3737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 3793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 68 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 3807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 3810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ ARM GAS /tmp/ccEimIdZ.s page 69 3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */ 3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0; 3870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 3887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS /tmp/ccEimIdZ.s page 70 3908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); ARM GAS /tmp/ccEimIdZ.s page 71 3965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 3985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 3987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 3999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 72 4022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 73 4079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 74 4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */ 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0; 4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS /tmp/ccEimIdZ.s page 75 4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C 4215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp; 4221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 4230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. 4244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS /tmp/ccEimIdZ.s page 76 4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong usage of abort function */ 4293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** ARM GAS /tmp/ccEimIdZ.s page 77 4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) 4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E 4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */ 4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ER 4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */ 4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_E 4357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */ 4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 78 4364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 79 4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Address Match callback. 4439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection); 4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Listen Complete callback. 4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None ARM GAS /tmp/ccEimIdZ.s page 80 4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C error callback. 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C abort callback. 4523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS /tmp/ccEimIdZ.s page 81 4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 4545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 4549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the data flow. 4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 4553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C handle state. 4558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL state 4561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) 4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */ 4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->State; 4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for I2C module 4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL mode 4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) 4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode; 4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C error code. 4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval I2C Error Code 4584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) 4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode; 4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} ARM GAS /tmp/ccEimIdZ.s page 82 4592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ 4619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 4624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, 4632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, 4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; ARM GAS /tmp/ccEimIdZ.s page 83 4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I 4657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 4661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, hi2c->XferOptions, I2C_NO_S 4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 4677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 4691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2 4697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 4704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ ARM GAS /tmp/ccEimIdZ.s page 84 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 4707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 4718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_ 4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 4731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3 4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */ 4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_ 4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */ 4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 4760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ ARM GAS /tmp/ccEimIdZ.s page 85 4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 4766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/ 4767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* Sam 4771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 4774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 4776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 4784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 4796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 4803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, 4810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccEimIdZ.s page 86 4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 4825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, 4831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 4833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, 4835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 4837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if all Datas have already been sent */ 4839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 4874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. ARM GAS /tmp/ccEimIdZ.s page 87 4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin 4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 4884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC 4889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 4898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_ 4905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC interrupt */ 4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 4908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 4910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Recover Slave address */ 4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 4913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 4926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ ARM GAS /tmp/ccEimIdZ.s page 88 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_I 4966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 4973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 89 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2 4992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */ 5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NAC 5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) 5046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U; ARM GAS /tmp/ccEimIdZ.s page 90 5048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U) 5058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U; 5060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (treatdmanack == 1U) 5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) /* S 5067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpstate = hi2c->State; 5100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 91 5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && (I2C_CHECK_IT_SOURCE(ITSources, I2C 5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccEimIdZ.s page 92 5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */ 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 5204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16 5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) ARM GAS /tmp/ccEimIdZ.s page 93 5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */ 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TC flag is set */ 5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode; 5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code; 5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code; 5260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(ITFlags); 5263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((slaveaddrcode & SlaveAddr_MSK) == ((ownadd1code >> SlaveAddr_SHIFT) & SlaveAddr_MSK)) ARM GAS /tmp/ccEimIdZ.s page 94 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++; 5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Address Event counter */ 5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 5317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 95 5333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Else clear address flag only */ 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccEimIdZ.s page 96 5390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 5446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 97 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master complete process. 5472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg; 5481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 98 5504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 5509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set acknowledge error code */ 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Fetch Last receive data if any */ 5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 5523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 5530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 5555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 99 5561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave complete process. 5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None ARM GAS /tmp/ccEimIdZ.s page 100 5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 5646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmatx); 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmarx); 5672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS /tmp/ccEimIdZ.s page 101 5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 5709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 5715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Tranfer */ 5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 102 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Listen complete process. 5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) ARM GAS /tmp/ccEimIdZ.s page 103 5789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 5797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all Interrupts*/ 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 5808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C interrupts error process. 5825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 5827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate; 5833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set new error code */ 5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 5845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) ARM GAS /tmp/ccEimIdZ.s page 104 5846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts */ 5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 5858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If state is an abort treatment on goind, don't change state */ 5860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This change will be do later */ 5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || (tmppreviousstat 5872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 5874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 5879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 5889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || (tmppreviou 5901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) ARM GAS /tmp/ccEimIdZ.s page 105 5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 5912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 5921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 5931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Error callback treatment. 5936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 106 5960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 5968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 5974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 28 .loc 1 5978 1 view -0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 5979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 5980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 33 .loc 1 5981 3 view .LVU1 34 .loc 1 5981 7 is_stmt 0 view .LVU2 35 0000 0368 ldr r3, [r0] 36 0002 9A69 ldr r2, [r3, #24] 37 .loc 1 5981 6 view .LVU3 38 0004 12F0020F tst r2, #2 39 0008 01D0 beq .L2 5982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 40 .loc 1 5983 5 is_stmt 1 view .LVU4 41 .loc 1 5983 26 is_stmt 0 view .LVU5 42 000a 0022 movs r2, #0 43 000c 9A62 str r2, [r3, #40] 44 .L2: 5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register if not empty */ 5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 45 .loc 1 5987 3 is_stmt 1 view .LVU6 46 .loc 1 5987 7 is_stmt 0 view .LVU7 47 000e 0368 ldr r3, [r0] 48 0010 9A69 ldr r2, [r3, #24] 49 .loc 1 5987 6 view .LVU8 50 0012 12F0010F tst r2, #1 51 0016 03D1 bne .L1 5988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 52 .loc 1 5989 5 is_stmt 1 view .LVU9 53 0018 9A69 ldr r2, [r3, #24] 54 001a 42F00102 orr r2, r2, #1 ARM GAS /tmp/ccEimIdZ.s page 107 55 001e 9A61 str r2, [r3, #24] 56 .L1: 5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 57 .loc 1 5991 1 is_stmt 0 view .LVU10 58 0020 7047 bx lr 59 .cfi_endproc 60 .LFE204: 62 .section .text.I2C_TransferConfig,"ax",%progbits 63 .align 1 64 .syntax unified 65 .thumb 66 .thumb_func 67 .fpu fpv5-d16 69 I2C_TransferConfig: 70 .LVL1: 71 .LFB216: 5992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 5995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */ 6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, h 6029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); ARM GAS /tmp/ccEimIdZ.s page 108 6032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 109 6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */ 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, h 6104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) && \ 6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle ARM GAS /tmp/ccEimIdZ.s page 110 6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U) 6156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U; 6158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) 6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U; 6166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a FIFO error is detected, if true normal use case, so no specific action to perform * 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (!((HAL_DMA_GetError(hdma) == HAL_DMA_ERROR_FE)) && (treatdmaerror != 0U)) 6171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Acknowledge */ 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle. 6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 111 6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. 6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET). 6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 6211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 6237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 6240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 6241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a NACK is detected */ 6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccEimIdZ.s page 112 6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 6277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a NACK is detected */ 6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 6312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) ARM GAS /tmp/ccEimIdZ.s page 113 6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a NACK is detected */ 6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an RXNE is pending */ 6328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return HAL_OK */ 6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 6334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication. 6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration ARM GAS /tmp/ccEimIdZ.s page 114 6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 6375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ 6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP Flag is reset */ 6382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACKF Flag */ 6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 6430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. ARM GAS /tmp/ccEimIdZ.s page 115 6431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 6432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 6435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 6437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 6439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 6442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 6443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 72 .loc 1 6446 1 is_stmt 1 view -0 73 .cfi_startproc 74 @ args = 4, pretend = 0, frame = 0 75 @ frame_needed = 0, uses_anonymous_args = 0 76 @ link register save eliminated. 77 .loc 1 6446 1 is_stmt 0 view .LVU12 78 0000 30B4 push {r4, r5} 79 .LCFI0: 80 .cfi_def_cfa_offset 8 81 .cfi_offset 4, -8 82 .cfi_offset 5, -4 83 0002 029D ldr r5, [sp, #8] 6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 6448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 84 .loc 1 6448 3 is_stmt 1 view .LVU13 6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 85 .loc 1 6449 3 view .LVU14 6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 86 .loc 1 6450 3 view .LVU15 6451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* update CR2 register */ 6453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEN 87 .loc 1 6453 3 view .LVU16 88 0004 0468 ldr r4, [r0] 89 0006 6068 ldr r0, [r4, #4] 90 .LVL2: 91 .loc 1 6453 3 is_stmt 0 view .LVU17 92 0008 4FEA555C lsr ip, r5, #21 93 000c 0CF4806C and ip, ip, #1024 94 0010 4CF07F7C orr ip, ip, #66846720 95 0014 4CF4583C orr ip, ip, #221184 96 0018 4CF47F7C orr ip, ip, #1020 97 001c 4CF0030C orr ip, ip, #3 98 0020 20EA0C00 bic r0, r0, ip 99 0024 C1F30901 ubfx r1, r1, #0, #10 100 .LVL3: 101 .loc 1 6453 3 view .LVU18 102 0028 41EA0241 orr r1, r1, r2, lsl #16 103 002c 1943 orrs r1, r1, r3 104 002e 2943 orrs r1, r1, r5 105 0030 0143 orrs r1, r1, r0 ARM GAS /tmp/ccEimIdZ.s page 116 106 0032 6160 str r1, [r4, #4] 6454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 107 .loc 1 6455 1 view .LVU19 108 0034 30BC pop {r4, r5} 109 .LCFI1: 110 .cfi_restore 5 111 .cfi_restore 4 112 .cfi_def_cfa_offset 0 113 .LVL4: 114 .loc 1 6455 1 view .LVU20 115 0036 7047 bx lr 116 .cfi_endproc 117 .LFE216: 119 .section .text.I2C_Enable_IRQ,"ax",%progbits 120 .align 1 121 .syntax unified 122 .thumb 123 .thumb_func 124 .fpu fpv5-d16 126 I2C_Enable_IRQ: 127 .LVL5: 128 .LFB217: 6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 129 .loc 1 6465 1 is_stmt 1 view -0 130 .cfi_startproc 131 @ args = 0, pretend = 0, frame = 0 132 @ frame_needed = 0, uses_anonymous_args = 0 133 @ link register save eliminated. 6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 134 .loc 1 6466 3 view .LVU22 6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \ 135 .loc 1 6468 3 view .LVU23 136 .loc 1 6468 12 is_stmt 0 view .LVU24 137 0000 436B ldr r3, [r0, #52] 138 .loc 1 6468 6 view .LVU25 139 0002 1A4A ldr r2, .L21 140 0004 9342 cmp r3, r2 141 0006 15D0 beq .L7 142 .loc 1 6468 45 discriminator 1 view .LVU26 143 0008 194A ldr r2, .L21+4 144 000a 9342 cmp r3, r2 145 000c 12D0 beq .L7 6469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 6472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 117 6473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 6478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 6490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 146 .loc 1 6497 5 is_stmt 1 view .LVU27 147 .loc 1 6497 8 is_stmt 0 view .LVU28 148 000e 11F4004F tst r1, #32768 149 0012 29D1 bne .L17 6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 150 .loc 1 6466 12 view .LVU29 151 0014 0023 movs r3, #0 152 .L13: 153 .LVL6: 6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */ 6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 154 .loc 1 6503 5 is_stmt 1 view .LVU30 155 .loc 1 6503 8 is_stmt 0 view .LVU31 156 0016 11F0010F tst r1, #1 157 001a 01D0 beq .L14 6504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 6506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 158 .loc 1 6506 7 is_stmt 1 view .LVU32 159 .loc 1 6506 14 is_stmt 0 view .LVU33 160 001c 43F0F203 orr r3, r3, #242 161 .LVL7: 162 .L14: 6507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 163 .loc 1 6509 5 is_stmt 1 view .LVU34 164 .loc 1 6509 8 is_stmt 0 view .LVU35 ARM GAS /tmp/ccEimIdZ.s page 118 165 0020 11F0020F tst r1, #2 166 0024 01D0 beq .L15 6510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 6512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 167 .loc 1 6512 7 is_stmt 1 view .LVU36 168 .loc 1 6512 14 is_stmt 0 view .LVU37 169 0026 43F0F403 orr r3, r3, #244 170 .LVL8: 171 .L15: 6513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 172 .loc 1 6515 5 is_stmt 1 view .LVU38 173 .loc 1 6515 8 is_stmt 0 view .LVU39 174 002a 2029 cmp r1, #32 175 002c 0CD1 bne .L12 6516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 6518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 176 .loc 1 6518 7 is_stmt 1 view .LVU40 177 .loc 1 6518 14 is_stmt 0 view .LVU41 178 002e 43F02003 orr r3, r3, #32 179 .LVL9: 180 .loc 1 6518 14 view .LVU42 181 0032 09E0 b .L12 182 .LVL10: 183 .L7: 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 184 .loc 1 6471 5 is_stmt 1 view .LVU43 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 185 .loc 1 6471 8 is_stmt 0 view .LVU44 186 0034 11F4004F tst r1, #32768 187 0038 0BD1 bne .L16 6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 188 .loc 1 6466 12 view .LVU45 189 003a 0023 movs r3, #0 190 .L9: 191 .LVL11: 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 192 .loc 1 6477 5 is_stmt 1 view .LVU46 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 193 .loc 1 6477 8 is_stmt 0 view .LVU47 194 003c 1029 cmp r1, #16 195 003e 0AD0 beq .L18 196 .L10: 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 197 .loc 1 6483 5 is_stmt 1 view .LVU48 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 198 .loc 1 6483 8 is_stmt 0 view .LVU49 199 0040 2029 cmp r1, #32 200 0042 0BD0 beq .L19 201 .L11: 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 202 .loc 1 6489 5 is_stmt 1 view .LVU50 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 203 .loc 1 6489 8 is_stmt 0 view .LVU51 ARM GAS /tmp/ccEimIdZ.s page 119 204 0044 4029 cmp r1, #64 205 0046 0CD0 beq .L20 206 .L12: 6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable interrupts only at the end */ 6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all interrupts requested done */ 6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 207 .loc 1 6525 3 is_stmt 1 view .LVU52 208 0048 0168 ldr r1, [r0] 209 .LVL12: 210 .loc 1 6525 3 is_stmt 0 view .LVU53 211 004a 0A68 ldr r2, [r1] 212 004c 1343 orrs r3, r3, r2 213 .LVL13: 214 .loc 1 6525 3 view .LVU54 215 004e 0B60 str r3, [r1] 6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 216 .loc 1 6526 1 view .LVU55 217 0050 7047 bx lr 218 .LVL14: 219 .L16: 6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 220 .loc 1 6474 14 view .LVU56 221 0052 B823 movs r3, #184 222 0054 F2E7 b .L9 223 .LVL15: 224 .L18: 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 225 .loc 1 6480 7 is_stmt 1 view .LVU57 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 226 .loc 1 6480 14 is_stmt 0 view .LVU58 227 0056 43F09003 orr r3, r3, #144 228 .LVL16: 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 229 .loc 1 6480 14 view .LVU59 230 005a F1E7 b .L10 231 .L19: 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 232 .loc 1 6486 7 is_stmt 1 view .LVU60 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 233 .loc 1 6486 14 is_stmt 0 view .LVU61 234 005c 43F06003 orr r3, r3, #96 235 .LVL17: 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 236 .loc 1 6486 14 view .LVU62 237 0060 F0E7 b .L11 238 .L20: 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 239 .loc 1 6492 7 is_stmt 1 view .LVU63 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 240 .loc 1 6492 14 is_stmt 0 view .LVU64 241 0062 43F04003 orr r3, r3, #64 242 .LVL18: 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 120 243 .loc 1 6492 14 view .LVU65 244 0066 EFE7 b .L12 245 .LVL19: 246 .L17: 6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 247 .loc 1 6500 14 view .LVU66 248 0068 B823 movs r3, #184 249 006a D4E7 b .L13 250 .L22: 251 .align 2 252 .L21: 253 006c 00000000 .word I2C_Master_ISR_DMA 254 0070 00000000 .word I2C_Slave_ISR_DMA 255 .cfi_endproc 256 .LFE217: 258 .section .text.I2C_Disable_IRQ,"ax",%progbits 259 .align 1 260 .syntax unified 261 .thumb 262 .thumb_func 263 .fpu fpv5-d16 265 I2C_Disable_IRQ: 266 .LVL20: 267 .LFB218: 6527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 6530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 268 .loc 1 6536 1 is_stmt 1 view -0 269 .cfi_startproc 270 @ args = 0, pretend = 0, frame = 0 271 @ frame_needed = 0, uses_anonymous_args = 0 272 @ link register save eliminated. 6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 273 .loc 1 6537 3 view .LVU68 6538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 274 .loc 1 6539 3 view .LVU69 275 .loc 1 6539 6 is_stmt 0 view .LVU70 276 0000 11F0010F tst r1, #1 277 0004 09D0 beq .L30 6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 278 .loc 1 6542 5 is_stmt 1 view .LVU71 279 .LVL21: 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 280 .loc 1 6544 5 view .LVU72 281 .loc 1 6544 24 is_stmt 0 view .LVU73 282 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/ccEimIdZ.s page 121 283 .loc 1 6544 8 view .LVU74 284 000a 03F02803 and r3, r3, #40 285 000e 282B cmp r3, #40 286 0010 01D0 beq .L33 6545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 287 .loc 1 6547 14 view .LVU75 288 0012 F223 movs r3, #242 289 0014 02E0 b .L24 290 .L33: 6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 291 .loc 1 6542 12 view .LVU76 292 0016 4223 movs r3, #66 293 0018 00E0 b .L24 294 .LVL22: 295 .L30: 6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 296 .loc 1 6537 12 view .LVU77 297 001a 0023 movs r3, #0 298 .LVL23: 299 .L24: 6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 300 .loc 1 6551 3 is_stmt 1 view .LVU78 301 .loc 1 6551 6 is_stmt 0 view .LVU79 302 001c 11F0020F tst r1, #2 303 0020 09D0 beq .L25 6552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 304 .loc 1 6554 5 is_stmt 1 view .LVU80 305 .loc 1 6554 12 is_stmt 0 view .LVU81 306 0022 43F0440C orr ip, r3, #68 307 .LVL24: 6555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 308 .loc 1 6556 5 is_stmt 1 view .LVU82 309 .loc 1 6556 24 is_stmt 0 view .LVU83 310 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 311 .loc 1 6556 8 view .LVU84 312 002a 02F02802 and r2, r2, #40 313 002e 282A cmp r2, #40 314 0030 10D0 beq .L32 6557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 315 .loc 1 6559 7 is_stmt 1 view .LVU85 316 .loc 1 6559 14 is_stmt 0 view .LVU86 317 0032 43F0F403 orr r3, r3, #244 318 .LVL25: 319 .L25: 6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 122 6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 320 .loc 1 6563 3 is_stmt 1 view .LVU87 321 .loc 1 6563 6 is_stmt 0 view .LVU88 322 0036 11F4004F tst r1, #32768 323 003a 0DD1 bne .L34 324 .L26: 6564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 325 .loc 1 6569 3 is_stmt 1 view .LVU89 326 .loc 1 6569 6 is_stmt 0 view .LVU90 327 003c 1029 cmp r1, #16 328 003e 0ED0 beq .L35 329 .L27: 6570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 330 .loc 1 6575 3 is_stmt 1 view .LVU91 331 .loc 1 6575 6 is_stmt 0 view .LVU92 332 0040 2029 cmp r1, #32 333 0042 0FD0 beq .L36 334 .L28: 6576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 335 .loc 1 6581 3 is_stmt 1 view .LVU93 336 .loc 1 6581 6 is_stmt 0 view .LVU94 337 0044 4029 cmp r1, #64 338 0046 10D0 beq .L37 339 .L29: 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable interrupts only at the end */ 6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 6589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all disable interrupts request are not done */ 6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 340 .loc 1 6590 3 is_stmt 1 view .LVU95 341 0048 0168 ldr r1, [r0] 342 .LVL26: 343 .loc 1 6590 3 is_stmt 0 view .LVU96 344 004a 0A68 ldr r2, [r1] 345 004c 22EA0303 bic r3, r2, r3 346 .LVL27: 347 .loc 1 6590 3 view .LVU97 348 0050 0B60 str r3, [r1] ARM GAS /tmp/ccEimIdZ.s page 123 6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 349 .loc 1 6591 1 view .LVU98 350 0052 7047 bx lr 351 .LVL28: 352 .L32: 6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 353 .loc 1 6554 12 view .LVU99 354 0054 6346 mov r3, ip 355 0056 EEE7 b .L25 356 .LVL29: 357 .L34: 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 358 .loc 1 6566 5 is_stmt 1 view .LVU100 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 359 .loc 1 6566 12 is_stmt 0 view .LVU101 360 0058 43F0B803 orr r3, r3, #184 361 .LVL30: 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 362 .loc 1 6566 12 view .LVU102 363 005c EEE7 b .L26 364 .L35: 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 365 .loc 1 6572 5 is_stmt 1 view .LVU103 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 366 .loc 1 6572 12 is_stmt 0 view .LVU104 367 005e 43F09003 orr r3, r3, #144 368 .LVL31: 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 369 .loc 1 6572 12 view .LVU105 370 0062 EDE7 b .L27 371 .L36: 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 372 .loc 1 6578 5 is_stmt 1 view .LVU106 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 373 .loc 1 6578 12 is_stmt 0 view .LVU107 374 0064 43F02003 orr r3, r3, #32 375 .LVL32: 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 376 .loc 1 6578 12 view .LVU108 377 0068 ECE7 b .L28 378 .L37: 6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 379 .loc 1 6584 5 is_stmt 1 view .LVU109 6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 380 .loc 1 6584 12 is_stmt 0 view .LVU110 381 006a 43F04003 orr r3, r3, #64 382 .LVL33: 6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 383 .loc 1 6584 12 view .LVU111 384 006e EBE7 b .L29 385 .cfi_endproc 386 .LFE218: 388 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 389 .align 1 390 .syntax unified 391 .thumb 392 .thumb_func ARM GAS /tmp/ccEimIdZ.s page 124 393 .fpu fpv5-d16 395 I2C_ConvertOtherXferOptions: 396 .LVL34: 397 .LFB219: 6592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functionnal XferOptions. 6595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 398 .loc 1 6599 1 is_stmt 1 view -0 399 .cfi_startproc 400 @ args = 0, pretend = 0, frame = 0 401 @ frame_needed = 0, uses_anonymous_args = 0 402 @ link register save eliminated. 6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 6601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 403 .loc 1 6603 3 view .LVU113 404 .loc 1 6603 11 is_stmt 0 view .LVU114 405 0000 C36A ldr r3, [r0, #44] 406 .loc 1 6603 6 view .LVU115 407 0002 AA2B cmp r3, #170 408 0004 04D0 beq .L41 6604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 6608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 6610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 6611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 409 .loc 1 6611 8 is_stmt 1 view .LVU116 410 .loc 1 6611 16 is_stmt 0 view .LVU117 411 0006 C36A ldr r3, [r0, #44] 412 .loc 1 6611 11 view .LVU118 413 0008 B3F52A4F cmp r3, #43520 414 000c 03D0 beq .L42 415 .L38: 6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 416 .loc 1 6619 1 view .LVU119 417 000e 7047 bx lr 418 .L41: 6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 419 .loc 1 6605 5 is_stmt 1 view .LVU120 6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 420 .loc 1 6605 23 is_stmt 0 view .LVU121 ARM GAS /tmp/ccEimIdZ.s page 125 421 0010 0023 movs r3, #0 422 0012 C362 str r3, [r0, #44] 423 0014 7047 bx lr 424 .L42: 6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 425 .loc 1 6613 5 is_stmt 1 view .LVU122 6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 426 .loc 1 6613 23 is_stmt 0 view .LVU123 427 0016 4FF00073 mov r3, #33554432 428 001a C362 str r3, [r0, #44] 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 429 .loc 1 6618 3 is_stmt 1 view .LVU124 430 .loc 1 6619 1 is_stmt 0 view .LVU125 431 001c F7E7 b .L38 432 .cfi_endproc 433 .LFE219: 435 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits 436 .align 1 437 .syntax unified 438 .thumb 439 .thumb_func 440 .fpu fpv5-d16 442 I2C_IsAcknowledgeFailed: 443 .LVL35: 444 .LFB215: 6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 445 .loc 1 6378 1 is_stmt 1 view -0 446 .cfi_startproc 447 @ args = 0, pretend = 0, frame = 0 448 @ frame_needed = 0, uses_anonymous_args = 0 6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 449 .loc 1 6378 1 is_stmt 0 view .LVU127 450 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 451 .LCFI2: 452 .cfi_def_cfa_offset 24 453 .cfi_offset 3, -24 454 .cfi_offset 4, -20 455 .cfi_offset 5, -16 456 .cfi_offset 6, -12 457 .cfi_offset 7, -8 458 .cfi_offset 14, -4 459 0002 0546 mov r5, r0 460 0004 0E46 mov r6, r1 461 0006 1746 mov r7, r2 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 462 .loc 1 6379 3 is_stmt 1 view .LVU128 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 463 .loc 1 6379 7 is_stmt 0 view .LVU129 464 0008 0368 ldr r3, [r0] 465 000a 9B69 ldr r3, [r3, #24] 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 466 .loc 1 6379 6 view .LVU130 467 000c 13F0100F tst r3, #16 468 0010 01D1 bne .L46 6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 469 .loc 1 6423 10 view .LVU131 470 0012 0020 movs r0, #0 ARM GAS /tmp/ccEimIdZ.s page 126 471 .LVL36: 472 .L45: 6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 473 .loc 1 6424 1 view .LVU132 474 0014 F8BD pop {r3, r4, r5, r6, r7, pc} 475 .LVL37: 476 .L46: 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 477 .loc 1 6383 11 is_stmt 1 view .LVU133 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 478 .loc 1 6383 12 is_stmt 0 view .LVU134 479 0016 2B68 ldr r3, [r5] 480 0018 9C69 ldr r4, [r3, #24] 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 481 .loc 1 6383 11 view .LVU135 482 001a 14F0200F tst r4, #32 483 001e 17D1 bne .L50 6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 484 .loc 1 6386 7 is_stmt 1 view .LVU136 6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 485 .loc 1 6386 10 is_stmt 0 view .LVU137 486 0020 B6F1FF3F cmp r6, #-1 487 0024 F7D0 beq .L46 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 488 .loc 1 6388 9 is_stmt 1 view .LVU138 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 489 .loc 1 6388 15 is_stmt 0 view .LVU139 490 0026 FFF7FEFF bl HAL_GetTick 491 .LVL38: 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 492 .loc 1 6388 29 view .LVU140 493 002a C01B subs r0, r0, r7 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 494 .loc 1 6388 12 view .LVU141 495 002c B042 cmp r0, r6 496 002e 01D8 bhi .L47 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 497 .loc 1 6388 53 discriminator 1 view .LVU142 498 0030 002E cmp r6, #0 499 0032 F0D1 bne .L46 500 .L47: 6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 501 .loc 1 6390 11 is_stmt 1 view .LVU143 6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 502 .loc 1 6390 27 is_stmt 0 view .LVU144 503 0034 6B6C ldr r3, [r5, #68] 504 0036 43F02003 orr r3, r3, #32 505 003a 6B64 str r3, [r5, #68] 6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 506 .loc 1 6391 11 is_stmt 1 view .LVU145 6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 507 .loc 1 6391 23 is_stmt 0 view .LVU146 508 003c 2023 movs r3, #32 509 003e 85F84130 strb r3, [r5, #65] 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 510 .loc 1 6392 11 is_stmt 1 view .LVU147 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 127 511 .loc 1 6392 22 is_stmt 0 view .LVU148 512 0042 0023 movs r3, #0 513 0044 85F84230 strb r3, [r5, #66] 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 514 .loc 1 6395 11 is_stmt 1 view .LVU149 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 515 .loc 1 6395 11 view .LVU150 516 0048 85F84030 strb r3, [r5, #64] 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 517 .loc 1 6395 11 view .LVU151 6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 518 .loc 1 6397 11 view .LVU152 6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 519 .loc 1 6397 18 is_stmt 0 view .LVU153 520 004c 0120 movs r0, #1 521 004e E1E7 b .L45 522 .L50: 6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 523 .loc 1 6403 5 is_stmt 1 view .LVU154 524 0050 1022 movs r2, #16 525 0052 DA61 str r2, [r3, #28] 6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 526 .loc 1 6406 5 view .LVU155 527 0054 2B68 ldr r3, [r5] 528 0056 2024 movs r4, #32 529 0058 DC61 str r4, [r3, #28] 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 530 .loc 1 6409 5 view .LVU156 531 005a 2846 mov r0, r5 532 005c FFF7FEFF bl I2C_Flush_TXDR 533 .LVL39: 6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 534 .loc 1 6412 5 view .LVU157 535 0060 2A68 ldr r2, [r5] 536 0062 5368 ldr r3, [r2, #4] 537 0064 23F0FF73 bic r3, r3, #33423360 538 0068 23F48B33 bic r3, r3, #71168 539 006c 23F4FF73 bic r3, r3, #510 540 0070 23F00103 bic r3, r3, #1 541 0074 5360 str r3, [r2, #4] 6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 542 .loc 1 6414 5 view .LVU158 6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 543 .loc 1 6414 21 is_stmt 0 view .LVU159 544 0076 6B6C ldr r3, [r5, #68] 545 0078 43F00403 orr r3, r3, #4 546 007c 6B64 str r3, [r5, #68] 6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 547 .loc 1 6415 5 is_stmt 1 view .LVU160 6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 548 .loc 1 6415 17 is_stmt 0 view .LVU161 549 007e 85F84140 strb r4, [r5, #65] 6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 550 .loc 1 6416 5 is_stmt 1 view .LVU162 6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 551 .loc 1 6416 16 is_stmt 0 view .LVU163 552 0082 0023 movs r3, #0 ARM GAS /tmp/ccEimIdZ.s page 128 553 0084 85F84230 strb r3, [r5, #66] 6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 554 .loc 1 6419 5 is_stmt 1 view .LVU164 6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 555 .loc 1 6419 5 view .LVU165 556 0088 85F84030 strb r3, [r5, #64] 6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 557 .loc 1 6419 5 view .LVU166 6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 558 .loc 1 6421 5 view .LVU167 6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 559 .loc 1 6421 12 is_stmt 0 view .LVU168 560 008c 0120 movs r0, #1 561 008e C1E7 b .L45 562 .cfi_endproc 563 .LFE215: 565 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 566 .align 1 567 .syntax unified 568 .thumb 569 .thumb_func 570 .fpu fpv5-d16 572 I2C_WaitOnTXISFlagUntilTimeout: 573 .LVL40: 574 .LFB212: 6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 575 .loc 1 6244 1 is_stmt 1 view -0 576 .cfi_startproc 577 @ args = 0, pretend = 0, frame = 0 578 @ frame_needed = 0, uses_anonymous_args = 0 6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 579 .loc 1 6244 1 is_stmt 0 view .LVU170 580 0000 70B5 push {r4, r5, r6, lr} 581 .LCFI3: 582 .cfi_def_cfa_offset 16 583 .cfi_offset 4, -16 584 .cfi_offset 5, -12 585 .cfi_offset 6, -8 586 .cfi_offset 14, -4 587 0002 0446 mov r4, r0 588 0004 0D46 mov r5, r1 589 0006 1646 mov r6, r2 6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 590 .loc 1 6245 3 is_stmt 1 view .LVU171 591 .LVL41: 592 .L54: 6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 593 .loc 1 6245 9 view .LVU172 6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 594 .loc 1 6245 10 is_stmt 0 view .LVU173 595 0008 2368 ldr r3, [r4] 596 000a 9B69 ldr r3, [r3, #24] 6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 597 .loc 1 6245 9 view .LVU174 598 000c 13F0020F tst r3, #2 599 0010 1DD1 bne .L59 6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 129 600 .loc 1 6248 5 is_stmt 1 view .LVU175 6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 601 .loc 1 6248 9 is_stmt 0 view .LVU176 602 0012 3246 mov r2, r6 603 0014 2946 mov r1, r5 604 0016 2046 mov r0, r4 605 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed 606 .LVL42: 6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 607 .loc 1 6248 8 view .LVU177 608 001c C8B9 cbnz r0, .L57 6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 609 .loc 1 6254 5 is_stmt 1 view .LVU178 6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 610 .loc 1 6254 8 is_stmt 0 view .LVU179 611 001e B5F1FF3F cmp r5, #-1 612 0022 F1D0 beq .L54 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 613 .loc 1 6256 7 is_stmt 1 view .LVU180 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 614 .loc 1 6256 13 is_stmt 0 view .LVU181 615 0024 FFF7FEFF bl HAL_GetTick 616 .LVL43: 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 617 .loc 1 6256 27 view .LVU182 618 0028 801B subs r0, r0, r6 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 619 .loc 1 6256 10 view .LVU183 620 002a A842 cmp r0, r5 621 002c 01D8 bhi .L55 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 622 .loc 1 6256 51 discriminator 1 view .LVU184 623 002e 002D cmp r5, #0 624 0030 EAD1 bne .L54 625 .L55: 6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 626 .loc 1 6258 9 is_stmt 1 view .LVU185 6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 627 .loc 1 6258 25 is_stmt 0 view .LVU186 628 0032 636C ldr r3, [r4, #68] 629 0034 43F02003 orr r3, r3, #32 630 0038 6364 str r3, [r4, #68] 6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 631 .loc 1 6259 9 is_stmt 1 view .LVU187 6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 632 .loc 1 6259 21 is_stmt 0 view .LVU188 633 003a 2023 movs r3, #32 634 003c 84F84130 strb r3, [r4, #65] 6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 635 .loc 1 6260 9 is_stmt 1 view .LVU189 6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 636 .loc 1 6260 20 is_stmt 0 view .LVU190 637 0040 0023 movs r3, #0 638 0042 84F84230 strb r3, [r4, #66] 6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 639 .loc 1 6263 9 is_stmt 1 view .LVU191 6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 130 640 .loc 1 6263 9 view .LVU192 641 0046 84F84030 strb r3, [r4, #64] 6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 642 .loc 1 6263 9 view .LVU193 6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 643 .loc 1 6265 9 view .LVU194 6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 644 .loc 1 6265 16 is_stmt 0 view .LVU195 645 004a 0120 movs r0, #1 646 004c 00E0 b .L53 647 .L59: 6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 648 .loc 1 6269 10 view .LVU196 649 004e 0020 movs r0, #0 650 .L53: 6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 651 .loc 1 6270 1 view .LVU197 652 0050 70BD pop {r4, r5, r6, pc} 653 .LVL44: 654 .L57: 6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 655 .loc 1 6250 14 view .LVU198 656 0052 0120 movs r0, #1 657 0054 FCE7 b .L53 658 .cfi_endproc 659 .LFE212: 661 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 662 .align 1 663 .syntax unified 664 .thumb 665 .thumb_func 666 .fpu fpv5-d16 668 I2C_WaitOnFlagUntilTimeout: 669 .LVL45: 670 .LFB211: 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 671 .loc 1 6214 1 is_stmt 1 view -0 672 .cfi_startproc 673 @ args = 4, pretend = 0, frame = 0 674 @ frame_needed = 0, uses_anonymous_args = 0 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 675 .loc 1 6214 1 is_stmt 0 view .LVU200 676 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 677 .LCFI4: 678 .cfi_def_cfa_offset 24 679 .cfi_offset 4, -24 680 .cfi_offset 5, -20 681 .cfi_offset 6, -16 682 .cfi_offset 7, -12 683 .cfi_offset 8, -8 684 .cfi_offset 14, -4 685 0004 0646 mov r6, r0 686 0006 8846 mov r8, r1 687 0008 1746 mov r7, r2 688 000a 1D46 mov r5, r3 6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 689 .loc 1 6215 3 is_stmt 1 view .LVU201 ARM GAS /tmp/ccEimIdZ.s page 131 690 .LVL46: 691 .L62: 6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 692 .loc 1 6215 9 view .LVU202 6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 693 .loc 1 6215 10 is_stmt 0 view .LVU203 694 000c 3468 ldr r4, [r6] 695 000e A469 ldr r4, [r4, #24] 696 0010 38EA0403 bics r3, r8, r4 697 0014 0CBF ite eq 698 0016 4FF0010C moveq ip, #1 699 001a 4FF0000C movne ip, #0 6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 700 .loc 1 6215 9 view .LVU204 701 001e BC45 cmp ip, r7 702 0020 18D1 bne .L67 6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 703 .loc 1 6218 5 is_stmt 1 view .LVU205 6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 704 .loc 1 6218 8 is_stmt 0 view .LVU206 705 0022 B5F1FF3F cmp r5, #-1 706 0026 F1D0 beq .L62 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 707 .loc 1 6220 7 is_stmt 1 view .LVU207 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 708 .loc 1 6220 13 is_stmt 0 view .LVU208 709 0028 FFF7FEFF bl HAL_GetTick 710 .LVL47: 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 711 .loc 1 6220 27 view .LVU209 712 002c 069B ldr r3, [sp, #24] 713 002e C01A subs r0, r0, r3 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 714 .loc 1 6220 10 view .LVU210 715 0030 A842 cmp r0, r5 716 0032 01D8 bhi .L63 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 717 .loc 1 6220 51 discriminator 1 view .LVU211 718 0034 002D cmp r5, #0 719 0036 E9D1 bne .L62 720 .L63: 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 721 .loc 1 6222 9 is_stmt 1 view .LVU212 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 722 .loc 1 6222 25 is_stmt 0 view .LVU213 723 0038 736C ldr r3, [r6, #68] 724 003a 43F02003 orr r3, r3, #32 725 003e 7364 str r3, [r6, #68] 6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 726 .loc 1 6223 9 is_stmt 1 view .LVU214 6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 727 .loc 1 6223 21 is_stmt 0 view .LVU215 728 0040 2023 movs r3, #32 729 0042 86F84130 strb r3, [r6, #65] 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 730 .loc 1 6224 9 is_stmt 1 view .LVU216 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 132 731 .loc 1 6224 20 is_stmt 0 view .LVU217 732 0046 0023 movs r3, #0 733 0048 86F84230 strb r3, [r6, #66] 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 734 .loc 1 6227 9 is_stmt 1 view .LVU218 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 735 .loc 1 6227 9 view .LVU219 736 004c 86F84030 strb r3, [r6, #64] 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 737 .loc 1 6227 9 view .LVU220 6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 738 .loc 1 6228 9 view .LVU221 6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 739 .loc 1 6228 16 is_stmt 0 view .LVU222 740 0050 0120 movs r0, #1 741 0052 00E0 b .L64 742 .L67: 6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 743 .loc 1 6232 10 view .LVU223 744 0054 0020 movs r0, #0 745 .L64: 6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 746 .loc 1 6233 1 view .LVU224 747 0056 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 748 .loc 1 6233 1 view .LVU225 749 .cfi_endproc 750 .LFE211: 752 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 753 .align 1 754 .syntax unified 755 .thumb 756 .thumb_func 757 .fpu fpv5-d16 759 I2C_RequestMemoryWrite: 760 .LVL48: 761 .LFB194: 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 762 .loc 1 5155 1 is_stmt 1 view -0 763 .cfi_startproc 764 @ args = 8, pretend = 0, frame = 0 765 @ frame_needed = 0, uses_anonymous_args = 0 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 766 .loc 1 5155 1 is_stmt 0 view .LVU227 767 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 768 .LCFI5: 769 .cfi_def_cfa_offset 24 770 .cfi_offset 4, -24 771 .cfi_offset 5, -20 772 .cfi_offset 6, -16 773 .cfi_offset 7, -12 774 .cfi_offset 8, -8 775 .cfi_offset 14, -4 776 0004 82B0 sub sp, sp, #8 777 .LCFI6: 778 .cfi_def_cfa_offset 32 779 0006 0446 mov r4, r0 ARM GAS /tmp/ccEimIdZ.s page 133 780 0008 9046 mov r8, r2 781 000a 1D46 mov r5, r3 782 000c 089E ldr r6, [sp, #32] 783 000e 099F ldr r7, [sp, #36] 5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 784 .loc 1 5156 3 is_stmt 1 view .LVU228 785 0010 194B ldr r3, .L77 786 .LVL49: 5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 787 .loc 1 5156 3 is_stmt 0 view .LVU229 788 0012 0093 str r3, [sp] 789 0014 4FF08073 mov r3, #16777216 790 0018 EAB2 uxtb r2, r5 791 .LVL50: 5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 792 .loc 1 5156 3 view .LVU230 793 001a FFF7FEFF bl I2C_TransferConfig 794 .LVL51: 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 795 .loc 1 5159 3 is_stmt 1 view .LVU231 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 796 .loc 1 5159 7 is_stmt 0 view .LVU232 797 001e 3A46 mov r2, r7 798 0020 3146 mov r1, r6 799 0022 2046 mov r0, r4 800 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 801 .LVL52: 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 802 .loc 1 5159 6 view .LVU233 803 0028 F8B9 cbnz r0, .L72 5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 804 .loc 1 5165 3 is_stmt 1 view .LVU234 5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 805 .loc 1 5165 6 is_stmt 0 view .LVU235 806 002a 012D cmp r5, #1 807 002c 0ED1 bne .L70 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 808 .loc 1 5168 5 is_stmt 1 view .LVU236 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 809 .loc 1 5168 9 is_stmt 0 view .LVU237 810 002e 2368 ldr r3, [r4] 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 811 .loc 1 5168 28 view .LVU238 812 0030 5FFA88F2 uxtb r2, r8 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 813 .loc 1 5168 26 view .LVU239 814 0034 9A62 str r2, [r3, #40] 815 .L71: 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 816 .loc 1 5187 3 is_stmt 1 view .LVU240 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 817 .loc 1 5187 7 is_stmt 0 view .LVU241 818 0036 0097 str r7, [sp] 819 0038 3346 mov r3, r6 820 003a 0022 movs r2, #0 821 003c 8021 movs r1, #128 822 003e 2046 mov r0, r4 ARM GAS /tmp/ccEimIdZ.s page 134 823 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 824 .LVL53: 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 825 .loc 1 5187 6 view .LVU242 826 0044 A8B9 cbnz r0, .L76 827 .L69: 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 828 .loc 1 5193 1 view .LVU243 829 0046 02B0 add sp, sp, #8 830 .LCFI7: 831 .cfi_remember_state 832 .cfi_def_cfa_offset 24 833 @ sp needed 834 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 835 .LVL54: 836 .L70: 837 .LCFI8: 838 .cfi_restore_state 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 839 .loc 1 5174 5 is_stmt 1 view .LVU244 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 840 .loc 1 5174 9 is_stmt 0 view .LVU245 841 004c 2368 ldr r3, [r4] 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 842 .loc 1 5174 28 view .LVU246 843 004e 4FEA1822 lsr r2, r8, #8 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 844 .loc 1 5174 26 view .LVU247 845 0052 9A62 str r2, [r3, #40] 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 846 .loc 1 5177 5 is_stmt 1 view .LVU248 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 847 .loc 1 5177 9 is_stmt 0 view .LVU249 848 0054 3A46 mov r2, r7 849 0056 3146 mov r1, r6 850 0058 2046 mov r0, r4 851 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 852 .LVL55: 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 853 .loc 1 5177 8 view .LVU250 854 005e 30B9 cbnz r0, .L73 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 855 .loc 1 5183 5 is_stmt 1 view .LVU251 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 856 .loc 1 5183 9 is_stmt 0 view .LVU252 857 0060 2368 ldr r3, [r4] 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 858 .loc 1 5183 28 view .LVU253 859 0062 5FFA88F2 uxtb r2, r8 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 860 .loc 1 5183 26 view .LVU254 861 0066 9A62 str r2, [r3, #40] 862 0068 E5E7 b .L71 863 .L72: 5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 864 .loc 1 5161 12 view .LVU255 865 006a 0120 movs r0, #1 ARM GAS /tmp/ccEimIdZ.s page 135 866 006c EBE7 b .L69 867 .L73: 5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 868 .loc 1 5179 14 view .LVU256 869 006e 0120 movs r0, #1 870 0070 E9E7 b .L69 871 .L76: 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 872 .loc 1 5189 12 view .LVU257 873 0072 0120 movs r0, #1 874 0074 E7E7 b .L69 875 .L78: 876 0076 00BF .align 2 877 .L77: 878 0078 00200080 .word -2147475456 879 .cfi_endproc 880 .LFE194: 882 .section .text.I2C_RequestMemoryRead,"ax",%progbits 883 .align 1 884 .syntax unified 885 .thumb 886 .thumb_func 887 .fpu fpv5-d16 889 I2C_RequestMemoryRead: 890 .LVL56: 891 .LFB195: 5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 892 .loc 1 5208 1 is_stmt 1 view -0 893 .cfi_startproc 894 @ args = 8, pretend = 0, frame = 0 895 @ frame_needed = 0, uses_anonymous_args = 0 5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 896 .loc 1 5208 1 is_stmt 0 view .LVU259 897 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 898 .LCFI9: 899 .cfi_def_cfa_offset 24 900 .cfi_offset 4, -24 901 .cfi_offset 5, -20 902 .cfi_offset 6, -16 903 .cfi_offset 7, -12 904 .cfi_offset 8, -8 905 .cfi_offset 14, -4 906 0004 82B0 sub sp, sp, #8 907 .LCFI10: 908 .cfi_def_cfa_offset 32 909 0006 0446 mov r4, r0 910 0008 9046 mov r8, r2 911 000a 1D46 mov r5, r3 912 000c 089E ldr r6, [sp, #32] 913 000e 099F ldr r7, [sp, #36] 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 914 .loc 1 5209 3 is_stmt 1 view .LVU260 915 0010 184B ldr r3, .L88 916 .LVL57: 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 917 .loc 1 5209 3 is_stmt 0 view .LVU261 918 0012 0093 str r3, [sp] ARM GAS /tmp/ccEimIdZ.s page 136 919 0014 0023 movs r3, #0 920 0016 EAB2 uxtb r2, r5 921 .LVL58: 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 922 .loc 1 5209 3 view .LVU262 923 0018 FFF7FEFF bl I2C_TransferConfig 924 .LVL59: 5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 925 .loc 1 5212 3 is_stmt 1 view .LVU263 5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 926 .loc 1 5212 7 is_stmt 0 view .LVU264 927 001c 3A46 mov r2, r7 928 001e 3146 mov r1, r6 929 0020 2046 mov r0, r4 930 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 931 .LVL60: 5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 932 .loc 1 5212 6 view .LVU265 933 0026 F8B9 cbnz r0, .L83 5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 934 .loc 1 5218 3 is_stmt 1 view .LVU266 5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 935 .loc 1 5218 6 is_stmt 0 view .LVU267 936 0028 012D cmp r5, #1 937 002a 0ED1 bne .L81 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 938 .loc 1 5221 5 is_stmt 1 view .LVU268 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 939 .loc 1 5221 9 is_stmt 0 view .LVU269 940 002c 2368 ldr r3, [r4] 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 941 .loc 1 5221 28 view .LVU270 942 002e 5FFA88F2 uxtb r2, r8 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 943 .loc 1 5221 26 view .LVU271 944 0032 9A62 str r2, [r3, #40] 945 .L82: 5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 946 .loc 1 5240 3 is_stmt 1 view .LVU272 5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 947 .loc 1 5240 7 is_stmt 0 view .LVU273 948 0034 0097 str r7, [sp] 949 0036 3346 mov r3, r6 950 0038 0022 movs r2, #0 951 003a 4021 movs r1, #64 952 003c 2046 mov r0, r4 953 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 954 .LVL61: 5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 955 .loc 1 5240 6 view .LVU274 956 0042 A8B9 cbnz r0, .L87 957 .L80: 5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 958 .loc 1 5246 1 view .LVU275 959 0044 02B0 add sp, sp, #8 960 .LCFI11: 961 .cfi_remember_state ARM GAS /tmp/ccEimIdZ.s page 137 962 .cfi_def_cfa_offset 24 963 @ sp needed 964 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 965 .LVL62: 966 .L81: 967 .LCFI12: 968 .cfi_restore_state 5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 969 .loc 1 5227 5 is_stmt 1 view .LVU276 5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 970 .loc 1 5227 9 is_stmt 0 view .LVU277 971 004a 2368 ldr r3, [r4] 5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 972 .loc 1 5227 28 view .LVU278 973 004c 4FEA1822 lsr r2, r8, #8 5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 974 .loc 1 5227 26 view .LVU279 975 0050 9A62 str r2, [r3, #40] 5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 976 .loc 1 5230 5 is_stmt 1 view .LVU280 5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 977 .loc 1 5230 9 is_stmt 0 view .LVU281 978 0052 3A46 mov r2, r7 979 0054 3146 mov r1, r6 980 0056 2046 mov r0, r4 981 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 982 .LVL63: 5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 983 .loc 1 5230 8 view .LVU282 984 005c 30B9 cbnz r0, .L84 5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 985 .loc 1 5236 5 is_stmt 1 view .LVU283 5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 986 .loc 1 5236 9 is_stmt 0 view .LVU284 987 005e 2368 ldr r3, [r4] 5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 988 .loc 1 5236 28 view .LVU285 989 0060 5FFA88F2 uxtb r2, r8 5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 990 .loc 1 5236 26 view .LVU286 991 0064 9A62 str r2, [r3, #40] 992 0066 E5E7 b .L82 993 .L83: 5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 994 .loc 1 5214 12 view .LVU287 995 0068 0120 movs r0, #1 996 006a EBE7 b .L80 997 .L84: 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 998 .loc 1 5232 14 view .LVU288 999 006c 0120 movs r0, #1 1000 006e E9E7 b .L80 1001 .L87: 5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1002 .loc 1 5242 12 view .LVU289 1003 0070 0120 movs r0, #1 1004 0072 E7E7 b .L80 ARM GAS /tmp/ccEimIdZ.s page 138 1005 .L89: 1006 .align 2 1007 .L88: 1008 0074 00200080 .word -2147475456 1009 .cfi_endproc 1010 .LFE195: 1012 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1013 .align 1 1014 .syntax unified 1015 .thumb 1016 .thumb_func 1017 .fpu fpv5-d16 1019 I2C_WaitOnSTOPFlagUntilTimeout: 1020 .LVL64: 1021 .LFB213: 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1022 .loc 1 6281 1 is_stmt 1 view -0 1023 .cfi_startproc 1024 @ args = 0, pretend = 0, frame = 0 1025 @ frame_needed = 0, uses_anonymous_args = 0 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1026 .loc 1 6281 1 is_stmt 0 view .LVU291 1027 0000 70B5 push {r4, r5, r6, lr} 1028 .LCFI13: 1029 .cfi_def_cfa_offset 16 1030 .cfi_offset 4, -16 1031 .cfi_offset 5, -12 1032 .cfi_offset 6, -8 1033 .cfi_offset 14, -4 1034 0002 0546 mov r5, r0 1035 0004 0C46 mov r4, r1 1036 0006 1646 mov r6, r2 6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1037 .loc 1 6282 3 is_stmt 1 view .LVU292 1038 .LVL65: 1039 .L91: 6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1040 .loc 1 6282 9 view .LVU293 6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1041 .loc 1 6282 10 is_stmt 0 view .LVU294 1042 0008 2B68 ldr r3, [r5] 1043 000a 9B69 ldr r3, [r3, #24] 6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1044 .loc 1 6282 9 view .LVU295 1045 000c 13F0200F tst r3, #32 1046 0010 1AD1 bne .L97 6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1047 .loc 1 6285 5 is_stmt 1 view .LVU296 6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1048 .loc 1 6285 9 is_stmt 0 view .LVU297 1049 0012 3246 mov r2, r6 1050 0014 2146 mov r1, r4 1051 0016 2846 mov r0, r5 1052 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed 1053 .LVL66: 6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1054 .loc 1 6285 8 view .LVU298 ARM GAS /tmp/ccEimIdZ.s page 139 1055 001c B0B9 cbnz r0, .L95 6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1056 .loc 1 6291 5 is_stmt 1 view .LVU299 6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1057 .loc 1 6291 11 is_stmt 0 view .LVU300 1058 001e FFF7FEFF bl HAL_GetTick 1059 .LVL67: 6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1060 .loc 1 6291 25 view .LVU301 1061 0022 801B subs r0, r0, r6 6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1062 .loc 1 6291 8 view .LVU302 1063 0024 A042 cmp r0, r4 1064 0026 01D8 bhi .L93 6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1065 .loc 1 6291 49 discriminator 1 view .LVU303 1066 0028 002C cmp r4, #0 1067 002a EDD1 bne .L91 1068 .L93: 6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1069 .loc 1 6293 7 is_stmt 1 view .LVU304 6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1070 .loc 1 6293 23 is_stmt 0 view .LVU305 1071 002c 6B6C ldr r3, [r5, #68] 1072 002e 43F02003 orr r3, r3, #32 1073 0032 6B64 str r3, [r5, #68] 6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1074 .loc 1 6294 7 is_stmt 1 view .LVU306 6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1075 .loc 1 6294 19 is_stmt 0 view .LVU307 1076 0034 2023 movs r3, #32 1077 0036 85F84130 strb r3, [r5, #65] 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1078 .loc 1 6295 7 is_stmt 1 view .LVU308 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1079 .loc 1 6295 18 is_stmt 0 view .LVU309 1080 003a 0023 movs r3, #0 1081 003c 85F84230 strb r3, [r5, #66] 6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1082 .loc 1 6298 7 is_stmt 1 view .LVU310 6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1083 .loc 1 6298 7 view .LVU311 1084 0040 85F84030 strb r3, [r5, #64] 6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1085 .loc 1 6298 7 view .LVU312 6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1086 .loc 1 6300 7 view .LVU313 6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1087 .loc 1 6300 14 is_stmt 0 view .LVU314 1088 0044 0120 movs r0, #1 1089 .L92: 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1090 .loc 1 6304 1 view .LVU315 1091 0046 70BD pop {r4, r5, r6, pc} 1092 .LVL68: 1093 .L97: 6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 140 1094 .loc 1 6303 10 view .LVU316 1095 0048 0020 movs r0, #0 1096 004a FCE7 b .L92 1097 .L95: 6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1098 .loc 1 6287 14 view .LVU317 1099 004c 0120 movs r0, #1 1100 004e FAE7 b .L92 1101 .cfi_endproc 1102 .LFE213: 1104 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1105 .align 1 1106 .syntax unified 1107 .thumb 1108 .thumb_func 1109 .fpu fpv5-d16 1111 I2C_WaitOnRXNEFlagUntilTimeout: 1112 .LVL69: 1113 .LFB214: 6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1114 .loc 1 6315 1 is_stmt 1 view -0 1115 .cfi_startproc 1116 @ args = 0, pretend = 0, frame = 0 1117 @ frame_needed = 0, uses_anonymous_args = 0 6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1118 .loc 1 6315 1 is_stmt 0 view .LVU319 1119 0000 70B5 push {r4, r5, r6, lr} 1120 .LCFI14: 1121 .cfi_def_cfa_offset 16 1122 .cfi_offset 4, -16 1123 .cfi_offset 5, -12 1124 .cfi_offset 6, -8 1125 .cfi_offset 14, -4 1126 0002 0446 mov r4, r0 1127 0004 0D46 mov r5, r1 1128 0006 1646 mov r6, r2 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1129 .loc 1 6316 3 is_stmt 1 view .LVU320 1130 .LVL70: 1131 .L99: 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1132 .loc 1 6316 9 view .LVU321 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1133 .loc 1 6316 10 is_stmt 0 view .LVU322 1134 0008 2368 ldr r3, [r4] 1135 000a 9B69 ldr r3, [r3, #24] 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1136 .loc 1 6316 9 view .LVU323 1137 000c 13F0040F tst r3, #4 1138 0010 3ED1 bne .L107 6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1139 .loc 1 6319 5 is_stmt 1 view .LVU324 6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1140 .loc 1 6319 9 is_stmt 0 view .LVU325 1141 0012 3246 mov r2, r6 1142 0014 2946 mov r1, r5 1143 0016 2046 mov r0, r4 ARM GAS /tmp/ccEimIdZ.s page 141 1144 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed 1145 .LVL71: 6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1146 .loc 1 6319 8 view .LVU326 1147 001c 0146 mov r1, r0 1148 001e 0028 cmp r0, #0 1149 0020 38D1 bne .L105 6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1150 .loc 1 6325 5 is_stmt 1 view .LVU327 6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1151 .loc 1 6325 9 is_stmt 0 view .LVU328 1152 0022 2368 ldr r3, [r4] 1153 0024 9A69 ldr r2, [r3, #24] 6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1154 .loc 1 6325 8 view .LVU329 1155 0026 12F0200F tst r2, #32 1156 002a 13D1 bne .L108 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1157 .loc 1 6355 5 is_stmt 1 view .LVU330 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1158 .loc 1 6355 11 is_stmt 0 view .LVU331 1159 002c FFF7FEFF bl HAL_GetTick 1160 .LVL72: 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1161 .loc 1 6355 25 view .LVU332 1162 0030 801B subs r0, r0, r6 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1163 .loc 1 6355 8 view .LVU333 1164 0032 A842 cmp r0, r5 1165 0034 01D8 bhi .L103 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1166 .loc 1 6355 49 discriminator 1 view .LVU334 1167 0036 002D cmp r5, #0 1168 0038 E6D1 bne .L99 1169 .L103: 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1170 .loc 1 6357 7 is_stmt 1 view .LVU335 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1171 .loc 1 6357 23 is_stmt 0 view .LVU336 1172 003a 636C ldr r3, [r4, #68] 1173 003c 43F02003 orr r3, r3, #32 1174 0040 6364 str r3, [r4, #68] 6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1175 .loc 1 6358 7 is_stmt 1 view .LVU337 6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1176 .loc 1 6358 19 is_stmt 0 view .LVU338 1177 0042 2023 movs r3, #32 1178 0044 84F84130 strb r3, [r4, #65] 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1179 .loc 1 6361 7 is_stmt 1 view .LVU339 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1180 .loc 1 6361 7 view .LVU340 1181 0048 0023 movs r3, #0 1182 004a 84F84030 strb r3, [r4, #64] 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1183 .loc 1 6361 7 view .LVU341 6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 142 1184 .loc 1 6363 7 view .LVU342 6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1185 .loc 1 6363 14 is_stmt 0 view .LVU343 1186 004e 0121 movs r1, #1 1187 .L100: 6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1188 .loc 1 6367 1 view .LVU344 1189 0050 0846 mov r0, r1 1190 0052 70BD pop {r4, r5, r6, pc} 1191 .LVL73: 1192 .L108: 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1193 .loc 1 6329 7 is_stmt 1 view .LVU345 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1194 .loc 1 6329 12 is_stmt 0 view .LVU346 1195 0054 9A69 ldr r2, [r3, #24] 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1196 .loc 1 6329 10 view .LVU347 1197 0056 12F0040F tst r2, #4 1198 005a 02D0 beq .L102 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1199 .loc 1 6329 68 discriminator 1 view .LVU348 1200 005c 228D ldrh r2, [r4, #40] 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1201 .loc 1 6329 60 discriminator 1 view .LVU349 1202 005e 002A cmp r2, #0 1203 0060 F6D1 bne .L100 1204 .L102: 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1205 .loc 1 6338 9 is_stmt 1 view .LVU350 1206 0062 2022 movs r2, #32 1207 0064 DA61 str r2, [r3, #28] 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1208 .loc 1 6341 9 view .LVU351 1209 0066 2168 ldr r1, [r4] 1210 0068 4B68 ldr r3, [r1, #4] 1211 006a 23F0FF73 bic r3, r3, #33423360 1212 006e 23F48B33 bic r3, r3, #71168 1213 0072 23F4FF73 bic r3, r3, #510 1214 0076 23F00103 bic r3, r3, #1 1215 007a 4B60 str r3, [r1, #4] 6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1216 .loc 1 6343 9 view .LVU352 6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1217 .loc 1 6343 25 is_stmt 0 view .LVU353 1218 007c 0023 movs r3, #0 1219 007e 6364 str r3, [r4, #68] 6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1220 .loc 1 6344 9 is_stmt 1 view .LVU354 6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1221 .loc 1 6344 21 is_stmt 0 view .LVU355 1222 0080 84F84120 strb r2, [r4, #65] 6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1223 .loc 1 6345 9 is_stmt 1 view .LVU356 6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1224 .loc 1 6345 20 is_stmt 0 view .LVU357 1225 0084 84F84230 strb r3, [r4, #66] ARM GAS /tmp/ccEimIdZ.s page 143 6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1226 .loc 1 6348 9 is_stmt 1 view .LVU358 6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1227 .loc 1 6348 9 view .LVU359 1228 0088 84F84030 strb r3, [r4, #64] 6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1229 .loc 1 6348 9 view .LVU360 6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1230 .loc 1 6350 9 view .LVU361 6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1231 .loc 1 6350 16 is_stmt 0 view .LVU362 1232 008c 0121 movs r1, #1 1233 008e DFE7 b .L100 1234 .L107: 6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1235 .loc 1 6366 10 view .LVU363 1236 0090 0021 movs r1, #0 1237 0092 DDE7 b .L100 1238 .L105: 6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1239 .loc 1 6321 14 view .LVU364 1240 0094 0121 movs r1, #1 1241 0096 DBE7 b .L100 1242 .cfi_endproc 1243 .LFE214: 1245 .section .text.HAL_I2C_MspInit,"ax",%progbits 1246 .align 1 1247 .weak HAL_I2C_MspInit 1248 .syntax unified 1249 .thumb 1250 .thumb_func 1251 .fpu fpv5-d16 1253 HAL_I2C_MspInit: 1254 .LVL74: 1255 .LFB143: 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1256 .loc 1 628 1 is_stmt 1 view -0 1257 .cfi_startproc 1258 @ args = 0, pretend = 0, frame = 0 1259 @ frame_needed = 0, uses_anonymous_args = 0 1260 @ link register save eliminated. 630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1261 .loc 1 630 3 view .LVU366 635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1262 .loc 1 635 1 is_stmt 0 view .LVU367 1263 0000 7047 bx lr 1264 .cfi_endproc 1265 .LFE143: 1267 .section .text.HAL_I2C_Init,"ax",%progbits 1268 .align 1 1269 .global HAL_I2C_Init 1270 .syntax unified 1271 .thumb 1272 .thumb_func 1273 .fpu fpv5-d16 1275 HAL_I2C_Init: 1276 .LVL75: ARM GAS /tmp/ccEimIdZ.s page 144 1277 .LFB141: 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1278 .loc 1 473 1 is_stmt 1 view -0 1279 .cfi_startproc 1280 @ args = 0, pretend = 0, frame = 0 1281 @ frame_needed = 0, uses_anonymous_args = 0 475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1282 .loc 1 475 3 view .LVU369 475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1283 .loc 1 475 6 is_stmt 0 view .LVU370 1284 0000 0028 cmp r0, #0 1285 0002 57D0 beq .L116 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1286 .loc 1 473 1 view .LVU371 1287 0004 10B5 push {r4, lr} 1288 .LCFI15: 1289 .cfi_def_cfa_offset 8 1290 .cfi_offset 4, -8 1291 .cfi_offset 14, -4 1292 0006 0446 mov r4, r0 481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1293 .loc 1 481 3 is_stmt 1 view .LVU372 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1294 .loc 1 482 3 view .LVU373 483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1295 .loc 1 483 3 view .LVU374 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1296 .loc 1 484 3 view .LVU375 485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1297 .loc 1 485 3 view .LVU376 486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1298 .loc 1 486 3 view .LVU377 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1299 .loc 1 487 3 view .LVU378 488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1300 .loc 1 488 3 view .LVU379 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1301 .loc 1 490 3 view .LVU380 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1302 .loc 1 490 11 is_stmt 0 view .LVU381 1303 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1304 .loc 1 490 6 view .LVU382 1305 000c 002B cmp r3, #0 1306 000e 41D0 beq .L121 1307 .LVL76: 1308 .L112: 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1309 .loc 1 521 3 is_stmt 1 view .LVU383 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1310 .loc 1 521 15 is_stmt 0 view .LVU384 1311 0010 2423 movs r3, #36 1312 0012 84F84130 strb r3, [r4, #65] 524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1313 .loc 1 524 3 is_stmt 1 view .LVU385 1314 0016 2268 ldr r2, [r4] 1315 0018 1368 ldr r3, [r2] ARM GAS /tmp/ccEimIdZ.s page 145 1316 001a 23F00103 bic r3, r3, #1 1317 001e 1360 str r3, [r2] 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1318 .loc 1 528 3 view .LVU386 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1319 .loc 1 528 39 is_stmt 0 view .LVU387 1320 0020 6368 ldr r3, [r4, #4] 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1321 .loc 1 528 7 view .LVU388 1322 0022 2268 ldr r2, [r4] 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1323 .loc 1 528 47 view .LVU389 1324 0024 23F07063 bic r3, r3, #251658240 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1325 .loc 1 528 27 view .LVU390 1326 0028 1361 str r3, [r2, #16] 532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1327 .loc 1 532 3 is_stmt 1 view .LVU391 532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1328 .loc 1 532 7 is_stmt 0 view .LVU392 1329 002a 2268 ldr r2, [r4] 532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1330 .loc 1 532 24 view .LVU393 1331 002c 9368 ldr r3, [r2, #8] 1332 002e 23F40043 bic r3, r3, #32768 1333 0032 9360 str r3, [r2, #8] 535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1334 .loc 1 535 3 is_stmt 1 view .LVU394 535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1335 .loc 1 535 17 is_stmt 0 view .LVU395 1336 0034 E368 ldr r3, [r4, #12] 535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1337 .loc 1 535 6 view .LVU396 1338 0036 012B cmp r3, #1 1339 0038 31D0 beq .L122 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1340 .loc 1 541 5 is_stmt 1 view .LVU397 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1341 .loc 1 541 75 is_stmt 0 view .LVU398 1342 003a A368 ldr r3, [r4, #8] 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1343 .loc 1 541 9 view .LVU399 1344 003c 2268 ldr r2, [r4] 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1345 .loc 1 541 63 view .LVU400 1346 003e 43F40443 orr r3, r3, #33792 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1347 .loc 1 541 26 view .LVU401 1348 0042 9360 str r3, [r2, #8] 1349 .L114: 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1350 .loc 1 546 3 is_stmt 1 view .LVU402 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1351 .loc 1 546 17 is_stmt 0 view .LVU403 1352 0044 E368 ldr r3, [r4, #12] 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1353 .loc 1 546 6 view .LVU404 ARM GAS /tmp/ccEimIdZ.s page 146 1354 0046 022B cmp r3, #2 1355 0048 2FD0 beq .L123 1356 .L115: 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1357 .loc 1 551 3 is_stmt 1 view .LVU405 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1358 .loc 1 551 7 is_stmt 0 view .LVU406 1359 004a 2268 ldr r2, [r4] 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1360 .loc 1 551 23 view .LVU407 1361 004c 5168 ldr r1, [r2, #4] 1362 004e 1A4B ldr r3, .L124 1363 0050 0B43 orrs r3, r3, r1 1364 0052 5360 str r3, [r2, #4] 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1365 .loc 1 555 3 is_stmt 1 view .LVU408 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1366 .loc 1 555 7 is_stmt 0 view .LVU409 1367 0054 2268 ldr r2, [r4] 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1368 .loc 1 555 24 view .LVU410 1369 0056 D368 ldr r3, [r2, #12] 1370 0058 23F40043 bic r3, r3, #32768 1371 005c D360 str r3, [r2, #12] 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1372 .loc 1 558 3 is_stmt 1 view .LVU411 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1373 .loc 1 558 37 is_stmt 0 view .LVU412 1374 005e 2369 ldr r3, [r4, #16] 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1375 .loc 1 558 66 view .LVU413 1376 0060 6269 ldr r2, [r4, #20] 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1377 .loc 1 558 54 view .LVU414 1378 0062 1343 orrs r3, r3, r2 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1379 .loc 1 558 92 view .LVU415 1380 0064 A169 ldr r1, [r4, #24] 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1381 .loc 1 558 7 view .LVU416 1382 0066 2268 ldr r2, [r4] 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1383 .loc 1 558 79 view .LVU417 1384 0068 43EA0123 orr r3, r3, r1, lsl #8 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1385 .loc 1 558 24 view .LVU418 1386 006c D360 str r3, [r2, #12] 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1387 .loc 1 562 3 is_stmt 1 view .LVU419 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1388 .loc 1 562 36 is_stmt 0 view .LVU420 1389 006e E369 ldr r3, [r4, #28] 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1390 .loc 1 562 65 view .LVU421 1391 0070 216A ldr r1, [r4, #32] 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1392 .loc 1 562 7 view .LVU422 ARM GAS /tmp/ccEimIdZ.s page 147 1393 0072 2268 ldr r2, [r4] 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1394 .loc 1 562 53 view .LVU423 1395 0074 0B43 orrs r3, r3, r1 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1396 .loc 1 562 23 view .LVU424 1397 0076 1360 str r3, [r2] 565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1398 .loc 1 565 3 is_stmt 1 view .LVU425 1399 0078 2268 ldr r2, [r4] 1400 007a 1368 ldr r3, [r2] 1401 007c 43F00103 orr r3, r3, #1 1402 0080 1360 str r3, [r2] 567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1403 .loc 1 567 3 view .LVU426 567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1404 .loc 1 567 19 is_stmt 0 view .LVU427 1405 0082 0020 movs r0, #0 1406 0084 6064 str r0, [r4, #68] 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1407 .loc 1 568 3 is_stmt 1 view .LVU428 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1408 .loc 1 568 15 is_stmt 0 view .LVU429 1409 0086 2023 movs r3, #32 1410 0088 84F84130 strb r3, [r4, #65] 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1411 .loc 1 569 3 is_stmt 1 view .LVU430 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1412 .loc 1 569 23 is_stmt 0 view .LVU431 1413 008c 2063 str r0, [r4, #48] 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1414 .loc 1 570 3 is_stmt 1 view .LVU432 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1415 .loc 1 570 14 is_stmt 0 view .LVU433 1416 008e 84F84200 strb r0, [r4, #66] 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1417 .loc 1 572 3 is_stmt 1 view .LVU434 573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1418 .loc 1 573 1 is_stmt 0 view .LVU435 1419 0092 10BD pop {r4, pc} 1420 .LVL77: 1421 .L121: 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1422 .loc 1 493 5 is_stmt 1 view .LVU436 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1423 .loc 1 493 16 is_stmt 0 view .LVU437 1424 0094 80F84030 strb r3, [r0, #64] 517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1425 .loc 1 517 5 is_stmt 1 view .LVU438 1426 0098 FFF7FEFF bl HAL_I2C_MspInit 1427 .LVL78: 517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1428 .loc 1 517 5 is_stmt 0 view .LVU439 1429 009c B8E7 b .L112 1430 .L122: 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1431 .loc 1 537 5 is_stmt 1 view .LVU440 ARM GAS /tmp/ccEimIdZ.s page 148 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1432 .loc 1 537 56 is_stmt 0 view .LVU441 1433 009e A368 ldr r3, [r4, #8] 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1434 .loc 1 537 9 view .LVU442 1435 00a0 2268 ldr r2, [r4] 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1436 .loc 1 537 44 view .LVU443 1437 00a2 43F40043 orr r3, r3, #32768 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1438 .loc 1 537 26 view .LVU444 1439 00a6 9360 str r3, [r2, #8] 1440 00a8 CCE7 b .L114 1441 .L123: 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1442 .loc 1 548 5 is_stmt 1 view .LVU445 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1443 .loc 1 548 9 is_stmt 0 view .LVU446 1444 00aa 2368 ldr r3, [r4] 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1445 .loc 1 548 25 view .LVU447 1446 00ac 4FF40062 mov r2, #2048 1447 00b0 5A60 str r2, [r3, #4] 1448 00b2 CAE7 b .L115 1449 .LVL79: 1450 .L116: 1451 .LCFI16: 1452 .cfi_def_cfa_offset 0 1453 .cfi_restore 4 1454 .cfi_restore 14 477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1455 .loc 1 477 12 view .LVU448 1456 00b4 0120 movs r0, #1 1457 .LVL80: 573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1458 .loc 1 573 1 view .LVU449 1459 00b6 7047 bx lr 1460 .L125: 1461 .align 2 1462 .L124: 1463 00b8 00800002 .word 33587200 1464 .cfi_endproc 1465 .LFE141: 1467 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1468 .align 1 1469 .weak HAL_I2C_MspDeInit 1470 .syntax unified 1471 .thumb 1472 .thumb_func 1473 .fpu fpv5-d16 1475 HAL_I2C_MspDeInit: 1476 .LVL81: 1477 .LFB144: 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1478 .loc 1 644 1 is_stmt 1 view -0 1479 .cfi_startproc 1480 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccEimIdZ.s page 149 1481 @ frame_needed = 0, uses_anonymous_args = 0 1482 @ link register save eliminated. 646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1483 .loc 1 646 3 view .LVU451 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1484 .loc 1 651 1 is_stmt 0 view .LVU452 1485 0000 7047 bx lr 1486 .cfi_endproc 1487 .LFE144: 1489 .section .text.HAL_I2C_DeInit,"ax",%progbits 1490 .align 1 1491 .global HAL_I2C_DeInit 1492 .syntax unified 1493 .thumb 1494 .thumb_func 1495 .fpu fpv5-d16 1497 HAL_I2C_DeInit: 1498 .LVL82: 1499 .LFB142: 582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1500 .loc 1 582 1 is_stmt 1 view -0 1501 .cfi_startproc 1502 @ args = 0, pretend = 0, frame = 0 1503 @ frame_needed = 0, uses_anonymous_args = 0 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1504 .loc 1 584 3 view .LVU454 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1505 .loc 1 584 6 is_stmt 0 view .LVU455 1506 0000 A8B1 cbz r0, .L129 582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1507 .loc 1 582 1 view .LVU456 1508 0002 10B5 push {r4, lr} 1509 .LCFI17: 1510 .cfi_def_cfa_offset 8 1511 .cfi_offset 4, -8 1512 .cfi_offset 14, -4 1513 0004 0446 mov r4, r0 590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1514 .loc 1 590 3 is_stmt 1 view .LVU457 592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1515 .loc 1 592 3 view .LVU458 592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1516 .loc 1 592 15 is_stmt 0 view .LVU459 1517 0006 2423 movs r3, #36 1518 0008 80F84130 strb r3, [r0, #65] 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1519 .loc 1 595 3 is_stmt 1 view .LVU460 1520 000c 0268 ldr r2, [r0] 1521 000e 1368 ldr r3, [r2] 1522 0010 23F00103 bic r3, r3, #1 1523 0014 1360 str r3, [r2] 607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1524 .loc 1 607 3 view .LVU461 1525 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1526 .LVL83: 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1527 .loc 1 610 3 view .LVU462 ARM GAS /tmp/ccEimIdZ.s page 150 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1528 .loc 1 610 19 is_stmt 0 view .LVU463 1529 001a 0020 movs r0, #0 1530 001c 6064 str r0, [r4, #68] 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1531 .loc 1 611 3 is_stmt 1 view .LVU464 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1532 .loc 1 611 15 is_stmt 0 view .LVU465 1533 001e 84F84100 strb r0, [r4, #65] 612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1534 .loc 1 612 3 is_stmt 1 view .LVU466 612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1535 .loc 1 612 23 is_stmt 0 view .LVU467 1536 0022 2063 str r0, [r4, #48] 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1537 .loc 1 613 3 is_stmt 1 view .LVU468 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1538 .loc 1 613 14 is_stmt 0 view .LVU469 1539 0024 84F84200 strb r0, [r4, #66] 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1540 .loc 1 616 3 is_stmt 1 view .LVU470 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1541 .loc 1 616 3 view .LVU471 1542 0028 84F84000 strb r0, [r4, #64] 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1543 .loc 1 616 3 view .LVU472 618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1544 .loc 1 618 3 view .LVU473 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1545 .loc 1 619 1 is_stmt 0 view .LVU474 1546 002c 10BD pop {r4, pc} 1547 .LVL84: 1548 .L129: 1549 .LCFI18: 1550 .cfi_def_cfa_offset 0 1551 .cfi_restore 4 1552 .cfi_restore 14 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1553 .loc 1 586 12 view .LVU475 1554 002e 0120 movs r0, #1 1555 .LVL85: 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1556 .loc 1 619 1 view .LVU476 1557 0030 7047 bx lr 1558 .cfi_endproc 1559 .LFE142: 1561 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1562 .align 1 1563 .global HAL_I2C_Master_Transmit 1564 .syntax unified 1565 .thumb 1566 .thumb_func 1567 .fpu fpv5-d16 1569 HAL_I2C_Master_Transmit: 1570 .LVL86: 1571 .LFB145: 1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; ARM GAS /tmp/ccEimIdZ.s page 151 1572 .loc 1 1064 1 is_stmt 1 view -0 1573 .cfi_startproc 1574 @ args = 4, pretend = 0, frame = 0 1575 @ frame_needed = 0, uses_anonymous_args = 0 1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1576 .loc 1 1064 1 is_stmt 0 view .LVU478 1577 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1578 .LCFI19: 1579 .cfi_def_cfa_offset 32 1580 .cfi_offset 4, -32 1581 .cfi_offset 5, -28 1582 .cfi_offset 6, -24 1583 .cfi_offset 7, -20 1584 .cfi_offset 8, -16 1585 .cfi_offset 9, -12 1586 .cfi_offset 10, -8 1587 .cfi_offset 14, -4 1588 0004 82B0 sub sp, sp, #8 1589 .LCFI20: 1590 .cfi_def_cfa_offset 40 1591 0006 0F46 mov r7, r1 1592 0008 0A9E ldr r6, [sp, #40] 1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1593 .loc 1 1065 3 is_stmt 1 view .LVU479 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1594 .loc 1 1067 3 view .LVU480 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1595 .loc 1 1067 11 is_stmt 0 view .LVU481 1596 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1597 .LVL87: 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1598 .loc 1 1067 11 view .LVU482 1599 000e C9B2 uxtb r1, r1 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1600 .loc 1 1067 6 view .LVU483 1601 0010 2029 cmp r1, #32 1602 0012 40F0A380 bne .L142 1603 0016 0446 mov r4, r0 1604 0018 9046 mov r8, r2 1605 001a 9946 mov r9, r3 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1606 .loc 1 1070 5 is_stmt 1 view .LVU484 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1607 .loc 1 1070 5 view .LVU485 1608 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1609 .LVL88: 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1610 .loc 1 1070 5 is_stmt 0 view .LVU486 1611 0020 012B cmp r3, #1 1612 0022 00F09F80 beq .L143 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1613 .loc 1 1070 5 is_stmt 1 discriminator 2 view .LVU487 1614 0026 4FF0010A mov r10, #1 1615 002a 80F840A0 strb r10, [r0, #64] 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1616 .loc 1 1070 5 discriminator 2 view .LVU488 1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 152 1617 .loc 1 1073 5 discriminator 2 view .LVU489 1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1618 .loc 1 1073 17 is_stmt 0 discriminator 2 view .LVU490 1619 002e FFF7FEFF bl HAL_GetTick 1620 .LVL89: 1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1621 .loc 1 1073 17 discriminator 2 view .LVU491 1622 0032 0546 mov r5, r0 1623 .LVL90: 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1624 .loc 1 1075 5 is_stmt 1 discriminator 2 view .LVU492 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1625 .loc 1 1075 9 is_stmt 0 discriminator 2 view .LVU493 1626 0034 0090 str r0, [sp] 1627 0036 1923 movs r3, #25 1628 0038 5246 mov r2, r10 1629 003a 4FF40041 mov r1, #32768 1630 003e 2046 mov r0, r4 1631 .LVL91: 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1632 .loc 1 1075 9 discriminator 2 view .LVU494 1633 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1634 .LVL92: 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1635 .loc 1 1075 8 discriminator 2 view .LVU495 1636 0044 0028 cmp r0, #0 1637 0046 40F08F80 bne .L144 1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1638 .loc 1 1080 5 is_stmt 1 view .LVU496 1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1639 .loc 1 1080 21 is_stmt 0 view .LVU497 1640 004a 2123 movs r3, #33 1641 004c 84F84130 strb r3, [r4, #65] 1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1642 .loc 1 1081 5 is_stmt 1 view .LVU498 1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1643 .loc 1 1081 21 is_stmt 0 view .LVU499 1644 0050 1023 movs r3, #16 1645 0052 84F84230 strb r3, [r4, #66] 1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1646 .loc 1 1082 5 is_stmt 1 view .LVU500 1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1647 .loc 1 1082 21 is_stmt 0 view .LVU501 1648 0056 0023 movs r3, #0 1649 0058 6364 str r3, [r4, #68] 1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1650 .loc 1 1085 5 is_stmt 1 view .LVU502 1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1651 .loc 1 1085 21 is_stmt 0 view .LVU503 1652 005a C4F82480 str r8, [r4, #36] 1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1653 .loc 1 1086 5 is_stmt 1 view .LVU504 1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1654 .loc 1 1086 21 is_stmt 0 view .LVU505 1655 005e A4F82A90 strh r9, [r4, #42] @ movhi 1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1656 .loc 1 1087 5 is_stmt 1 view .LVU506 ARM GAS /tmp/ccEimIdZ.s page 153 1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1657 .loc 1 1087 21 is_stmt 0 view .LVU507 1658 0062 6363 str r3, [r4, #52] 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1659 .loc 1 1091 5 is_stmt 1 view .LVU508 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1660 .loc 1 1091 13 is_stmt 0 view .LVU509 1661 0064 638D ldrh r3, [r4, #42] 1662 0066 9BB2 uxth r3, r3 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1663 .loc 1 1091 8 view .LVU510 1664 0068 FF2B cmp r3, #255 1665 006a 0AD9 bls .L136 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 1666 .loc 1 1093 7 is_stmt 1 view .LVU511 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 1667 .loc 1 1093 22 is_stmt 0 view .LVU512 1668 006c FF22 movs r2, #255 1669 006e 2285 strh r2, [r4, #40] @ movhi 1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1670 .loc 1 1094 7 is_stmt 1 view .LVU513 1671 0070 414B ldr r3, .L150 1672 0072 0093 str r3, [sp] 1673 0074 4FF08073 mov r3, #16777216 1674 0078 3946 mov r1, r7 1675 007a 2046 mov r0, r4 1676 007c FFF7FEFF bl I2C_TransferConfig 1677 .LVL93: 1678 0080 18E0 b .L138 1679 .L136: 1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 1680 .loc 1 1098 7 view .LVU514 1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 1681 .loc 1 1098 28 is_stmt 0 view .LVU515 1682 0082 628D ldrh r2, [r4, #42] 1683 0084 92B2 uxth r2, r2 1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 1684 .loc 1 1098 22 view .LVU516 1685 0086 2285 strh r2, [r4, #40] @ movhi 1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1686 .loc 1 1099 7 is_stmt 1 view .LVU517 1687 0088 3B4B ldr r3, .L150 1688 008a 0093 str r3, [sp] 1689 008c 4FF00073 mov r3, #33554432 1690 0090 D2B2 uxtb r2, r2 1691 0092 3946 mov r1, r7 1692 0094 2046 mov r0, r4 1693 0096 FFF7FEFF bl I2C_TransferConfig 1694 .LVL94: 1695 009a 0BE0 b .L138 1696 .L140: 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 1697 .loc 1 1133 11 view .LVU518 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 1698 .loc 1 1133 32 is_stmt 0 view .LVU519 1699 009c 628D ldrh r2, [r4, #42] 1700 009e 92B2 uxth r2, r2 ARM GAS /tmp/ccEimIdZ.s page 154 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 1701 .loc 1 1133 26 view .LVU520 1702 00a0 2285 strh r2, [r4, #40] @ movhi 1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1703 .loc 1 1134 11 is_stmt 1 view .LVU521 1704 00a2 0023 movs r3, #0 1705 00a4 0093 str r3, [sp] 1706 00a6 4FF00073 mov r3, #33554432 1707 00aa D2B2 uxtb r2, r2 1708 00ac 3946 mov r1, r7 1709 00ae 2046 mov r0, r4 1710 00b0 FFF7FEFF bl I2C_TransferConfig 1711 .LVL95: 1712 .L138: 1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1713 .loc 1 1102 11 view .LVU522 1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1714 .loc 1 1102 16 is_stmt 0 view .LVU523 1715 00b4 638D ldrh r3, [r4, #42] 1716 00b6 9BB2 uxth r3, r3 1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1717 .loc 1 1102 11 view .LVU524 1718 00b8 002B cmp r3, #0 1719 00ba 33D0 beq .L149 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1720 .loc 1 1105 7 is_stmt 1 view .LVU525 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1721 .loc 1 1105 11 is_stmt 0 view .LVU526 1722 00bc 2A46 mov r2, r5 1723 00be 3146 mov r1, r6 1724 00c0 2046 mov r0, r4 1725 00c2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1726 .LVL96: 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1727 .loc 1 1105 10 view .LVU527 1728 00c6 0028 cmp r0, #0 1729 00c8 50D1 bne .L145 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1730 .loc 1 1110 7 is_stmt 1 view .LVU528 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1731 .loc 1 1110 35 is_stmt 0 view .LVU529 1732 00ca 626A ldr r2, [r4, #36] 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1733 .loc 1 1110 11 view .LVU530 1734 00cc 2368 ldr r3, [r4] 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1735 .loc 1 1110 30 view .LVU531 1736 00ce 1278 ldrb r2, [r2] @ zero_extendqisi2 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1737 .loc 1 1110 28 view .LVU532 1738 00d0 9A62 str r2, [r3, #40] 1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1739 .loc 1 1113 7 is_stmt 1 view .LVU533 1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1740 .loc 1 1113 11 is_stmt 0 view .LVU534 1741 00d2 636A ldr r3, [r4, #36] 1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 155 1742 .loc 1 1113 21 view .LVU535 1743 00d4 0133 adds r3, r3, #1 1744 00d6 6362 str r3, [r4, #36] 1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1745 .loc 1 1115 7 is_stmt 1 view .LVU536 1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1746 .loc 1 1115 11 is_stmt 0 view .LVU537 1747 00d8 638D ldrh r3, [r4, #42] 1748 00da 9BB2 uxth r3, r3 1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1749 .loc 1 1115 22 view .LVU538 1750 00dc 013B subs r3, r3, #1 1751 00de 9BB2 uxth r3, r3 1752 00e0 6385 strh r3, [r4, #42] @ movhi 1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1753 .loc 1 1116 7 is_stmt 1 view .LVU539 1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1754 .loc 1 1116 11 is_stmt 0 view .LVU540 1755 00e2 238D ldrh r3, [r4, #40] 1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1756 .loc 1 1116 21 view .LVU541 1757 00e4 013B subs r3, r3, #1 1758 00e6 9BB2 uxth r3, r3 1759 00e8 2385 strh r3, [r4, #40] @ movhi 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1760 .loc 1 1118 7 is_stmt 1 view .LVU542 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1761 .loc 1 1118 16 is_stmt 0 view .LVU543 1762 00ea 628D ldrh r2, [r4, #42] 1763 00ec 92B2 uxth r2, r2 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1764 .loc 1 1118 10 view .LVU544 1765 00ee 002A cmp r2, #0 1766 00f0 E0D0 beq .L138 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1767 .loc 1 1118 35 discriminator 1 view .LVU545 1768 00f2 002B cmp r3, #0 1769 00f4 DED1 bne .L138 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1770 .loc 1 1121 9 is_stmt 1 view .LVU546 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1771 .loc 1 1121 13 is_stmt 0 view .LVU547 1772 00f6 0095 str r5, [sp] 1773 00f8 3346 mov r3, r6 1774 00fa 0022 movs r2, #0 1775 00fc 8021 movs r1, #128 1776 00fe 2046 mov r0, r4 1777 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1778 .LVL97: 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1779 .loc 1 1121 12 view .LVU548 1780 0104 A0BB cbnz r0, .L146 1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1781 .loc 1 1126 9 is_stmt 1 view .LVU549 1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1782 .loc 1 1126 17 is_stmt 0 view .LVU550 1783 0106 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccEimIdZ.s page 156 1784 0108 9BB2 uxth r3, r3 1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1785 .loc 1 1126 12 view .LVU551 1786 010a FF2B cmp r3, #255 1787 010c C6D9 bls .L140 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 1788 .loc 1 1128 11 is_stmt 1 view .LVU552 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 1789 .loc 1 1128 26 is_stmt 0 view .LVU553 1790 010e FF22 movs r2, #255 1791 0110 2285 strh r2, [r4, #40] @ movhi 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1792 .loc 1 1129 11 is_stmt 1 view .LVU554 1793 0112 0023 movs r3, #0 1794 0114 0093 str r3, [sp] 1795 0116 4FF08073 mov r3, #16777216 1796 011a 3946 mov r1, r7 1797 011c 2046 mov r0, r4 1798 011e FFF7FEFF bl I2C_TransferConfig 1799 .LVL98: 1800 0122 C7E7 b .L138 1801 .L149: 1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1802 .loc 1 1141 5 view .LVU555 1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1803 .loc 1 1141 9 is_stmt 0 view .LVU556 1804 0124 2A46 mov r2, r5 1805 0126 3146 mov r1, r6 1806 0128 2046 mov r0, r4 1807 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 1808 .LVL99: 1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1809 .loc 1 1141 8 view .LVU557 1810 012e 08BB cbnz r0, .L147 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1811 .loc 1 1147 5 is_stmt 1 view .LVU558 1812 0130 2368 ldr r3, [r4] 1813 0132 2022 movs r2, #32 1814 0134 DA61 str r2, [r3, #28] 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1815 .loc 1 1150 5 view .LVU559 1816 0136 2168 ldr r1, [r4] 1817 0138 4B68 ldr r3, [r1, #4] 1818 013a 23F0FF73 bic r3, r3, #33423360 1819 013e 23F48B33 bic r3, r3, #71168 1820 0142 23F4FF73 bic r3, r3, #510 1821 0146 23F00103 bic r3, r3, #1 1822 014a 4B60 str r3, [r1, #4] 1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1823 .loc 1 1152 5 view .LVU560 1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1824 .loc 1 1152 17 is_stmt 0 view .LVU561 1825 014c 84F84120 strb r2, [r4, #65] 1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1826 .loc 1 1153 5 is_stmt 1 view .LVU562 1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1827 .loc 1 1153 17 is_stmt 0 view .LVU563 ARM GAS /tmp/ccEimIdZ.s page 157 1828 0150 0023 movs r3, #0 1829 0152 84F84230 strb r3, [r4, #66] 1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1830 .loc 1 1156 5 is_stmt 1 view .LVU564 1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1831 .loc 1 1156 5 view .LVU565 1832 0156 84F84030 strb r3, [r4, #64] 1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1833 .loc 1 1156 5 view .LVU566 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1834 .loc 1 1158 5 view .LVU567 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1835 .loc 1 1158 12 is_stmt 0 view .LVU568 1836 015a 00E0 b .L135 1837 .LVL100: 1838 .L142: 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1839 .loc 1 1162 12 view .LVU569 1840 015c 0220 movs r0, #2 1841 .LVL101: 1842 .L135: 1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1843 .loc 1 1164 1 view .LVU570 1844 015e 02B0 add sp, sp, #8 1845 .LCFI21: 1846 .cfi_remember_state 1847 .cfi_def_cfa_offset 32 1848 @ sp needed 1849 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 1850 .LVL102: 1851 .L143: 1852 .LCFI22: 1853 .cfi_restore_state 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1854 .loc 1 1070 5 view .LVU571 1855 0164 0220 movs r0, #2 1856 .LVL103: 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1857 .loc 1 1070 5 view .LVU572 1858 0166 FAE7 b .L135 1859 .LVL104: 1860 .L144: 1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1861 .loc 1 1077 14 view .LVU573 1862 0168 0120 movs r0, #1 1863 016a F8E7 b .L135 1864 .L145: 1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1865 .loc 1 1107 16 view .LVU574 1866 016c 0120 movs r0, #1 1867 016e F6E7 b .L135 1868 .L146: 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1869 .loc 1 1123 18 view .LVU575 1870 0170 0120 movs r0, #1 1871 0172 F4E7 b .L135 1872 .L147: ARM GAS /tmp/ccEimIdZ.s page 158 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1873 .loc 1 1143 14 view .LVU576 1874 0174 0120 movs r0, #1 1875 0176 F2E7 b .L135 1876 .L151: 1877 .align 2 1878 .L150: 1879 0178 00200080 .word -2147475456 1880 .cfi_endproc 1881 .LFE145: 1883 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 1884 .align 1 1885 .global HAL_I2C_Master_Receive 1886 .syntax unified 1887 .thumb 1888 .thumb_func 1889 .fpu fpv5-d16 1891 HAL_I2C_Master_Receive: 1892 .LVL105: 1893 .LFB146: 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1894 .loc 1 1178 1 is_stmt 1 view -0 1895 .cfi_startproc 1896 @ args = 4, pretend = 0, frame = 0 1897 @ frame_needed = 0, uses_anonymous_args = 0 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1898 .loc 1 1178 1 is_stmt 0 view .LVU578 1899 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1900 .LCFI23: 1901 .cfi_def_cfa_offset 32 1902 .cfi_offset 4, -32 1903 .cfi_offset 5, -28 1904 .cfi_offset 6, -24 1905 .cfi_offset 7, -20 1906 .cfi_offset 8, -16 1907 .cfi_offset 9, -12 1908 .cfi_offset 10, -8 1909 .cfi_offset 14, -4 1910 0004 82B0 sub sp, sp, #8 1911 .LCFI24: 1912 .cfi_def_cfa_offset 40 1913 0006 0F46 mov r7, r1 1914 0008 0A9E ldr r6, [sp, #40] 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1915 .loc 1 1179 3 is_stmt 1 view .LVU579 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1916 .loc 1 1181 3 view .LVU580 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1917 .loc 1 1181 11 is_stmt 0 view .LVU581 1918 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1919 .LVL106: 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1920 .loc 1 1181 11 view .LVU582 1921 000e C9B2 uxtb r1, r1 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1922 .loc 1 1181 6 view .LVU583 1923 0010 2029 cmp r1, #32 ARM GAS /tmp/ccEimIdZ.s page 159 1924 0012 40F0A280 bne .L160 1925 0016 0446 mov r4, r0 1926 0018 9046 mov r8, r2 1927 001a 9946 mov r9, r3 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1928 .loc 1 1184 5 is_stmt 1 view .LVU584 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1929 .loc 1 1184 5 view .LVU585 1930 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1931 .LVL107: 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1932 .loc 1 1184 5 is_stmt 0 view .LVU586 1933 0020 012B cmp r3, #1 1934 0022 00F09E80 beq .L161 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1935 .loc 1 1184 5 is_stmt 1 discriminator 2 view .LVU587 1936 0026 4FF0010A mov r10, #1 1937 002a 80F840A0 strb r10, [r0, #64] 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1938 .loc 1 1184 5 discriminator 2 view .LVU588 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1939 .loc 1 1187 5 discriminator 2 view .LVU589 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1940 .loc 1 1187 17 is_stmt 0 discriminator 2 view .LVU590 1941 002e FFF7FEFF bl HAL_GetTick 1942 .LVL108: 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1943 .loc 1 1187 17 discriminator 2 view .LVU591 1944 0032 0546 mov r5, r0 1945 .LVL109: 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1946 .loc 1 1189 5 is_stmt 1 discriminator 2 view .LVU592 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1947 .loc 1 1189 9 is_stmt 0 discriminator 2 view .LVU593 1948 0034 0090 str r0, [sp] 1949 0036 1923 movs r3, #25 1950 0038 5246 mov r2, r10 1951 003a 4FF40041 mov r1, #32768 1952 003e 2046 mov r0, r4 1953 .LVL110: 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1954 .loc 1 1189 9 discriminator 2 view .LVU594 1955 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1956 .LVL111: 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1957 .loc 1 1189 8 discriminator 2 view .LVU595 1958 0044 0028 cmp r0, #0 1959 0046 40F08E80 bne .L162 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1960 .loc 1 1194 5 is_stmt 1 view .LVU596 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1961 .loc 1 1194 21 is_stmt 0 view .LVU597 1962 004a 2223 movs r3, #34 1963 004c 84F84130 strb r3, [r4, #65] 1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1964 .loc 1 1195 5 is_stmt 1 view .LVU598 1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccEimIdZ.s page 160 1965 .loc 1 1195 21 is_stmt 0 view .LVU599 1966 0050 1023 movs r3, #16 1967 0052 84F84230 strb r3, [r4, #66] 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1968 .loc 1 1196 5 is_stmt 1 view .LVU600 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1969 .loc 1 1196 21 is_stmt 0 view .LVU601 1970 0056 0023 movs r3, #0 1971 0058 6364 str r3, [r4, #68] 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1972 .loc 1 1199 5 is_stmt 1 view .LVU602 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1973 .loc 1 1199 21 is_stmt 0 view .LVU603 1974 005a C4F82480 str r8, [r4, #36] 1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1975 .loc 1 1200 5 is_stmt 1 view .LVU604 1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1976 .loc 1 1200 21 is_stmt 0 view .LVU605 1977 005e A4F82A90 strh r9, [r4, #42] @ movhi 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1978 .loc 1 1201 5 is_stmt 1 view .LVU606 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1979 .loc 1 1201 21 is_stmt 0 view .LVU607 1980 0062 6363 str r3, [r4, #52] 1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1981 .loc 1 1205 5 is_stmt 1 view .LVU608 1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1982 .loc 1 1205 13 is_stmt 0 view .LVU609 1983 0064 638D ldrh r3, [r4, #42] 1984 0066 9BB2 uxth r3, r3 1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1985 .loc 1 1205 8 view .LVU610 1986 0068 FF2B cmp r3, #255 1987 006a 0AD9 bls .L154 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 1988 .loc 1 1207 7 is_stmt 1 view .LVU611 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 1989 .loc 1 1207 22 is_stmt 0 view .LVU612 1990 006c FF22 movs r2, #255 1991 006e 2285 strh r2, [r4, #40] @ movhi 1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1992 .loc 1 1208 7 is_stmt 1 view .LVU613 1993 0070 414B ldr r3, .L168 1994 0072 0093 str r3, [sp] 1995 0074 4FF08073 mov r3, #16777216 1996 0078 3946 mov r1, r7 1997 007a 2046 mov r0, r4 1998 007c FFF7FEFF bl I2C_TransferConfig 1999 .LVL112: 2000 0080 18E0 b .L156 2001 .L154: 1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 2002 .loc 1 1212 7 view .LVU614 1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 2003 .loc 1 1212 28 is_stmt 0 view .LVU615 2004 0082 628D ldrh r2, [r4, #42] 2005 0084 92B2 uxth r2, r2 ARM GAS /tmp/ccEimIdZ.s page 161 1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 2006 .loc 1 1212 22 view .LVU616 2007 0086 2285 strh r2, [r4, #40] @ movhi 1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2008 .loc 1 1213 7 is_stmt 1 view .LVU617 2009 0088 3B4B ldr r3, .L168 2010 008a 0093 str r3, [sp] 2011 008c 4FF00073 mov r3, #33554432 2012 0090 D2B2 uxtb r2, r2 2013 0092 3946 mov r1, r7 2014 0094 2046 mov r0, r4 2015 0096 FFF7FEFF bl I2C_TransferConfig 2016 .LVL113: 2017 009a 0BE0 b .L156 2018 .L158: 1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 2019 .loc 1 1248 11 view .LVU618 1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 2020 .loc 1 1248 32 is_stmt 0 view .LVU619 2021 009c 628D ldrh r2, [r4, #42] 2022 009e 92B2 uxth r2, r2 1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 2023 .loc 1 1248 26 view .LVU620 2024 00a0 2285 strh r2, [r4, #40] @ movhi 1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2025 .loc 1 1249 11 is_stmt 1 view .LVU621 2026 00a2 0023 movs r3, #0 2027 00a4 0093 str r3, [sp] 2028 00a6 4FF00073 mov r3, #33554432 2029 00aa D2B2 uxtb r2, r2 2030 00ac 3946 mov r1, r7 2031 00ae 2046 mov r0, r4 2032 00b0 FFF7FEFF bl I2C_TransferConfig 2033 .LVL114: 2034 .L156: 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2035 .loc 1 1216 11 view .LVU622 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2036 .loc 1 1216 16 is_stmt 0 view .LVU623 2037 00b4 638D ldrh r3, [r4, #42] 2038 00b6 9BB2 uxth r3, r3 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2039 .loc 1 1216 11 view .LVU624 2040 00b8 002B cmp r3, #0 2041 00ba 32D0 beq .L167 1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2042 .loc 1 1219 7 is_stmt 1 view .LVU625 1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2043 .loc 1 1219 11 is_stmt 0 view .LVU626 2044 00bc 2A46 mov r2, r5 2045 00be 3146 mov r1, r6 2046 00c0 2046 mov r0, r4 2047 00c2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2048 .LVL115: 1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2049 .loc 1 1219 10 view .LVU627 2050 00c6 0028 cmp r0, #0 ARM GAS /tmp/ccEimIdZ.s page 162 2051 00c8 4FD1 bne .L163 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2052 .loc 1 1225 7 is_stmt 1 view .LVU628 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2053 .loc 1 1225 38 is_stmt 0 view .LVU629 2054 00ca 2368 ldr r3, [r4] 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2055 .loc 1 1225 48 view .LVU630 2056 00cc 5A6A ldr r2, [r3, #36] 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2057 .loc 1 1225 12 view .LVU631 2058 00ce 636A ldr r3, [r4, #36] 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2059 .loc 1 1225 23 view .LVU632 2060 00d0 1A70 strb r2, [r3] 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2061 .loc 1 1228 7 is_stmt 1 view .LVU633 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2062 .loc 1 1228 11 is_stmt 0 view .LVU634 2063 00d2 636A ldr r3, [r4, #36] 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2064 .loc 1 1228 21 view .LVU635 2065 00d4 0133 adds r3, r3, #1 2066 00d6 6362 str r3, [r4, #36] 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2067 .loc 1 1230 7 is_stmt 1 view .LVU636 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2068 .loc 1 1230 11 is_stmt 0 view .LVU637 2069 00d8 228D ldrh r2, [r4, #40] 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2070 .loc 1 1230 21 view .LVU638 2071 00da 013A subs r2, r2, #1 2072 00dc 92B2 uxth r2, r2 2073 00de 2285 strh r2, [r4, #40] @ movhi 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2074 .loc 1 1231 7 is_stmt 1 view .LVU639 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2075 .loc 1 1231 11 is_stmt 0 view .LVU640 2076 00e0 638D ldrh r3, [r4, #42] 2077 00e2 9BB2 uxth r3, r3 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2078 .loc 1 1231 22 view .LVU641 2079 00e4 013B subs r3, r3, #1 2080 00e6 9BB2 uxth r3, r3 2081 00e8 6385 strh r3, [r4, #42] @ movhi 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2082 .loc 1 1233 7 is_stmt 1 view .LVU642 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2083 .loc 1 1233 16 is_stmt 0 view .LVU643 2084 00ea 638D ldrh r3, [r4, #42] 2085 00ec 9BB2 uxth r3, r3 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2086 .loc 1 1233 10 view .LVU644 2087 00ee 002B cmp r3, #0 2088 00f0 E0D0 beq .L156 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2089 .loc 1 1233 35 discriminator 1 view .LVU645 ARM GAS /tmp/ccEimIdZ.s page 163 2090 00f2 002A cmp r2, #0 2091 00f4 DED1 bne .L156 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2092 .loc 1 1236 9 is_stmt 1 view .LVU646 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2093 .loc 1 1236 13 is_stmt 0 view .LVU647 2094 00f6 0095 str r5, [sp] 2095 00f8 3346 mov r3, r6 2096 00fa 8021 movs r1, #128 2097 00fc 2046 mov r0, r4 2098 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2099 .LVL116: 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2100 .loc 1 1236 12 view .LVU648 2101 0102 A0BB cbnz r0, .L164 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2102 .loc 1 1241 9 is_stmt 1 view .LVU649 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2103 .loc 1 1241 17 is_stmt 0 view .LVU650 2104 0104 638D ldrh r3, [r4, #42] 2105 0106 9BB2 uxth r3, r3 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2106 .loc 1 1241 12 view .LVU651 2107 0108 FF2B cmp r3, #255 2108 010a C7D9 bls .L158 1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 2109 .loc 1 1243 11 is_stmt 1 view .LVU652 1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 2110 .loc 1 1243 26 is_stmt 0 view .LVU653 2111 010c FF22 movs r2, #255 2112 010e 2285 strh r2, [r4, #40] @ movhi 1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2113 .loc 1 1244 11 is_stmt 1 view .LVU654 2114 0110 0023 movs r3, #0 2115 0112 0093 str r3, [sp] 2116 0114 4FF08073 mov r3, #16777216 2117 0118 3946 mov r1, r7 2118 011a 2046 mov r0, r4 2119 011c FFF7FEFF bl I2C_TransferConfig 2120 .LVL117: 2121 0120 C8E7 b .L156 2122 .L167: 1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2123 .loc 1 1256 5 view .LVU655 1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2124 .loc 1 1256 9 is_stmt 0 view .LVU656 2125 0122 2A46 mov r2, r5 2126 0124 3146 mov r1, r6 2127 0126 2046 mov r0, r4 2128 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2129 .LVL118: 1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2130 .loc 1 1256 8 view .LVU657 2131 012c 08BB cbnz r0, .L165 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2132 .loc 1 1262 5 is_stmt 1 view .LVU658 2133 012e 2368 ldr r3, [r4] ARM GAS /tmp/ccEimIdZ.s page 164 2134 0130 2022 movs r2, #32 2135 0132 DA61 str r2, [r3, #28] 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2136 .loc 1 1265 5 view .LVU659 2137 0134 2168 ldr r1, [r4] 2138 0136 4B68 ldr r3, [r1, #4] 2139 0138 23F0FF73 bic r3, r3, #33423360 2140 013c 23F48B33 bic r3, r3, #71168 2141 0140 23F4FF73 bic r3, r3, #510 2142 0144 23F00103 bic r3, r3, #1 2143 0148 4B60 str r3, [r1, #4] 1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2144 .loc 1 1267 5 view .LVU660 1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2145 .loc 1 1267 17 is_stmt 0 view .LVU661 2146 014a 84F84120 strb r2, [r4, #65] 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2147 .loc 1 1268 5 is_stmt 1 view .LVU662 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2148 .loc 1 1268 17 is_stmt 0 view .LVU663 2149 014e 0023 movs r3, #0 2150 0150 84F84230 strb r3, [r4, #66] 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2151 .loc 1 1271 5 is_stmt 1 view .LVU664 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2152 .loc 1 1271 5 view .LVU665 2153 0154 84F84030 strb r3, [r4, #64] 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2154 .loc 1 1271 5 view .LVU666 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2155 .loc 1 1273 5 view .LVU667 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2156 .loc 1 1273 12 is_stmt 0 view .LVU668 2157 0158 00E0 b .L153 2158 .LVL119: 2159 .L160: 1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2160 .loc 1 1277 12 view .LVU669 2161 015a 0220 movs r0, #2 2162 .LVL120: 2163 .L153: 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2164 .loc 1 1279 1 view .LVU670 2165 015c 02B0 add sp, sp, #8 2166 .LCFI25: 2167 .cfi_remember_state 2168 .cfi_def_cfa_offset 32 2169 @ sp needed 2170 015e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2171 .LVL121: 2172 .L161: 2173 .LCFI26: 2174 .cfi_restore_state 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2175 .loc 1 1184 5 view .LVU671 2176 0162 0220 movs r0, #2 2177 .LVL122: ARM GAS /tmp/ccEimIdZ.s page 165 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2178 .loc 1 1184 5 view .LVU672 2179 0164 FAE7 b .L153 2180 .LVL123: 2181 .L162: 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2182 .loc 1 1191 14 view .LVU673 2183 0166 0120 movs r0, #1 2184 0168 F8E7 b .L153 2185 .L163: 1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2186 .loc 1 1221 16 view .LVU674 2187 016a 0120 movs r0, #1 2188 016c F6E7 b .L153 2189 .L164: 1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2190 .loc 1 1238 18 view .LVU675 2191 016e 0120 movs r0, #1 2192 0170 F4E7 b .L153 2193 .L165: 1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2194 .loc 1 1258 14 view .LVU676 2195 0172 0120 movs r0, #1 2196 0174 F2E7 b .L153 2197 .L169: 2198 0176 00BF .align 2 2199 .L168: 2200 0178 00240080 .word -2147474432 2201 .cfi_endproc 2202 .LFE146: 2204 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2205 .align 1 2206 .global HAL_I2C_Slave_Transmit 2207 .syntax unified 2208 .thumb 2209 .thumb_func 2210 .fpu fpv5-d16 2212 HAL_I2C_Slave_Transmit: 2213 .LVL124: 2214 .LFB147: 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2215 .loc 1 1291 1 is_stmt 1 view -0 2216 .cfi_startproc 2217 @ args = 0, pretend = 0, frame = 0 2218 @ frame_needed = 0, uses_anonymous_args = 0 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2219 .loc 1 1291 1 is_stmt 0 view .LVU678 2220 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2221 .LCFI27: 2222 .cfi_def_cfa_offset 24 2223 .cfi_offset 4, -24 2224 .cfi_offset 5, -20 2225 .cfi_offset 6, -16 2226 .cfi_offset 7, -12 2227 .cfi_offset 8, -8 2228 .cfi_offset 14, -4 2229 0004 82B0 sub sp, sp, #8 ARM GAS /tmp/ccEimIdZ.s page 166 2230 .LCFI28: 2231 .cfi_def_cfa_offset 32 2232 0006 1D46 mov r5, r3 1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2233 .loc 1 1292 3 is_stmt 1 view .LVU679 1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2234 .loc 1 1294 3 view .LVU680 1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2235 .loc 1 1294 11 is_stmt 0 view .LVU681 2236 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2237 .LVL125: 1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2238 .loc 1 1294 11 view .LVU682 2239 000c DBB2 uxtb r3, r3 1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2240 .loc 1 1294 6 view .LVU683 2241 000e 202B cmp r3, #32 2242 0010 40F0B680 bne .L181 2243 0014 0446 mov r4, r0 2244 0016 0F46 mov r7, r1 2245 0018 9046 mov r8, r2 1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2246 .loc 1 1296 5 is_stmt 1 view .LVU684 1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2247 .loc 1 1296 8 is_stmt 0 view .LVU685 2248 001a 002A cmp r2, #0 2249 001c 18BF it ne 2250 001e 0029 cmpne r1, #0 2251 0020 50D0 beq .L185 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2252 .loc 1 1302 5 is_stmt 1 view .LVU686 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2253 .loc 1 1302 5 view .LVU687 2254 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2255 0026 012B cmp r3, #1 2256 0028 00F0AE80 beq .L182 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2257 .loc 1 1302 5 discriminator 2 view .LVU688 2258 002c 0123 movs r3, #1 2259 002e 80F84030 strb r3, [r0, #64] 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2260 .loc 1 1302 5 discriminator 2 view .LVU689 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2261 .loc 1 1305 5 discriminator 2 view .LVU690 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2262 .loc 1 1305 17 is_stmt 0 discriminator 2 view .LVU691 2263 0032 FFF7FEFF bl HAL_GetTick 2264 .LVL126: 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2265 .loc 1 1305 17 discriminator 2 view .LVU692 2266 0036 0646 mov r6, r0 2267 .LVL127: 1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2268 .loc 1 1307 5 is_stmt 1 discriminator 2 view .LVU693 1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2269 .loc 1 1307 21 is_stmt 0 discriminator 2 view .LVU694 2270 0038 2123 movs r3, #33 ARM GAS /tmp/ccEimIdZ.s page 167 2271 003a 84F84130 strb r3, [r4, #65] 1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2272 .loc 1 1308 5 is_stmt 1 discriminator 2 view .LVU695 1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2273 .loc 1 1308 21 is_stmt 0 discriminator 2 view .LVU696 2274 003e 2023 movs r3, #32 2275 0040 84F84230 strb r3, [r4, #66] 1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2276 .loc 1 1309 5 is_stmt 1 discriminator 2 view .LVU697 1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2277 .loc 1 1309 21 is_stmt 0 discriminator 2 view .LVU698 2278 0044 0022 movs r2, #0 2279 0046 6264 str r2, [r4, #68] 1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2280 .loc 1 1312 5 is_stmt 1 discriminator 2 view .LVU699 1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2281 .loc 1 1312 21 is_stmt 0 discriminator 2 view .LVU700 2282 0048 6762 str r7, [r4, #36] 1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2283 .loc 1 1313 5 is_stmt 1 discriminator 2 view .LVU701 1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2284 .loc 1 1313 21 is_stmt 0 discriminator 2 view .LVU702 2285 004a A4F82A80 strh r8, [r4, #42] @ movhi 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2286 .loc 1 1314 5 is_stmt 1 discriminator 2 view .LVU703 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2287 .loc 1 1314 21 is_stmt 0 discriminator 2 view .LVU704 2288 004e 6263 str r2, [r4, #52] 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2289 .loc 1 1317 5 is_stmt 1 discriminator 2 view .LVU705 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2290 .loc 1 1317 9 is_stmt 0 discriminator 2 view .LVU706 2291 0050 2168 ldr r1, [r4] 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2292 .loc 1 1317 25 discriminator 2 view .LVU707 2293 0052 4B68 ldr r3, [r1, #4] 2294 0054 23F40043 bic r3, r3, #32768 2295 0058 4B60 str r3, [r1, #4] 1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2296 .loc 1 1320 5 is_stmt 1 discriminator 2 view .LVU708 1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2297 .loc 1 1320 9 is_stmt 0 discriminator 2 view .LVU709 2298 005a 0090 str r0, [sp] 2299 005c 2B46 mov r3, r5 2300 005e 0821 movs r1, #8 2301 0060 2046 mov r0, r4 2302 .LVL128: 1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2303 .loc 1 1320 9 discriminator 2 view .LVU710 2304 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2305 .LVL129: 1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2306 .loc 1 1320 8 discriminator 2 view .LVU711 2307 0066 0028 cmp r0, #0 2308 0068 31D1 bne .L186 1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2309 .loc 1 1328 5 is_stmt 1 view .LVU712 ARM GAS /tmp/ccEimIdZ.s page 168 2310 006a 2368 ldr r3, [r4] 2311 006c 0822 movs r2, #8 2312 006e DA61 str r2, [r3, #28] 1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2313 .loc 1 1331 5 view .LVU713 1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2314 .loc 1 1331 19 is_stmt 0 view .LVU714 2315 0070 E368 ldr r3, [r4, #12] 1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2316 .loc 1 1331 8 view .LVU715 2317 0072 022B cmp r3, #2 2318 0074 32D0 beq .L187 2319 .L174: 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2320 .loc 1 1346 5 is_stmt 1 view .LVU716 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2321 .loc 1 1346 9 is_stmt 0 view .LVU717 2322 0076 0096 str r6, [sp] 2323 0078 2B46 mov r3, r5 2324 007a 0022 movs r2, #0 2325 007c 4FF48031 mov r1, #65536 2326 0080 2046 mov r0, r4 2327 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2328 .LVL130: 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2329 .loc 1 1346 8 view .LVU718 2330 0086 0028 cmp r0, #0 2331 0088 3BD1 bne .L188 2332 .L176: 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2333 .loc 1 1353 11 is_stmt 1 view .LVU719 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2334 .loc 1 1353 16 is_stmt 0 view .LVU720 2335 008a 638D ldrh r3, [r4, #42] 2336 008c 9BB2 uxth r3, r3 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2337 .loc 1 1353 11 view .LVU721 2338 008e 002B cmp r3, #0 2339 0090 45D0 beq .L189 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2340 .loc 1 1356 7 is_stmt 1 view .LVU722 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2341 .loc 1 1356 11 is_stmt 0 view .LVU723 2342 0092 3246 mov r2, r6 2343 0094 2946 mov r1, r5 2344 0096 2046 mov r0, r4 2345 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2346 .LVL131: 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2347 .loc 1 1356 10 view .LVU724 2348 009c 0028 cmp r0, #0 2349 009e 37D1 bne .L190 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2350 .loc 1 1364 7 is_stmt 1 view .LVU725 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2351 .loc 1 1364 35 is_stmt 0 view .LVU726 2352 00a0 626A ldr r2, [r4, #36] ARM GAS /tmp/ccEimIdZ.s page 169 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2353 .loc 1 1364 11 view .LVU727 2354 00a2 2368 ldr r3, [r4] 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2355 .loc 1 1364 30 view .LVU728 2356 00a4 1278 ldrb r2, [r2] @ zero_extendqisi2 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2357 .loc 1 1364 28 view .LVU729 2358 00a6 9A62 str r2, [r3, #40] 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2359 .loc 1 1367 7 is_stmt 1 view .LVU730 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2360 .loc 1 1367 11 is_stmt 0 view .LVU731 2361 00a8 636A ldr r3, [r4, #36] 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2362 .loc 1 1367 21 view .LVU732 2363 00aa 0133 adds r3, r3, #1 2364 00ac 6362 str r3, [r4, #36] 1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2365 .loc 1 1369 7 is_stmt 1 view .LVU733 1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2366 .loc 1 1369 11 is_stmt 0 view .LVU734 2367 00ae B4F82AC0 ldrh ip, [r4, #42] 2368 00b2 1FFA8CFC uxth ip, ip 1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2369 .loc 1 1369 22 view .LVU735 2370 00b6 0CF1FF3C add ip, ip, #-1 2371 00ba 1FFA8CFC uxth ip, ip 2372 00be A4F82AC0 strh ip, [r4, #42] @ movhi 2373 00c2 E2E7 b .L176 2374 .LVL132: 2375 .L185: 1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2376 .loc 1 1298 7 is_stmt 1 view .LVU736 1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2377 .loc 1 1298 23 is_stmt 0 view .LVU737 2378 00c4 4FF40073 mov r3, #512 2379 00c8 4364 str r3, [r0, #68] 1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2380 .loc 1 1299 7 is_stmt 1 view .LVU738 1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2381 .loc 1 1299 15 is_stmt 0 view .LVU739 2382 00ca 0120 movs r0, #1 2383 .LVL133: 1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2384 .loc 1 1299 15 view .LVU740 2385 00cc 59E0 b .L171 2386 .LVL134: 2387 .L186: 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2388 .loc 1 1323 7 is_stmt 1 view .LVU741 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2389 .loc 1 1323 11 is_stmt 0 view .LVU742 2390 00ce 2268 ldr r2, [r4] 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2391 .loc 1 1323 27 view .LVU743 2392 00d0 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccEimIdZ.s page 170 2393 00d2 43F40043 orr r3, r3, #32768 2394 00d6 5360 str r3, [r2, #4] 1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2395 .loc 1 1324 7 is_stmt 1 view .LVU744 1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2396 .loc 1 1324 14 is_stmt 0 view .LVU745 2397 00d8 0120 movs r0, #1 2398 00da 52E0 b .L171 2399 .L187: 1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2400 .loc 1 1334 7 is_stmt 1 view .LVU746 1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2401 .loc 1 1334 11 is_stmt 0 view .LVU747 2402 00dc 0096 str r6, [sp] 2403 00de 2B46 mov r3, r5 2404 00e0 0022 movs r2, #0 2405 00e2 0821 movs r1, #8 2406 00e4 2046 mov r0, r4 2407 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2408 .LVL135: 1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2409 .loc 1 1334 10 view .LVU748 2410 00ea 18B9 cbnz r0, .L191 1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2411 .loc 1 1342 7 is_stmt 1 view .LVU749 2412 00ec 2368 ldr r3, [r4] 2413 00ee 0822 movs r2, #8 2414 00f0 DA61 str r2, [r3, #28] 2415 00f2 C0E7 b .L174 2416 .L191: 1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2417 .loc 1 1337 9 view .LVU750 1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2418 .loc 1 1337 13 is_stmt 0 view .LVU751 2419 00f4 2268 ldr r2, [r4] 1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2420 .loc 1 1337 29 view .LVU752 2421 00f6 5368 ldr r3, [r2, #4] 2422 00f8 43F40043 orr r3, r3, #32768 2423 00fc 5360 str r3, [r2, #4] 1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2424 .loc 1 1338 9 is_stmt 1 view .LVU753 1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2425 .loc 1 1338 16 is_stmt 0 view .LVU754 2426 00fe 0120 movs r0, #1 2427 0100 3FE0 b .L171 2428 .L188: 1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2429 .loc 1 1349 7 is_stmt 1 view .LVU755 1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2430 .loc 1 1349 11 is_stmt 0 view .LVU756 2431 0102 2268 ldr r2, [r4] 1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2432 .loc 1 1349 27 view .LVU757 2433 0104 5368 ldr r3, [r2, #4] 2434 0106 43F40043 orr r3, r3, #32768 2435 010a 5360 str r3, [r2, #4] ARM GAS /tmp/ccEimIdZ.s page 171 1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2436 .loc 1 1350 7 is_stmt 1 view .LVU758 1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2437 .loc 1 1350 14 is_stmt 0 view .LVU759 2438 010c 0120 movs r0, #1 2439 010e 38E0 b .L171 2440 .L190: 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2441 .loc 1 1359 9 is_stmt 1 view .LVU760 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2442 .loc 1 1359 13 is_stmt 0 view .LVU761 2443 0110 2268 ldr r2, [r4] 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2444 .loc 1 1359 29 view .LVU762 2445 0112 5368 ldr r3, [r2, #4] 2446 0114 43F40043 orr r3, r3, #32768 2447 0118 5360 str r3, [r2, #4] 1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2448 .loc 1 1360 9 is_stmt 1 view .LVU763 1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2449 .loc 1 1360 16 is_stmt 0 view .LVU764 2450 011a 0120 movs r0, #1 2451 011c 31E0 b .L171 2452 .L189: 1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2453 .loc 1 1373 5 is_stmt 1 view .LVU765 1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2454 .loc 1 1373 9 is_stmt 0 view .LVU766 2455 011e 3246 mov r2, r6 2456 0120 2946 mov r1, r5 2457 0122 2046 mov r0, r4 2458 0124 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2459 .LVL136: 1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2460 .loc 1 1373 8 view .LVU767 2461 0128 48B1 cbz r0, .L179 1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2462 .loc 1 1376 7 is_stmt 1 view .LVU768 1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2463 .loc 1 1376 11 is_stmt 0 view .LVU769 2464 012a 2268 ldr r2, [r4] 1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2465 .loc 1 1376 27 view .LVU770 2466 012c 5368 ldr r3, [r2, #4] 2467 012e 43F40043 orr r3, r3, #32768 2468 0132 5360 str r3, [r2, #4] 1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2469 .loc 1 1378 7 is_stmt 1 view .LVU771 1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2470 .loc 1 1378 15 is_stmt 0 view .LVU772 2471 0134 636C ldr r3, [r4, #68] 1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2472 .loc 1 1378 10 view .LVU773 2473 0136 042B cmp r3, #4 2474 0138 28D1 bne .L183 1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2475 .loc 1 1382 9 is_stmt 1 view .LVU774 ARM GAS /tmp/ccEimIdZ.s page 172 1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2476 .loc 1 1382 25 is_stmt 0 view .LVU775 2477 013a 0023 movs r3, #0 2478 013c 6364 str r3, [r4, #68] 2479 .L179: 1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2480 .loc 1 1391 5 is_stmt 1 view .LVU776 2481 013e 2368 ldr r3, [r4] 2482 0140 2022 movs r2, #32 2483 0142 DA61 str r2, [r3, #28] 1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2484 .loc 1 1394 5 view .LVU777 1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2485 .loc 1 1394 9 is_stmt 0 view .LVU778 2486 0144 0096 str r6, [sp] 2487 0146 2B46 mov r3, r5 2488 0148 0122 movs r2, #1 2489 014a 4FF40041 mov r1, #32768 2490 014e 2046 mov r0, r4 2491 0150 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2492 .LVL137: 1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2493 .loc 1 1394 8 view .LVU779 2494 0154 30B1 cbz r0, .L180 1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2495 .loc 1 1397 7 is_stmt 1 view .LVU780 1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2496 .loc 1 1397 11 is_stmt 0 view .LVU781 2497 0156 2268 ldr r2, [r4] 1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2498 .loc 1 1397 27 view .LVU782 2499 0158 5368 ldr r3, [r2, #4] 2500 015a 43F40043 orr r3, r3, #32768 2501 015e 5360 str r3, [r2, #4] 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2502 .loc 1 1398 7 is_stmt 1 view .LVU783 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2503 .loc 1 1398 14 is_stmt 0 view .LVU784 2504 0160 0120 movs r0, #1 2505 0162 0EE0 b .L171 2506 .L180: 1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2507 .loc 1 1402 5 is_stmt 1 view .LVU785 1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2508 .loc 1 1402 9 is_stmt 0 view .LVU786 2509 0164 2268 ldr r2, [r4] 1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2510 .loc 1 1402 25 view .LVU787 2511 0166 5368 ldr r3, [r2, #4] 2512 0168 43F40043 orr r3, r3, #32768 2513 016c 5360 str r3, [r2, #4] 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2514 .loc 1 1404 5 is_stmt 1 view .LVU788 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2515 .loc 1 1404 17 is_stmt 0 view .LVU789 2516 016e 2023 movs r3, #32 2517 0170 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccEimIdZ.s page 173 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2518 .loc 1 1405 5 is_stmt 1 view .LVU790 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2519 .loc 1 1405 17 is_stmt 0 view .LVU791 2520 0174 0023 movs r3, #0 2521 0176 84F84230 strb r3, [r4, #66] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2522 .loc 1 1408 5 is_stmt 1 view .LVU792 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2523 .loc 1 1408 5 view .LVU793 2524 017a 84F84030 strb r3, [r4, #64] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2525 .loc 1 1408 5 view .LVU794 1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2526 .loc 1 1410 5 view .LVU795 1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2527 .loc 1 1410 12 is_stmt 0 view .LVU796 2528 017e 00E0 b .L171 2529 .LVL138: 2530 .L181: 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2531 .loc 1 1414 12 view .LVU797 2532 0180 0220 movs r0, #2 2533 .LVL139: 2534 .L171: 1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2535 .loc 1 1416 1 view .LVU798 2536 0182 02B0 add sp, sp, #8 2537 .LCFI29: 2538 .cfi_remember_state 2539 .cfi_def_cfa_offset 24 2540 @ sp needed 2541 0184 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2542 .LVL140: 2543 .L182: 2544 .LCFI30: 2545 .cfi_restore_state 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2546 .loc 1 1302 5 view .LVU799 2547 0188 0220 movs r0, #2 2548 .LVL141: 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2549 .loc 1 1302 5 view .LVU800 2550 018a FAE7 b .L171 2551 .LVL142: 2552 .L183: 1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2553 .loc 1 1386 16 view .LVU801 2554 018c 0120 movs r0, #1 2555 018e F8E7 b .L171 2556 .cfi_endproc 2557 .LFE147: 2559 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2560 .align 1 2561 .global HAL_I2C_Slave_Receive 2562 .syntax unified 2563 .thumb ARM GAS /tmp/ccEimIdZ.s page 174 2564 .thumb_func 2565 .fpu fpv5-d16 2567 HAL_I2C_Slave_Receive: 2568 .LVL143: 2569 .LFB148: 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2570 .loc 1 1428 1 is_stmt 1 view -0 2571 .cfi_startproc 2572 @ args = 0, pretend = 0, frame = 0 2573 @ frame_needed = 0, uses_anonymous_args = 0 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2574 .loc 1 1428 1 is_stmt 0 view .LVU803 2575 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2576 .LCFI31: 2577 .cfi_def_cfa_offset 24 2578 .cfi_offset 4, -24 2579 .cfi_offset 5, -20 2580 .cfi_offset 6, -16 2581 .cfi_offset 7, -12 2582 .cfi_offset 8, -8 2583 .cfi_offset 14, -4 2584 0004 82B0 sub sp, sp, #8 2585 .LCFI32: 2586 .cfi_def_cfa_offset 32 2587 0006 1D46 mov r5, r3 1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2588 .loc 1 1429 3 is_stmt 1 view .LVU804 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2589 .loc 1 1431 3 view .LVU805 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2590 .loc 1 1431 11 is_stmt 0 view .LVU806 2591 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2592 .LVL144: 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2593 .loc 1 1431 11 view .LVU807 2594 000c DBB2 uxtb r3, r3 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2595 .loc 1 1431 6 view .LVU808 2596 000e 202B cmp r3, #32 2597 0010 40F0AA80 bne .L202 2598 0014 0446 mov r4, r0 2599 0016 0F46 mov r7, r1 2600 0018 9046 mov r8, r2 1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2601 .loc 1 1433 5 is_stmt 1 view .LVU809 1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2602 .loc 1 1433 8 is_stmt 0 view .LVU810 2603 001a 002A cmp r2, #0 2604 001c 18BF it ne 2605 001e 0029 cmpne r1, #0 2606 0020 29D0 beq .L205 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2607 .loc 1 1439 5 is_stmt 1 view .LVU811 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2608 .loc 1 1439 5 view .LVU812 2609 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2610 0026 012B cmp r3, #1 ARM GAS /tmp/ccEimIdZ.s page 175 2611 0028 00F0A280 beq .L203 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2612 .loc 1 1439 5 discriminator 2 view .LVU813 2613 002c 0123 movs r3, #1 2614 002e 80F84030 strb r3, [r0, #64] 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2615 .loc 1 1439 5 discriminator 2 view .LVU814 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2616 .loc 1 1442 5 discriminator 2 view .LVU815 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2617 .loc 1 1442 17 is_stmt 0 discriminator 2 view .LVU816 2618 0032 FFF7FEFF bl HAL_GetTick 2619 .LVL145: 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2620 .loc 1 1442 17 discriminator 2 view .LVU817 2621 0036 0646 mov r6, r0 2622 .LVL146: 1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2623 .loc 1 1444 5 is_stmt 1 discriminator 2 view .LVU818 1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2624 .loc 1 1444 21 is_stmt 0 discriminator 2 view .LVU819 2625 0038 2223 movs r3, #34 2626 003a 84F84130 strb r3, [r4, #65] 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2627 .loc 1 1445 5 is_stmt 1 discriminator 2 view .LVU820 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2628 .loc 1 1445 21 is_stmt 0 discriminator 2 view .LVU821 2629 003e 2023 movs r3, #32 2630 0040 84F84230 strb r3, [r4, #66] 1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2631 .loc 1 1446 5 is_stmt 1 discriminator 2 view .LVU822 1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2632 .loc 1 1446 21 is_stmt 0 discriminator 2 view .LVU823 2633 0044 0022 movs r2, #0 2634 0046 6264 str r2, [r4, #68] 1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2635 .loc 1 1449 5 is_stmt 1 discriminator 2 view .LVU824 1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2636 .loc 1 1449 21 is_stmt 0 discriminator 2 view .LVU825 2637 0048 6762 str r7, [r4, #36] 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2638 .loc 1 1450 5 is_stmt 1 discriminator 2 view .LVU826 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2639 .loc 1 1450 21 is_stmt 0 discriminator 2 view .LVU827 2640 004a A4F82A80 strh r8, [r4, #42] @ movhi 1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2641 .loc 1 1451 5 is_stmt 1 discriminator 2 view .LVU828 1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2642 .loc 1 1451 21 is_stmt 0 discriminator 2 view .LVU829 2643 004e 6263 str r2, [r4, #52] 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2644 .loc 1 1454 5 is_stmt 1 discriminator 2 view .LVU830 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2645 .loc 1 1454 9 is_stmt 0 discriminator 2 view .LVU831 2646 0050 2168 ldr r1, [r4] 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2647 .loc 1 1454 25 discriminator 2 view .LVU832 ARM GAS /tmp/ccEimIdZ.s page 176 2648 0052 4B68 ldr r3, [r1, #4] 2649 0054 23F40043 bic r3, r3, #32768 2650 0058 4B60 str r3, [r1, #4] 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2651 .loc 1 1457 5 is_stmt 1 discriminator 2 view .LVU833 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2652 .loc 1 1457 9 is_stmt 0 discriminator 2 view .LVU834 2653 005a 0090 str r0, [sp] 2654 005c 2B46 mov r3, r5 2655 005e 0821 movs r1, #8 2656 0060 2046 mov r0, r4 2657 .LVL147: 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2658 .loc 1 1457 9 discriminator 2 view .LVU835 2659 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2660 .LVL148: 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2661 .loc 1 1457 8 discriminator 2 view .LVU836 2662 0066 58B1 cbz r0, .L195 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2663 .loc 1 1460 7 is_stmt 1 view .LVU837 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2664 .loc 1 1460 11 is_stmt 0 view .LVU838 2665 0068 2268 ldr r2, [r4] 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2666 .loc 1 1460 27 view .LVU839 2667 006a 5368 ldr r3, [r2, #4] 2668 006c 43F40043 orr r3, r3, #32768 2669 0070 5360 str r3, [r2, #4] 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2670 .loc 1 1461 7 is_stmt 1 view .LVU840 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2671 .loc 1 1461 14 is_stmt 0 view .LVU841 2672 0072 0120 movs r0, #1 2673 0074 79E0 b .L193 2674 .LVL149: 2675 .L205: 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2676 .loc 1 1435 7 is_stmt 1 view .LVU842 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2677 .loc 1 1435 23 is_stmt 0 view .LVU843 2678 0076 4FF40073 mov r3, #512 2679 007a 4364 str r3, [r0, #68] 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2680 .loc 1 1436 7 is_stmt 1 view .LVU844 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2681 .loc 1 1436 15 is_stmt 0 view .LVU845 2682 007c 0120 movs r0, #1 2683 .LVL150: 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2684 .loc 1 1436 15 view .LVU846 2685 007e 74E0 b .L193 2686 .LVL151: 2687 .L195: 1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2688 .loc 1 1465 5 is_stmt 1 view .LVU847 2689 0080 2368 ldr r3, [r4] ARM GAS /tmp/ccEimIdZ.s page 177 2690 0082 0822 movs r2, #8 2691 0084 DA61 str r2, [r3, #28] 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2692 .loc 1 1468 5 view .LVU848 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2693 .loc 1 1468 9 is_stmt 0 view .LVU849 2694 0086 0096 str r6, [sp] 2695 0088 2B46 mov r3, r5 2696 008a 0122 movs r2, #1 2697 008c 4FF48031 mov r1, #65536 2698 0090 2046 mov r0, r4 2699 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2700 .LVL152: 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2701 .loc 1 1468 8 view .LVU850 2702 0096 D8B9 cbnz r0, .L206 2703 .L196: 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2704 .loc 1 1475 11 is_stmt 1 view .LVU851 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2705 .loc 1 1475 16 is_stmt 0 view .LVU852 2706 0098 638D ldrh r3, [r4, #42] 2707 009a 9BB2 uxth r3, r3 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2708 .loc 1 1475 11 view .LVU853 2709 009c 002B cmp r3, #0 2710 009e 35D0 beq .L207 1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2711 .loc 1 1478 7 is_stmt 1 view .LVU854 1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2712 .loc 1 1478 11 is_stmt 0 view .LVU855 2713 00a0 3246 mov r2, r6 2714 00a2 2946 mov r1, r5 2715 00a4 2046 mov r0, r4 2716 00a6 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2717 .LVL153: 1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2718 .loc 1 1478 10 view .LVU856 2719 00aa C0B9 cbnz r0, .L208 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2720 .loc 1 1499 7 is_stmt 1 view .LVU857 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2721 .loc 1 1499 38 is_stmt 0 view .LVU858 2722 00ac 2368 ldr r3, [r4] 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2723 .loc 1 1499 48 view .LVU859 2724 00ae 5A6A ldr r2, [r3, #36] 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2725 .loc 1 1499 12 view .LVU860 2726 00b0 636A ldr r3, [r4, #36] 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2727 .loc 1 1499 23 view .LVU861 2728 00b2 1A70 strb r2, [r3] 1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2729 .loc 1 1502 7 is_stmt 1 view .LVU862 1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2730 .loc 1 1502 11 is_stmt 0 view .LVU863 ARM GAS /tmp/ccEimIdZ.s page 178 2731 00b4 636A ldr r3, [r4, #36] 1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2732 .loc 1 1502 21 view .LVU864 2733 00b6 0133 adds r3, r3, #1 2734 00b8 6362 str r3, [r4, #36] 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2735 .loc 1 1504 7 is_stmt 1 view .LVU865 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2736 .loc 1 1504 11 is_stmt 0 view .LVU866 2737 00ba B4F82AC0 ldrh ip, [r4, #42] 2738 00be 1FFA8CFC uxth ip, ip 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2739 .loc 1 1504 22 view .LVU867 2740 00c2 0CF1FF3C add ip, ip, #-1 2741 00c6 1FFA8CFC uxth ip, ip 2742 00ca A4F82AC0 strh ip, [r4, #42] @ movhi 2743 00ce E3E7 b .L196 2744 .L206: 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2745 .loc 1 1471 7 is_stmt 1 view .LVU868 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2746 .loc 1 1471 11 is_stmt 0 view .LVU869 2747 00d0 2268 ldr r2, [r4] 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2748 .loc 1 1471 27 view .LVU870 2749 00d2 5368 ldr r3, [r2, #4] 2750 00d4 43F40043 orr r3, r3, #32768 2751 00d8 5360 str r3, [r2, #4] 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2752 .loc 1 1472 7 is_stmt 1 view .LVU871 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2753 .loc 1 1472 14 is_stmt 0 view .LVU872 2754 00da 0120 movs r0, #1 2755 00dc 45E0 b .L193 2756 .L208: 1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2757 .loc 1 1481 9 is_stmt 1 view .LVU873 1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2758 .loc 1 1481 13 is_stmt 0 view .LVU874 2759 00de 2268 ldr r2, [r4] 1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2760 .loc 1 1481 29 view .LVU875 2761 00e0 5368 ldr r3, [r2, #4] 2762 00e2 43F40043 orr r3, r3, #32768 2763 00e6 5360 str r3, [r2, #4] 1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2764 .loc 1 1484 9 is_stmt 1 view .LVU876 1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2765 .loc 1 1484 13 is_stmt 0 view .LVU877 2766 00e8 2368 ldr r3, [r4] 2767 00ea 9A69 ldr r2, [r3, #24] 1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2768 .loc 1 1484 12 view .LVU878 2769 00ec 12F0040F tst r2, #4 2770 00f0 0AD0 beq .L198 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2771 .loc 1 1487 11 is_stmt 1 view .LVU879 ARM GAS /tmp/ccEimIdZ.s page 179 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2772 .loc 1 1487 52 is_stmt 0 view .LVU880 2773 00f2 5A6A ldr r2, [r3, #36] 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2774 .loc 1 1487 16 view .LVU881 2775 00f4 636A ldr r3, [r4, #36] 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2776 .loc 1 1487 27 view .LVU882 2777 00f6 1A70 strb r2, [r3] 1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2778 .loc 1 1490 11 is_stmt 1 view .LVU883 1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2779 .loc 1 1490 15 is_stmt 0 view .LVU884 2780 00f8 636A ldr r3, [r4, #36] 1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2781 .loc 1 1490 25 view .LVU885 2782 00fa 0133 adds r3, r3, #1 2783 00fc 6362 str r3, [r4, #36] 1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2784 .loc 1 1492 11 is_stmt 1 view .LVU886 1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2785 .loc 1 1492 15 is_stmt 0 view .LVU887 2786 00fe 638D ldrh r3, [r4, #42] 2787 0100 9BB2 uxth r3, r3 1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2788 .loc 1 1492 26 view .LVU888 2789 0102 013B subs r3, r3, #1 2790 0104 9BB2 uxth r3, r3 2791 0106 6385 strh r3, [r4, #42] @ movhi 2792 .L198: 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2793 .loc 1 1495 9 is_stmt 1 view .LVU889 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2794 .loc 1 1495 16 is_stmt 0 view .LVU890 2795 0108 0120 movs r0, #1 2796 010a 2EE0 b .L193 2797 .L207: 1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2798 .loc 1 1508 5 is_stmt 1 view .LVU891 1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2799 .loc 1 1508 9 is_stmt 0 view .LVU892 2800 010c 3246 mov r2, r6 2801 010e 2946 mov r1, r5 2802 0110 2046 mov r0, r4 2803 0112 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2804 .LVL154: 1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2805 .loc 1 1508 8 view .LVU893 2806 0116 30B1 cbz r0, .L200 1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2807 .loc 1 1511 7 is_stmt 1 view .LVU894 1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2808 .loc 1 1511 11 is_stmt 0 view .LVU895 2809 0118 2268 ldr r2, [r4] 1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2810 .loc 1 1511 27 view .LVU896 2811 011a 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccEimIdZ.s page 180 2812 011c 43F40043 orr r3, r3, #32768 2813 0120 5360 str r3, [r2, #4] 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2814 .loc 1 1512 7 is_stmt 1 view .LVU897 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2815 .loc 1 1512 14 is_stmt 0 view .LVU898 2816 0122 0120 movs r0, #1 2817 0124 21E0 b .L193 2818 .L200: 1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2819 .loc 1 1516 5 is_stmt 1 view .LVU899 2820 0126 2368 ldr r3, [r4] 2821 0128 2022 movs r2, #32 2822 012a DA61 str r2, [r3, #28] 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2823 .loc 1 1519 5 view .LVU900 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2824 .loc 1 1519 9 is_stmt 0 view .LVU901 2825 012c 0096 str r6, [sp] 2826 012e 2B46 mov r3, r5 2827 0130 0122 movs r2, #1 2828 0132 4FF40041 mov r1, #32768 2829 0136 2046 mov r0, r4 2830 0138 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2831 .LVL155: 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2832 .loc 1 1519 8 view .LVU902 2833 013c 30B1 cbz r0, .L201 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2834 .loc 1 1522 7 is_stmt 1 view .LVU903 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2835 .loc 1 1522 11 is_stmt 0 view .LVU904 2836 013e 2268 ldr r2, [r4] 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2837 .loc 1 1522 27 view .LVU905 2838 0140 5368 ldr r3, [r2, #4] 2839 0142 43F40043 orr r3, r3, #32768 2840 0146 5360 str r3, [r2, #4] 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2841 .loc 1 1523 7 is_stmt 1 view .LVU906 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2842 .loc 1 1523 14 is_stmt 0 view .LVU907 2843 0148 0120 movs r0, #1 2844 014a 0EE0 b .L193 2845 .L201: 1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2846 .loc 1 1527 5 is_stmt 1 view .LVU908 1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2847 .loc 1 1527 9 is_stmt 0 view .LVU909 2848 014c 2268 ldr r2, [r4] 1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2849 .loc 1 1527 25 view .LVU910 2850 014e 5368 ldr r3, [r2, #4] 2851 0150 43F40043 orr r3, r3, #32768 2852 0154 5360 str r3, [r2, #4] 1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2853 .loc 1 1529 5 is_stmt 1 view .LVU911 ARM GAS /tmp/ccEimIdZ.s page 181 1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2854 .loc 1 1529 17 is_stmt 0 view .LVU912 2855 0156 2023 movs r3, #32 2856 0158 84F84130 strb r3, [r4, #65] 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2857 .loc 1 1530 5 is_stmt 1 view .LVU913 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2858 .loc 1 1530 17 is_stmt 0 view .LVU914 2859 015c 0023 movs r3, #0 2860 015e 84F84230 strb r3, [r4, #66] 1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2861 .loc 1 1533 5 is_stmt 1 view .LVU915 1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2862 .loc 1 1533 5 view .LVU916 2863 0162 84F84030 strb r3, [r4, #64] 1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2864 .loc 1 1533 5 view .LVU917 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2865 .loc 1 1535 5 view .LVU918 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2866 .loc 1 1535 12 is_stmt 0 view .LVU919 2867 0166 00E0 b .L193 2868 .LVL156: 2869 .L202: 1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2870 .loc 1 1539 12 view .LVU920 2871 0168 0220 movs r0, #2 2872 .LVL157: 2873 .L193: 1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2874 .loc 1 1541 1 view .LVU921 2875 016a 02B0 add sp, sp, #8 2876 .LCFI33: 2877 .cfi_remember_state 2878 .cfi_def_cfa_offset 24 2879 @ sp needed 2880 016c BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2881 .LVL158: 2882 .L203: 2883 .LCFI34: 2884 .cfi_restore_state 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2885 .loc 1 1439 5 view .LVU922 2886 0170 0220 movs r0, #2 2887 .LVL159: 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2888 .loc 1 1439 5 view .LVU923 2889 0172 FAE7 b .L193 2890 .cfi_endproc 2891 .LFE148: 2893 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 2894 .align 1 2895 .global HAL_I2C_Master_Transmit_IT 2896 .syntax unified 2897 .thumb 2898 .thumb_func 2899 .fpu fpv5-d16 ARM GAS /tmp/ccEimIdZ.s page 182 2901 HAL_I2C_Master_Transmit_IT: 2902 .LVL160: 2903 .LFB149: 1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2904 .loc 1 1554 1 is_stmt 1 view -0 2905 .cfi_startproc 2906 @ args = 0, pretend = 0, frame = 0 2907 @ frame_needed = 0, uses_anonymous_args = 0 1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2908 .loc 1 1554 1 is_stmt 0 view .LVU925 2909 0000 30B5 push {r4, r5, lr} 2910 .LCFI35: 2911 .cfi_def_cfa_offset 12 2912 .cfi_offset 4, -12 2913 .cfi_offset 5, -8 2914 .cfi_offset 14, -4 2915 0002 83B0 sub sp, sp, #12 2916 .LCFI36: 2917 .cfi_def_cfa_offset 24 2918 0004 0446 mov r4, r0 1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2919 .loc 1 1555 3 is_stmt 1 view .LVU926 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2920 .loc 1 1557 3 view .LVU927 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2921 .loc 1 1557 11 is_stmt 0 view .LVU928 2922 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 2923 .LVL161: 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2924 .loc 1 1557 11 view .LVU929 2925 000a C0B2 uxtb r0, r0 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2926 .loc 1 1557 6 view .LVU930 2927 000c 2028 cmp r0, #32 2928 000e 37D1 bne .L213 1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2929 .loc 1 1559 5 is_stmt 1 view .LVU931 1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2930 .loc 1 1559 9 is_stmt 0 view .LVU932 2931 0010 2068 ldr r0, [r4] 2932 0012 8069 ldr r0, [r0, #24] 1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2933 .loc 1 1559 8 view .LVU933 2934 0014 10F4004F tst r0, #32768 2935 0018 34D1 bne .L214 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2936 .loc 1 1565 5 is_stmt 1 view .LVU934 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2937 .loc 1 1565 5 view .LVU935 2938 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 2939 001e 0128 cmp r0, #1 2940 0020 32D0 beq .L215 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2941 .loc 1 1565 5 discriminator 2 view .LVU936 2942 0022 0120 movs r0, #1 2943 0024 84F84000 strb r0, [r4, #64] 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 183 2944 .loc 1 1565 5 discriminator 2 view .LVU937 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2945 .loc 1 1567 5 discriminator 2 view .LVU938 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2946 .loc 1 1567 23 is_stmt 0 discriminator 2 view .LVU939 2947 0028 2120 movs r0, #33 2948 002a 84F84100 strb r0, [r4, #65] 1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2949 .loc 1 1568 5 is_stmt 1 discriminator 2 view .LVU940 1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2950 .loc 1 1568 23 is_stmt 0 discriminator 2 view .LVU941 2951 002e 1020 movs r0, #16 2952 0030 84F84200 strb r0, [r4, #66] 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2953 .loc 1 1569 5 is_stmt 1 discriminator 2 view .LVU942 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2954 .loc 1 1569 23 is_stmt 0 discriminator 2 view .LVU943 2955 0034 0020 movs r0, #0 2956 0036 6064 str r0, [r4, #68] 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2957 .loc 1 1572 5 is_stmt 1 discriminator 2 view .LVU944 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2958 .loc 1 1572 23 is_stmt 0 discriminator 2 view .LVU945 2959 0038 6262 str r2, [r4, #36] 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2960 .loc 1 1573 5 is_stmt 1 discriminator 2 view .LVU946 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2961 .loc 1 1573 23 is_stmt 0 discriminator 2 view .LVU947 2962 003a 6385 strh r3, [r4, #42] @ movhi 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2963 .loc 1 1574 5 is_stmt 1 discriminator 2 view .LVU948 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2964 .loc 1 1574 23 is_stmt 0 discriminator 2 view .LVU949 2965 003c 134B ldr r3, .L217 2966 .LVL162: 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2967 .loc 1 1574 23 discriminator 2 view .LVU950 2968 003e E362 str r3, [r4, #44] 2969 .LVL163: 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2970 .loc 1 1575 5 is_stmt 1 discriminator 2 view .LVU951 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2971 .loc 1 1575 23 is_stmt 0 discriminator 2 view .LVU952 2972 0040 134B ldr r3, .L217+4 2973 0042 6363 str r3, [r4, #52] 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2974 .loc 1 1577 5 is_stmt 1 discriminator 2 view .LVU953 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2975 .loc 1 1577 13 is_stmt 0 discriminator 2 view .LVU954 2976 0044 638D ldrh r3, [r4, #42] 2977 0046 9BB2 uxth r3, r3 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2978 .loc 1 1577 8 discriminator 2 view .LVU955 2979 0048 FF2B cmp r3, #255 2980 004a 14D9 bls .L211 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2981 .loc 1 1579 7 is_stmt 1 view .LVU956 ARM GAS /tmp/ccEimIdZ.s page 184 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2982 .loc 1 1579 22 is_stmt 0 view .LVU957 2983 004c FF23 movs r3, #255 2984 004e 2385 strh r3, [r4, #40] @ movhi 1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2985 .loc 1 1580 7 is_stmt 1 view .LVU958 2986 .LVL164: 1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2987 .loc 1 1580 16 is_stmt 0 view .LVU959 2988 0050 4FF08073 mov r3, #16777216 2989 .LVL165: 2990 .L212: 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2991 .loc 1 1590 5 is_stmt 1 view .LVU960 2992 0054 0F4A ldr r2, .L217+8 2993 .LVL166: 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2994 .loc 1 1590 5 is_stmt 0 view .LVU961 2995 0056 0092 str r2, [sp] 2996 .LVL167: 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2997 .loc 1 1590 5 view .LVU962 2998 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 2999 005c 2046 mov r0, r4 3000 005e FFF7FEFF bl I2C_TransferConfig 3001 .LVL168: 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3002 .loc 1 1593 5 is_stmt 1 view .LVU963 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3003 .loc 1 1593 5 view .LVU964 3004 0062 0025 movs r5, #0 3005 0064 84F84050 strb r5, [r4, #64] 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3006 .loc 1 1593 5 view .LVU965 1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3007 .loc 1 1602 5 view .LVU966 3008 0068 0121 movs r1, #1 3009 006a 2046 mov r0, r4 3010 006c FFF7FEFF bl I2C_Enable_IRQ 3011 .LVL169: 1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3012 .loc 1 1604 5 view .LVU967 1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3013 .loc 1 1604 12 is_stmt 0 view .LVU968 3014 0070 2846 mov r0, r5 3015 .L210: 1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3016 .loc 1 1610 1 view .LVU969 3017 0072 03B0 add sp, sp, #12 3018 .LCFI37: 3019 .cfi_remember_state 3020 .cfi_def_cfa_offset 12 3021 @ sp needed 3022 0074 30BD pop {r4, r5, pc} 3023 .LVL170: 3024 .L211: 3025 .LCFI38: ARM GAS /tmp/ccEimIdZ.s page 185 3026 .cfi_restore_state 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3027 .loc 1 1584 7 is_stmt 1 view .LVU970 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3028 .loc 1 1584 28 is_stmt 0 view .LVU971 3029 0076 638D ldrh r3, [r4, #42] 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3030 .loc 1 1584 22 view .LVU972 3031 0078 2385 strh r3, [r4, #40] @ movhi 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3032 .loc 1 1585 7 is_stmt 1 view .LVU973 3033 .LVL171: 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3034 .loc 1 1585 16 is_stmt 0 view .LVU974 3035 007a 4FF00073 mov r3, #33554432 3036 007e E9E7 b .L212 3037 .LVL172: 3038 .L213: 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3039 .loc 1 1608 12 view .LVU975 3040 0080 0220 movs r0, #2 3041 0082 F6E7 b .L210 3042 .L214: 1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3043 .loc 1 1561 14 view .LVU976 3044 0084 0220 movs r0, #2 3045 0086 F4E7 b .L210 3046 .L215: 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3047 .loc 1 1565 5 view .LVU977 3048 0088 0220 movs r0, #2 3049 008a F2E7 b .L210 3050 .L218: 3051 .align 2 3052 .L217: 3053 008c 0000FFFF .word -65536 3054 0090 00000000 .word I2C_Master_ISR_IT 3055 0094 00200080 .word -2147475456 3056 .cfi_endproc 3057 .LFE149: 3059 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3060 .align 1 3061 .global HAL_I2C_Master_Receive_IT 3062 .syntax unified 3063 .thumb 3064 .thumb_func 3065 .fpu fpv5-d16 3067 HAL_I2C_Master_Receive_IT: 3068 .LVL173: 3069 .LFB150: 1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3070 .loc 1 1623 1 is_stmt 1 view -0 3071 .cfi_startproc 3072 @ args = 0, pretend = 0, frame = 0 3073 @ frame_needed = 0, uses_anonymous_args = 0 1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3074 .loc 1 1623 1 is_stmt 0 view .LVU979 ARM GAS /tmp/ccEimIdZ.s page 186 3075 0000 30B5 push {r4, r5, lr} 3076 .LCFI39: 3077 .cfi_def_cfa_offset 12 3078 .cfi_offset 4, -12 3079 .cfi_offset 5, -8 3080 .cfi_offset 14, -4 3081 0002 83B0 sub sp, sp, #12 3082 .LCFI40: 3083 .cfi_def_cfa_offset 24 3084 0004 0446 mov r4, r0 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3085 .loc 1 1624 3 is_stmt 1 view .LVU980 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3086 .loc 1 1626 3 view .LVU981 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3087 .loc 1 1626 11 is_stmt 0 view .LVU982 3088 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3089 .LVL174: 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3090 .loc 1 1626 11 view .LVU983 3091 000a C0B2 uxtb r0, r0 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3092 .loc 1 1626 6 view .LVU984 3093 000c 2028 cmp r0, #32 3094 000e 37D1 bne .L223 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3095 .loc 1 1628 5 is_stmt 1 view .LVU985 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3096 .loc 1 1628 9 is_stmt 0 view .LVU986 3097 0010 2068 ldr r0, [r4] 3098 0012 8069 ldr r0, [r0, #24] 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3099 .loc 1 1628 8 view .LVU987 3100 0014 10F4004F tst r0, #32768 3101 0018 34D1 bne .L224 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3102 .loc 1 1634 5 is_stmt 1 view .LVU988 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3103 .loc 1 1634 5 view .LVU989 3104 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3105 001e 0128 cmp r0, #1 3106 0020 32D0 beq .L225 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3107 .loc 1 1634 5 discriminator 2 view .LVU990 3108 0022 0120 movs r0, #1 3109 0024 84F84000 strb r0, [r4, #64] 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3110 .loc 1 1634 5 discriminator 2 view .LVU991 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3111 .loc 1 1636 5 discriminator 2 view .LVU992 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3112 .loc 1 1636 23 is_stmt 0 discriminator 2 view .LVU993 3113 0028 2220 movs r0, #34 3114 002a 84F84100 strb r0, [r4, #65] 1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3115 .loc 1 1637 5 is_stmt 1 discriminator 2 view .LVU994 1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccEimIdZ.s page 187 3116 .loc 1 1637 23 is_stmt 0 discriminator 2 view .LVU995 3117 002e 1020 movs r0, #16 3118 0030 84F84200 strb r0, [r4, #66] 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3119 .loc 1 1638 5 is_stmt 1 discriminator 2 view .LVU996 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3120 .loc 1 1638 23 is_stmt 0 discriminator 2 view .LVU997 3121 0034 0020 movs r0, #0 3122 0036 6064 str r0, [r4, #68] 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3123 .loc 1 1641 5 is_stmt 1 discriminator 2 view .LVU998 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3124 .loc 1 1641 23 is_stmt 0 discriminator 2 view .LVU999 3125 0038 6262 str r2, [r4, #36] 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3126 .loc 1 1642 5 is_stmt 1 discriminator 2 view .LVU1000 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3127 .loc 1 1642 23 is_stmt 0 discriminator 2 view .LVU1001 3128 003a 6385 strh r3, [r4, #42] @ movhi 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3129 .loc 1 1643 5 is_stmt 1 discriminator 2 view .LVU1002 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3130 .loc 1 1643 23 is_stmt 0 discriminator 2 view .LVU1003 3131 003c 134B ldr r3, .L227 3132 .LVL175: 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3133 .loc 1 1643 23 discriminator 2 view .LVU1004 3134 003e E362 str r3, [r4, #44] 3135 .LVL176: 1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3136 .loc 1 1644 5 is_stmt 1 discriminator 2 view .LVU1005 1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3137 .loc 1 1644 23 is_stmt 0 discriminator 2 view .LVU1006 3138 0040 134B ldr r3, .L227+4 3139 0042 6363 str r3, [r4, #52] 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3140 .loc 1 1646 5 is_stmt 1 discriminator 2 view .LVU1007 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3141 .loc 1 1646 13 is_stmt 0 discriminator 2 view .LVU1008 3142 0044 638D ldrh r3, [r4, #42] 3143 0046 9BB2 uxth r3, r3 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3144 .loc 1 1646 8 discriminator 2 view .LVU1009 3145 0048 FF2B cmp r3, #255 3146 004a 14D9 bls .L221 1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3147 .loc 1 1648 7 is_stmt 1 view .LVU1010 1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3148 .loc 1 1648 22 is_stmt 0 view .LVU1011 3149 004c FF23 movs r3, #255 3150 004e 2385 strh r3, [r4, #40] @ movhi 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3151 .loc 1 1649 7 is_stmt 1 view .LVU1012 3152 .LVL177: 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3153 .loc 1 1649 16 is_stmt 0 view .LVU1013 3154 0050 4FF08073 mov r3, #16777216 ARM GAS /tmp/ccEimIdZ.s page 188 3155 .LVL178: 3156 .L222: 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3157 .loc 1 1659 5 is_stmt 1 view .LVU1014 3158 0054 0F4A ldr r2, .L227+8 3159 .LVL179: 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3160 .loc 1 1659 5 is_stmt 0 view .LVU1015 3161 0056 0092 str r2, [sp] 3162 .LVL180: 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3163 .loc 1 1659 5 view .LVU1016 3164 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3165 005c 2046 mov r0, r4 3166 005e FFF7FEFF bl I2C_TransferConfig 3167 .LVL181: 1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3168 .loc 1 1662 5 is_stmt 1 view .LVU1017 1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3169 .loc 1 1662 5 view .LVU1018 3170 0062 0025 movs r5, #0 3171 0064 84F84050 strb r5, [r4, #64] 1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3172 .loc 1 1662 5 view .LVU1019 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3173 .loc 1 1671 5 view .LVU1020 3174 0068 0221 movs r1, #2 3175 006a 2046 mov r0, r4 3176 006c FFF7FEFF bl I2C_Enable_IRQ 3177 .LVL182: 1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3178 .loc 1 1673 5 view .LVU1021 1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3179 .loc 1 1673 12 is_stmt 0 view .LVU1022 3180 0070 2846 mov r0, r5 3181 .L220: 1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3182 .loc 1 1679 1 view .LVU1023 3183 0072 03B0 add sp, sp, #12 3184 .LCFI41: 3185 .cfi_remember_state 3186 .cfi_def_cfa_offset 12 3187 @ sp needed 3188 0074 30BD pop {r4, r5, pc} 3189 .LVL183: 3190 .L221: 3191 .LCFI42: 3192 .cfi_restore_state 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3193 .loc 1 1653 7 is_stmt 1 view .LVU1024 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3194 .loc 1 1653 28 is_stmt 0 view .LVU1025 3195 0076 638D ldrh r3, [r4, #42] 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3196 .loc 1 1653 22 view .LVU1026 3197 0078 2385 strh r3, [r4, #40] @ movhi 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 189 3198 .loc 1 1654 7 is_stmt 1 view .LVU1027 3199 .LVL184: 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3200 .loc 1 1654 16 is_stmt 0 view .LVU1028 3201 007a 4FF00073 mov r3, #33554432 3202 007e E9E7 b .L222 3203 .LVL185: 3204 .L223: 1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3205 .loc 1 1677 12 view .LVU1029 3206 0080 0220 movs r0, #2 3207 0082 F6E7 b .L220 3208 .L224: 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3209 .loc 1 1630 14 view .LVU1030 3210 0084 0220 movs r0, #2 3211 0086 F4E7 b .L220 3212 .L225: 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3213 .loc 1 1634 5 view .LVU1031 3214 0088 0220 movs r0, #2 3215 008a F2E7 b .L220 3216 .L228: 3217 .align 2 3218 .L227: 3219 008c 0000FFFF .word -65536 3220 0090 00000000 .word I2C_Master_ISR_IT 3221 0094 00240080 .word -2147474432 3222 .cfi_endproc 3223 .LFE150: 3225 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3226 .align 1 3227 .global HAL_I2C_Slave_Transmit_IT 3228 .syntax unified 3229 .thumb 3230 .thumb_func 3231 .fpu fpv5-d16 3233 HAL_I2C_Slave_Transmit_IT: 3234 .LVL186: 3235 .LFB151: 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3236 .loc 1 1690 1 is_stmt 1 view -0 3237 .cfi_startproc 3238 @ args = 0, pretend = 0, frame = 0 3239 @ frame_needed = 0, uses_anonymous_args = 0 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3240 .loc 1 1690 1 is_stmt 0 view .LVU1033 3241 0000 38B5 push {r3, r4, r5, lr} 3242 .LCFI43: 3243 .cfi_def_cfa_offset 16 3244 .cfi_offset 3, -16 3245 .cfi_offset 4, -12 3246 .cfi_offset 5, -8 3247 .cfi_offset 14, -4 1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3248 .loc 1 1691 3 is_stmt 1 view .LVU1034 1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 190 3249 .loc 1 1691 11 is_stmt 0 view .LVU1035 3250 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3251 0006 DBB2 uxtb r3, r3 1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3252 .loc 1 1691 6 view .LVU1036 3253 0008 202B cmp r3, #32 3254 000a 23D1 bne .L231 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3255 .loc 1 1694 5 is_stmt 1 view .LVU1037 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3256 .loc 1 1694 5 view .LVU1038 3257 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3258 0010 012B cmp r3, #1 3259 0012 21D0 beq .L232 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3260 .loc 1 1694 5 discriminator 2 view .LVU1039 3261 0014 0123 movs r3, #1 3262 0016 80F84030 strb r3, [r0, #64] 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3263 .loc 1 1694 5 discriminator 2 view .LVU1040 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3264 .loc 1 1696 5 discriminator 2 view .LVU1041 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3265 .loc 1 1696 23 is_stmt 0 discriminator 2 view .LVU1042 3266 001a 2123 movs r3, #33 3267 001c 80F84130 strb r3, [r0, #65] 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3268 .loc 1 1697 5 is_stmt 1 discriminator 2 view .LVU1043 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3269 .loc 1 1697 23 is_stmt 0 discriminator 2 view .LVU1044 3270 0020 2023 movs r3, #32 3271 0022 80F84230 strb r3, [r0, #66] 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3272 .loc 1 1698 5 is_stmt 1 discriminator 2 view .LVU1045 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3273 .loc 1 1698 23 is_stmt 0 discriminator 2 view .LVU1046 3274 0026 0024 movs r4, #0 3275 0028 4464 str r4, [r0, #68] 1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3276 .loc 1 1701 5 is_stmt 1 discriminator 2 view .LVU1047 1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3277 .loc 1 1701 9 is_stmt 0 discriminator 2 view .LVU1048 3278 002a 0568 ldr r5, [r0] 1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3279 .loc 1 1701 25 discriminator 2 view .LVU1049 3280 002c 6B68 ldr r3, [r5, #4] 3281 002e 23F40043 bic r3, r3, #32768 3282 0032 6B60 str r3, [r5, #4] 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3283 .loc 1 1704 5 is_stmt 1 discriminator 2 view .LVU1050 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3284 .loc 1 1704 23 is_stmt 0 discriminator 2 view .LVU1051 3285 0034 4162 str r1, [r0, #36] 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3286 .loc 1 1705 5 is_stmt 1 discriminator 2 view .LVU1052 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3287 .loc 1 1705 23 is_stmt 0 discriminator 2 view .LVU1053 ARM GAS /tmp/ccEimIdZ.s page 191 3288 0036 4285 strh r2, [r0, #42] @ movhi 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3289 .loc 1 1706 5 is_stmt 1 discriminator 2 view .LVU1054 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3290 .loc 1 1706 29 is_stmt 0 discriminator 2 view .LVU1055 3291 0038 438D ldrh r3, [r0, #42] 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3292 .loc 1 1706 23 discriminator 2 view .LVU1056 3293 003a 0385 strh r3, [r0, #40] @ movhi 1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3294 .loc 1 1707 5 is_stmt 1 discriminator 2 view .LVU1057 1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3295 .loc 1 1707 23 is_stmt 0 discriminator 2 view .LVU1058 3296 003c 074B ldr r3, .L234 3297 003e C362 str r3, [r0, #44] 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3298 .loc 1 1708 5 is_stmt 1 discriminator 2 view .LVU1059 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3299 .loc 1 1708 23 is_stmt 0 discriminator 2 view .LVU1060 3300 0040 074B ldr r3, .L234+4 3301 0042 4363 str r3, [r0, #52] 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3302 .loc 1 1711 5 is_stmt 1 discriminator 2 view .LVU1061 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3303 .loc 1 1711 5 discriminator 2 view .LVU1062 3304 0044 80F84040 strb r4, [r0, #64] 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3305 .loc 1 1711 5 discriminator 2 view .LVU1063 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3306 .loc 1 1720 5 discriminator 2 view .LVU1064 3307 0048 48F20101 movw r1, #32769 3308 .LVL187: 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3309 .loc 1 1720 5 is_stmt 0 discriminator 2 view .LVU1065 3310 004c FFF7FEFF bl I2C_Enable_IRQ 3311 .LVL188: 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3312 .loc 1 1722 5 is_stmt 1 discriminator 2 view .LVU1066 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3313 .loc 1 1722 12 is_stmt 0 discriminator 2 view .LVU1067 3314 0050 2046 mov r0, r4 3315 .L230: 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3316 .loc 1 1728 1 view .LVU1068 3317 0052 38BD pop {r3, r4, r5, pc} 3318 .LVL189: 3319 .L231: 1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3320 .loc 1 1726 12 view .LVU1069 3321 0054 0220 movs r0, #2 3322 .LVL190: 1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3323 .loc 1 1726 12 view .LVU1070 3324 0056 FCE7 b .L230 3325 .LVL191: 3326 .L232: 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 192 3327 .loc 1 1694 5 view .LVU1071 3328 0058 0220 movs r0, #2 3329 .LVL192: 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3330 .loc 1 1694 5 view .LVU1072 3331 005a FAE7 b .L230 3332 .L235: 3333 .align 2 3334 .L234: 3335 005c 0000FFFF .word -65536 3336 0060 00000000 .word I2C_Slave_ISR_IT 3337 .cfi_endproc 3338 .LFE151: 3340 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3341 .align 1 3342 .global HAL_I2C_Slave_Receive_IT 3343 .syntax unified 3344 .thumb 3345 .thumb_func 3346 .fpu fpv5-d16 3348 HAL_I2C_Slave_Receive_IT: 3349 .LVL193: 3350 .LFB152: 1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3351 .loc 1 1739 1 is_stmt 1 view -0 3352 .cfi_startproc 3353 @ args = 0, pretend = 0, frame = 0 3354 @ frame_needed = 0, uses_anonymous_args = 0 1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3355 .loc 1 1739 1 is_stmt 0 view .LVU1074 3356 0000 38B5 push {r3, r4, r5, lr} 3357 .LCFI44: 3358 .cfi_def_cfa_offset 16 3359 .cfi_offset 3, -16 3360 .cfi_offset 4, -12 3361 .cfi_offset 5, -8 3362 .cfi_offset 14, -4 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3363 .loc 1 1740 3 is_stmt 1 view .LVU1075 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3364 .loc 1 1740 11 is_stmt 0 view .LVU1076 3365 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3366 0006 DBB2 uxtb r3, r3 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3367 .loc 1 1740 6 view .LVU1077 3368 0008 202B cmp r3, #32 3369 000a 23D1 bne .L238 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3370 .loc 1 1743 5 is_stmt 1 view .LVU1078 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3371 .loc 1 1743 5 view .LVU1079 3372 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3373 0010 012B cmp r3, #1 3374 0012 21D0 beq .L239 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3375 .loc 1 1743 5 discriminator 2 view .LVU1080 3376 0014 0123 movs r3, #1 ARM GAS /tmp/ccEimIdZ.s page 193 3377 0016 80F84030 strb r3, [r0, #64] 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3378 .loc 1 1743 5 discriminator 2 view .LVU1081 1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3379 .loc 1 1745 5 discriminator 2 view .LVU1082 1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3380 .loc 1 1745 23 is_stmt 0 discriminator 2 view .LVU1083 3381 001a 2223 movs r3, #34 3382 001c 80F84130 strb r3, [r0, #65] 1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3383 .loc 1 1746 5 is_stmt 1 discriminator 2 view .LVU1084 1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3384 .loc 1 1746 23 is_stmt 0 discriminator 2 view .LVU1085 3385 0020 2023 movs r3, #32 3386 0022 80F84230 strb r3, [r0, #66] 1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3387 .loc 1 1747 5 is_stmt 1 discriminator 2 view .LVU1086 1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3388 .loc 1 1747 23 is_stmt 0 discriminator 2 view .LVU1087 3389 0026 0024 movs r4, #0 3390 0028 4464 str r4, [r0, #68] 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3391 .loc 1 1750 5 is_stmt 1 discriminator 2 view .LVU1088 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3392 .loc 1 1750 9 is_stmt 0 discriminator 2 view .LVU1089 3393 002a 0568 ldr r5, [r0] 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3394 .loc 1 1750 25 discriminator 2 view .LVU1090 3395 002c 6B68 ldr r3, [r5, #4] 3396 002e 23F40043 bic r3, r3, #32768 3397 0032 6B60 str r3, [r5, #4] 1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3398 .loc 1 1753 5 is_stmt 1 discriminator 2 view .LVU1091 1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3399 .loc 1 1753 23 is_stmt 0 discriminator 2 view .LVU1092 3400 0034 4162 str r1, [r0, #36] 1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3401 .loc 1 1754 5 is_stmt 1 discriminator 2 view .LVU1093 1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3402 .loc 1 1754 23 is_stmt 0 discriminator 2 view .LVU1094 3403 0036 4285 strh r2, [r0, #42] @ movhi 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3404 .loc 1 1755 5 is_stmt 1 discriminator 2 view .LVU1095 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3405 .loc 1 1755 29 is_stmt 0 discriminator 2 view .LVU1096 3406 0038 438D ldrh r3, [r0, #42] 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3407 .loc 1 1755 23 discriminator 2 view .LVU1097 3408 003a 0385 strh r3, [r0, #40] @ movhi 1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3409 .loc 1 1756 5 is_stmt 1 discriminator 2 view .LVU1098 1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3410 .loc 1 1756 23 is_stmt 0 discriminator 2 view .LVU1099 3411 003c 074B ldr r3, .L241 3412 003e C362 str r3, [r0, #44] 1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3413 .loc 1 1757 5 is_stmt 1 discriminator 2 view .LVU1100 ARM GAS /tmp/ccEimIdZ.s page 194 1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3414 .loc 1 1757 23 is_stmt 0 discriminator 2 view .LVU1101 3415 0040 074B ldr r3, .L241+4 3416 0042 4363 str r3, [r0, #52] 1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3417 .loc 1 1760 5 is_stmt 1 discriminator 2 view .LVU1102 1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3418 .loc 1 1760 5 discriminator 2 view .LVU1103 3419 0044 80F84040 strb r4, [r0, #64] 1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3420 .loc 1 1760 5 discriminator 2 view .LVU1104 1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3421 .loc 1 1769 5 discriminator 2 view .LVU1105 3422 0048 48F20201 movw r1, #32770 3423 .LVL194: 1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3424 .loc 1 1769 5 is_stmt 0 discriminator 2 view .LVU1106 3425 004c FFF7FEFF bl I2C_Enable_IRQ 3426 .LVL195: 1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3427 .loc 1 1771 5 is_stmt 1 discriminator 2 view .LVU1107 1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3428 .loc 1 1771 12 is_stmt 0 discriminator 2 view .LVU1108 3429 0050 2046 mov r0, r4 3430 .L237: 1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3431 .loc 1 1777 1 view .LVU1109 3432 0052 38BD pop {r3, r4, r5, pc} 3433 .LVL196: 3434 .L238: 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3435 .loc 1 1775 12 view .LVU1110 3436 0054 0220 movs r0, #2 3437 .LVL197: 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3438 .loc 1 1775 12 view .LVU1111 3439 0056 FCE7 b .L237 3440 .LVL198: 3441 .L239: 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3442 .loc 1 1743 5 view .LVU1112 3443 0058 0220 movs r0, #2 3444 .LVL199: 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3445 .loc 1 1743 5 view .LVU1113 3446 005a FAE7 b .L237 3447 .L242: 3448 .align 2 3449 .L241: 3450 005c 0000FFFF .word -65536 3451 0060 00000000 .word I2C_Slave_ISR_IT 3452 .cfi_endproc 3453 .LFE152: 3455 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3456 .align 1 3457 .global HAL_I2C_Master_Transmit_DMA 3458 .syntax unified ARM GAS /tmp/ccEimIdZ.s page 195 3459 .thumb 3460 .thumb_func 3461 .fpu fpv5-d16 3463 HAL_I2C_Master_Transmit_DMA: 3464 .LVL200: 3465 .LFB153: 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3466 .loc 1 1790 1 is_stmt 1 view -0 3467 .cfi_startproc 3468 @ args = 0, pretend = 0, frame = 0 3469 @ frame_needed = 0, uses_anonymous_args = 0 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3470 .loc 1 1790 1 is_stmt 0 view .LVU1115 3471 0000 70B5 push {r4, r5, r6, lr} 3472 .LCFI45: 3473 .cfi_def_cfa_offset 16 3474 .cfi_offset 4, -16 3475 .cfi_offset 5, -12 3476 .cfi_offset 6, -8 3477 .cfi_offset 14, -4 3478 0002 82B0 sub sp, sp, #8 3479 .LCFI46: 3480 .cfi_def_cfa_offset 24 3481 0004 0446 mov r4, r0 1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3482 .loc 1 1791 3 is_stmt 1 view .LVU1116 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3483 .loc 1 1792 3 view .LVU1117 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3484 .loc 1 1794 3 view .LVU1118 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3485 .loc 1 1794 11 is_stmt 0 view .LVU1119 3486 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3487 .LVL201: 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3488 .loc 1 1794 11 view .LVU1120 3489 000a C0B2 uxtb r0, r0 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3490 .loc 1 1794 6 view .LVU1121 3491 000c 2028 cmp r0, #32 3492 000e 40F08D80 bne .L252 3493 0012 0D46 mov r5, r1 3494 0014 1146 mov r1, r2 3495 .LVL202: 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3496 .loc 1 1796 5 is_stmt 1 view .LVU1122 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3497 .loc 1 1796 9 is_stmt 0 view .LVU1123 3498 0016 2268 ldr r2, [r4] 3499 .LVL203: 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3500 .loc 1 1796 9 view .LVU1124 3501 0018 9269 ldr r2, [r2, #24] 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3502 .loc 1 1796 8 view .LVU1125 3503 001a 12F4004F tst r2, #32768 3504 001e 40F08880 bne .L253 ARM GAS /tmp/ccEimIdZ.s page 196 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3505 .loc 1 1802 5 is_stmt 1 view .LVU1126 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3506 .loc 1 1802 5 view .LVU1127 3507 0022 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2 3508 0026 012A cmp r2, #1 3509 0028 00F08580 beq .L254 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3510 .loc 1 1802 5 discriminator 2 view .LVU1128 3511 002c 0122 movs r2, #1 3512 002e 84F84020 strb r2, [r4, #64] 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3513 .loc 1 1802 5 discriminator 2 view .LVU1129 1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3514 .loc 1 1804 5 discriminator 2 view .LVU1130 1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3515 .loc 1 1804 23 is_stmt 0 discriminator 2 view .LVU1131 3516 0032 2122 movs r2, #33 3517 0034 84F84120 strb r2, [r4, #65] 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3518 .loc 1 1805 5 is_stmt 1 discriminator 2 view .LVU1132 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3519 .loc 1 1805 23 is_stmt 0 discriminator 2 view .LVU1133 3520 0038 1022 movs r2, #16 3521 003a 84F84220 strb r2, [r4, #66] 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3522 .loc 1 1806 5 is_stmt 1 discriminator 2 view .LVU1134 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3523 .loc 1 1806 23 is_stmt 0 discriminator 2 view .LVU1135 3524 003e 0022 movs r2, #0 3525 0040 6264 str r2, [r4, #68] 1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3526 .loc 1 1809 5 is_stmt 1 discriminator 2 view .LVU1136 1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3527 .loc 1 1809 23 is_stmt 0 discriminator 2 view .LVU1137 3528 0042 6162 str r1, [r4, #36] 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3529 .loc 1 1810 5 is_stmt 1 discriminator 2 view .LVU1138 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3530 .loc 1 1810 23 is_stmt 0 discriminator 2 view .LVU1139 3531 0044 6385 strh r3, [r4, #42] @ movhi 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3532 .loc 1 1811 5 is_stmt 1 discriminator 2 view .LVU1140 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3533 .loc 1 1811 23 is_stmt 0 discriminator 2 view .LVU1141 3534 0046 3D4B ldr r3, .L258 3535 .LVL204: 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3536 .loc 1 1811 23 discriminator 2 view .LVU1142 3537 0048 E362 str r3, [r4, #44] 3538 .LVL205: 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3539 .loc 1 1812 5 is_stmt 1 discriminator 2 view .LVU1143 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3540 .loc 1 1812 23 is_stmt 0 discriminator 2 view .LVU1144 3541 004a 3D4B ldr r3, .L258+4 3542 004c 6363 str r3, [r4, #52] ARM GAS /tmp/ccEimIdZ.s page 197 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3543 .loc 1 1814 5 is_stmt 1 discriminator 2 view .LVU1145 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3544 .loc 1 1814 13 is_stmt 0 discriminator 2 view .LVU1146 3545 004e 638D ldrh r3, [r4, #42] 3546 0050 9BB2 uxth r3, r3 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3547 .loc 1 1814 8 discriminator 2 view .LVU1147 3548 0052 FF2B cmp r3, #255 3549 0054 27D9 bls .L245 1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3550 .loc 1 1816 7 is_stmt 1 view .LVU1148 1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3551 .loc 1 1816 22 is_stmt 0 view .LVU1149 3552 0056 FF23 movs r3, #255 3553 0058 2385 strh r3, [r4, #40] @ movhi 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3554 .loc 1 1817 7 is_stmt 1 view .LVU1150 3555 .LVL206: 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3556 .loc 1 1817 16 is_stmt 0 view .LVU1151 3557 005a 4FF08076 mov r6, #16777216 3558 .LVL207: 3559 .L246: 1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3560 .loc 1 1825 5 is_stmt 1 view .LVU1152 1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3561 .loc 1 1825 13 is_stmt 0 view .LVU1153 3562 005e 228D ldrh r2, [r4, #40] 1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3563 .loc 1 1825 8 view .LVU1154 3564 0060 002A cmp r2, #0 3565 0062 4FD0 beq .L247 1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3566 .loc 1 1827 7 is_stmt 1 view .LVU1155 1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3567 .loc 1 1827 15 is_stmt 0 view .LVU1156 3568 0064 A36B ldr r3, [r4, #56] 1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3569 .loc 1 1827 10 view .LVU1157 3570 0066 1BB3 cbz r3, .L248 1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3571 .loc 1 1830 9 is_stmt 1 view .LVU1158 1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3572 .loc 1 1830 40 is_stmt 0 view .LVU1159 3573 0068 364A ldr r2, .L258+8 3574 006a DA63 str r2, [r3, #60] 1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3575 .loc 1 1833 9 is_stmt 1 view .LVU1160 1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3576 .loc 1 1833 13 is_stmt 0 view .LVU1161 3577 006c A36B ldr r3, [r4, #56] 1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3578 .loc 1 1833 41 view .LVU1162 3579 006e 364A ldr r2, .L258+12 3580 0070 DA64 str r2, [r3, #76] 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; ARM GAS /tmp/ccEimIdZ.s page 198 3581 .loc 1 1836 9 is_stmt 1 view .LVU1163 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3582 .loc 1 1836 13 is_stmt 0 view .LVU1164 3583 0072 A26B ldr r2, [r4, #56] 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3584 .loc 1 1836 44 view .LVU1165 3585 0074 0023 movs r3, #0 3586 0076 1364 str r3, [r2, #64] 1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3587 .loc 1 1837 9 is_stmt 1 view .LVU1166 1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3588 .loc 1 1837 13 is_stmt 0 view .LVU1167 3589 0078 A26B ldr r2, [r4, #56] 1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3590 .loc 1 1837 41 view .LVU1168 3591 007a 1365 str r3, [r2, #80] 1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3592 .loc 1 1840 9 is_stmt 1 view .LVU1169 1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3593 .loc 1 1840 88 is_stmt 0 view .LVU1170 3594 007c 2268 ldr r2, [r4] 1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3595 .loc 1 1840 25 view .LVU1171 3596 007e 238D ldrh r3, [r4, #40] 3597 0080 2832 adds r2, r2, #40 3598 0082 A06B ldr r0, [r4, #56] 3599 0084 FFF7FEFF bl HAL_DMA_Start_IT 3600 .LVL208: 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3601 .loc 1 1857 7 is_stmt 1 view .LVU1172 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3602 .loc 1 1857 10 is_stmt 0 view .LVU1173 3603 0088 00B3 cbz r0, .L257 1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3604 .loc 1 1881 9 is_stmt 1 view .LVU1174 1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3605 .loc 1 1881 25 is_stmt 0 view .LVU1175 3606 008a 2023 movs r3, #32 3607 008c 84F84130 strb r3, [r4, #65] 1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3608 .loc 1 1882 9 is_stmt 1 view .LVU1176 1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3609 .loc 1 1882 25 is_stmt 0 view .LVU1177 3610 0090 0022 movs r2, #0 3611 0092 84F84220 strb r2, [r4, #66] 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3612 .loc 1 1885 9 is_stmt 1 view .LVU1178 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3613 .loc 1 1885 25 is_stmt 0 view .LVU1179 3614 0096 636C ldr r3, [r4, #68] 3615 0098 43F01003 orr r3, r3, #16 3616 009c 6364 str r3, [r4, #68] 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3617 .loc 1 1888 9 is_stmt 1 view .LVU1180 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3618 .loc 1 1888 9 view .LVU1181 3619 009e 84F84020 strb r2, [r4, #64] ARM GAS /tmp/ccEimIdZ.s page 199 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3620 .loc 1 1888 9 view .LVU1182 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3621 .loc 1 1890 9 view .LVU1183 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3622 .loc 1 1890 16 is_stmt 0 view .LVU1184 3623 00a2 0120 movs r0, #1 3624 .LVL209: 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3625 .loc 1 1890 16 view .LVU1185 3626 00a4 43E0 b .L244 3627 .LVL210: 3628 .L245: 1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3629 .loc 1 1821 7 is_stmt 1 view .LVU1186 1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3630 .loc 1 1821 28 is_stmt 0 view .LVU1187 3631 00a6 638D ldrh r3, [r4, #42] 1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3632 .loc 1 1821 22 view .LVU1188 3633 00a8 2385 strh r3, [r4, #40] @ movhi 1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3634 .loc 1 1822 7 is_stmt 1 view .LVU1189 3635 .LVL211: 1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3636 .loc 1 1822 16 is_stmt 0 view .LVU1190 3637 00aa 4FF00076 mov r6, #33554432 3638 00ae D6E7 b .L246 3639 .LVL212: 3640 .L248: 1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3641 .loc 1 1845 9 is_stmt 1 view .LVU1191 1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3642 .loc 1 1845 25 is_stmt 0 view .LVU1192 3643 00b0 2023 movs r3, #32 3644 00b2 84F84130 strb r3, [r4, #65] 1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3645 .loc 1 1846 9 is_stmt 1 view .LVU1193 1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3646 .loc 1 1846 25 is_stmt 0 view .LVU1194 3647 00b6 0022 movs r2, #0 3648 00b8 84F84220 strb r2, [r4, #66] 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3649 .loc 1 1849 9 is_stmt 1 view .LVU1195 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3650 .loc 1 1849 25 is_stmt 0 view .LVU1196 3651 00bc 636C ldr r3, [r4, #68] 3652 00be 43F08003 orr r3, r3, #128 3653 00c2 6364 str r3, [r4, #68] 1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3654 .loc 1 1852 9 is_stmt 1 view .LVU1197 1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3655 .loc 1 1852 9 view .LVU1198 3656 00c4 84F84020 strb r2, [r4, #64] 1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3657 .loc 1 1852 9 view .LVU1199 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 200 3658 .loc 1 1854 9 view .LVU1200 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3659 .loc 1 1854 16 is_stmt 0 view .LVU1201 3660 00c8 0120 movs r0, #1 3661 00ca 30E0 b .L244 3662 .LVL213: 3663 .L257: 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3664 .loc 1 1861 9 is_stmt 1 view .LVU1202 3665 00cc 1F4B ldr r3, .L258+16 3666 00ce 0093 str r3, [sp] 3667 00d0 3346 mov r3, r6 3668 00d2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3669 00d6 2946 mov r1, r5 3670 00d8 2046 mov r0, r4 3671 .LVL214: 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3672 .loc 1 1861 9 is_stmt 0 view .LVU1203 3673 00da FFF7FEFF bl I2C_TransferConfig 3674 .LVL215: 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3675 .loc 1 1864 9 is_stmt 1 view .LVU1204 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3676 .loc 1 1864 25 is_stmt 0 view .LVU1205 3677 00de 638D ldrh r3, [r4, #42] 3678 00e0 9BB2 uxth r3, r3 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3679 .loc 1 1864 32 view .LVU1206 3680 00e2 228D ldrh r2, [r4, #40] 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3681 .loc 1 1864 25 view .LVU1207 3682 00e4 9B1A subs r3, r3, r2 3683 00e6 9BB2 uxth r3, r3 3684 00e8 6385 strh r3, [r4, #42] @ movhi 1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3685 .loc 1 1867 9 is_stmt 1 view .LVU1208 1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3686 .loc 1 1867 9 view .LVU1209 3687 00ea 0023 movs r3, #0 3688 00ec 84F84030 strb r3, [r4, #64] 1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3689 .loc 1 1867 9 view .LVU1210 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3690 .loc 1 1873 9 view .LVU1211 3691 00f0 1021 movs r1, #16 3692 00f2 2046 mov r0, r4 3693 00f4 FFF7FEFF bl I2C_Enable_IRQ 3694 .LVL216: 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3695 .loc 1 1876 9 view .LVU1212 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3696 .loc 1 1876 13 is_stmt 0 view .LVU1213 3697 00f8 2268 ldr r2, [r4] 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3698 .loc 1 1876 29 view .LVU1214 3699 00fa 1368 ldr r3, [r2] 3700 00fc 43F48043 orr r3, r3, #16384 ARM GAS /tmp/ccEimIdZ.s page 201 3701 0100 1360 str r3, [r2] 3702 0102 11E0 b .L251 3703 .LVL217: 3704 .L247: 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3705 .loc 1 1896 7 is_stmt 1 view .LVU1215 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3706 .loc 1 1896 21 is_stmt 0 view .LVU1216 3707 0104 124B ldr r3, .L258+20 3708 0106 6363 str r3, [r4, #52] 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3709 .loc 1 1900 7 is_stmt 1 view .LVU1217 3710 0108 104B ldr r3, .L258+16 3711 010a 0093 str r3, [sp] 3712 010c 4FF00073 mov r3, #33554432 3713 0110 D2B2 uxtb r2, r2 3714 0112 2946 mov r1, r5 3715 .LVL218: 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3716 .loc 1 1900 7 is_stmt 0 view .LVU1218 3717 0114 2046 mov r0, r4 3718 0116 FFF7FEFF bl I2C_TransferConfig 3719 .LVL219: 1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3720 .loc 1 1903 7 is_stmt 1 view .LVU1219 1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3721 .loc 1 1903 7 view .LVU1220 3722 011a 0023 movs r3, #0 3723 011c 84F84030 strb r3, [r4, #64] 1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3724 .loc 1 1903 7 view .LVU1221 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3725 .loc 1 1911 7 view .LVU1222 3726 0120 0121 movs r1, #1 3727 0122 2046 mov r0, r4 3728 0124 FFF7FEFF bl I2C_Enable_IRQ 3729 .LVL220: 3730 .L251: 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3731 .loc 1 1914 5 view .LVU1223 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3732 .loc 1 1914 12 is_stmt 0 view .LVU1224 3733 0128 0020 movs r0, #0 3734 012a 00E0 b .L244 3735 .LVL221: 3736 .L252: 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3737 .loc 1 1918 12 view .LVU1225 3738 012c 0220 movs r0, #2 3739 .LVL222: 3740 .L244: 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3741 .loc 1 1920 1 view .LVU1226 3742 012e 02B0 add sp, sp, #8 3743 .LCFI47: 3744 .cfi_remember_state 3745 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccEimIdZ.s page 202 3746 @ sp needed 3747 0130 70BD pop {r4, r5, r6, pc} 3748 .LVL223: 3749 .L253: 3750 .LCFI48: 3751 .cfi_restore_state 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3752 .loc 1 1798 14 view .LVU1227 3753 0132 0220 movs r0, #2 3754 0134 FBE7 b .L244 3755 .L254: 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3756 .loc 1 1802 5 view .LVU1228 3757 0136 0220 movs r0, #2 3758 0138 F9E7 b .L244 3759 .L259: 3760 013a 00BF .align 2 3761 .L258: 3762 013c 0000FFFF .word -65536 3763 0140 00000000 .word I2C_Master_ISR_DMA 3764 0144 00000000 .word I2C_DMAMasterTransmitCplt 3765 0148 00000000 .word I2C_DMAError 3766 014c 00200080 .word -2147475456 3767 0150 00000000 .word I2C_Master_ISR_IT 3768 .cfi_endproc 3769 .LFE153: 3771 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 3772 .align 1 3773 .global HAL_I2C_Master_Receive_DMA 3774 .syntax unified 3775 .thumb 3776 .thumb_func 3777 .fpu fpv5-d16 3779 HAL_I2C_Master_Receive_DMA: 3780 .LVL224: 3781 .LFB154: 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3782 .loc 1 1933 1 is_stmt 1 view -0 3783 .cfi_startproc 3784 @ args = 0, pretend = 0, frame = 0 3785 @ frame_needed = 0, uses_anonymous_args = 0 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3786 .loc 1 1933 1 is_stmt 0 view .LVU1230 3787 0000 70B5 push {r4, r5, r6, lr} 3788 .LCFI49: 3789 .cfi_def_cfa_offset 16 3790 .cfi_offset 4, -16 3791 .cfi_offset 5, -12 3792 .cfi_offset 6, -8 3793 .cfi_offset 14, -4 3794 0002 82B0 sub sp, sp, #8 3795 .LCFI50: 3796 .cfi_def_cfa_offset 24 3797 0004 0446 mov r4, r0 1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3798 .loc 1 1934 3 is_stmt 1 view .LVU1231 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 203 3799 .loc 1 1935 3 view .LVU1232 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3800 .loc 1 1937 3 view .LVU1233 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3801 .loc 1 1937 11 is_stmt 0 view .LVU1234 3802 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3803 .LVL225: 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3804 .loc 1 1937 11 view .LVU1235 3805 000a C0B2 uxtb r0, r0 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3806 .loc 1 1937 6 view .LVU1236 3807 000c 2028 cmp r0, #32 3808 000e 40F08C80 bne .L269 3809 0012 0D46 mov r5, r1 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3810 .loc 1 1939 5 is_stmt 1 view .LVU1237 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3811 .loc 1 1939 9 is_stmt 0 view .LVU1238 3812 0014 2168 ldr r1, [r4] 3813 .LVL226: 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3814 .loc 1 1939 9 view .LVU1239 3815 0016 8969 ldr r1, [r1, #24] 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3816 .loc 1 1939 8 view .LVU1240 3817 0018 11F4004F tst r1, #32768 3818 001c 40F08880 bne .L270 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3819 .loc 1 1945 5 is_stmt 1 view .LVU1241 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3820 .loc 1 1945 5 view .LVU1242 3821 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 3822 0024 0129 cmp r1, #1 3823 0026 00F08580 beq .L271 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3824 .loc 1 1945 5 discriminator 2 view .LVU1243 3825 002a 0121 movs r1, #1 3826 002c 84F84010 strb r1, [r4, #64] 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3827 .loc 1 1945 5 discriminator 2 view .LVU1244 1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3828 .loc 1 1947 5 discriminator 2 view .LVU1245 1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3829 .loc 1 1947 23 is_stmt 0 discriminator 2 view .LVU1246 3830 0030 2221 movs r1, #34 3831 0032 84F84110 strb r1, [r4, #65] 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3832 .loc 1 1948 5 is_stmt 1 discriminator 2 view .LVU1247 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3833 .loc 1 1948 23 is_stmt 0 discriminator 2 view .LVU1248 3834 0036 1021 movs r1, #16 3835 0038 84F84210 strb r1, [r4, #66] 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3836 .loc 1 1949 5 is_stmt 1 discriminator 2 view .LVU1249 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3837 .loc 1 1949 23 is_stmt 0 discriminator 2 view .LVU1250 ARM GAS /tmp/ccEimIdZ.s page 204 3838 003c 0021 movs r1, #0 3839 003e 6164 str r1, [r4, #68] 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3840 .loc 1 1952 5 is_stmt 1 discriminator 2 view .LVU1251 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3841 .loc 1 1952 23 is_stmt 0 discriminator 2 view .LVU1252 3842 0040 6262 str r2, [r4, #36] 1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3843 .loc 1 1953 5 is_stmt 1 discriminator 2 view .LVU1253 1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3844 .loc 1 1953 23 is_stmt 0 discriminator 2 view .LVU1254 3845 0042 6385 strh r3, [r4, #42] @ movhi 1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3846 .loc 1 1954 5 is_stmt 1 discriminator 2 view .LVU1255 1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3847 .loc 1 1954 23 is_stmt 0 discriminator 2 view .LVU1256 3848 0044 3C4B ldr r3, .L275 3849 .LVL227: 1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3850 .loc 1 1954 23 discriminator 2 view .LVU1257 3851 0046 E362 str r3, [r4, #44] 3852 .LVL228: 1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3853 .loc 1 1955 5 is_stmt 1 discriminator 2 view .LVU1258 1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3854 .loc 1 1955 23 is_stmt 0 discriminator 2 view .LVU1259 3855 0048 3C4B ldr r3, .L275+4 3856 004a 6363 str r3, [r4, #52] 1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3857 .loc 1 1957 5 is_stmt 1 discriminator 2 view .LVU1260 1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3858 .loc 1 1957 13 is_stmt 0 discriminator 2 view .LVU1261 3859 004c 638D ldrh r3, [r4, #42] 3860 004e 9BB2 uxth r3, r3 1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3861 .loc 1 1957 8 discriminator 2 view .LVU1262 3862 0050 FF2B cmp r3, #255 3863 0052 27D9 bls .L262 1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3864 .loc 1 1959 7 is_stmt 1 view .LVU1263 1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3865 .loc 1 1959 22 is_stmt 0 view .LVU1264 3866 0054 FF23 movs r3, #255 3867 0056 2385 strh r3, [r4, #40] @ movhi 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3868 .loc 1 1960 7 is_stmt 1 view .LVU1265 3869 .LVL229: 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3870 .loc 1 1960 16 is_stmt 0 view .LVU1266 3871 0058 4FF08076 mov r6, #16777216 3872 .LVL230: 3873 .L263: 1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3874 .loc 1 1968 5 is_stmt 1 view .LVU1267 1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3875 .loc 1 1968 13 is_stmt 0 view .LVU1268 3876 005c 218D ldrh r1, [r4, #40] ARM GAS /tmp/ccEimIdZ.s page 205 1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3877 .loc 1 1968 8 view .LVU1269 3878 005e 0029 cmp r1, #0 3879 0060 4FD0 beq .L264 1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3880 .loc 1 1970 7 is_stmt 1 view .LVU1270 1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3881 .loc 1 1970 15 is_stmt 0 view .LVU1271 3882 0062 E36B ldr r3, [r4, #60] 1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3883 .loc 1 1970 10 view .LVU1272 3884 0064 1BB3 cbz r3, .L265 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3885 .loc 1 1973 9 is_stmt 1 view .LVU1273 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3886 .loc 1 1973 40 is_stmt 0 view .LVU1274 3887 0066 3649 ldr r1, .L275+8 3888 0068 D963 str r1, [r3, #60] 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3889 .loc 1 1976 9 is_stmt 1 view .LVU1275 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3890 .loc 1 1976 13 is_stmt 0 view .LVU1276 3891 006a E36B ldr r3, [r4, #60] 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3892 .loc 1 1976 41 view .LVU1277 3893 006c 3549 ldr r1, .L275+12 3894 006e D964 str r1, [r3, #76] 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3895 .loc 1 1979 9 is_stmt 1 view .LVU1278 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3896 .loc 1 1979 13 is_stmt 0 view .LVU1279 3897 0070 E16B ldr r1, [r4, #60] 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3898 .loc 1 1979 44 view .LVU1280 3899 0072 0023 movs r3, #0 3900 0074 0B64 str r3, [r1, #64] 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3901 .loc 1 1980 9 is_stmt 1 view .LVU1281 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3902 .loc 1 1980 13 is_stmt 0 view .LVU1282 3903 0076 E16B ldr r1, [r4, #60] 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3904 .loc 1 1980 41 view .LVU1283 3905 0078 0B65 str r3, [r1, #80] 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3906 .loc 1 1983 9 is_stmt 1 view .LVU1284 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3907 .loc 1 1983 71 is_stmt 0 view .LVU1285 3908 007a 2168 ldr r1, [r4] 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3909 .loc 1 1983 25 view .LVU1286 3910 007c 238D ldrh r3, [r4, #40] 3911 007e 2431 adds r1, r1, #36 3912 0080 E06B ldr r0, [r4, #60] 3913 0082 FFF7FEFF bl HAL_DMA_Start_IT 3914 .LVL231: 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 206 3915 .loc 1 2000 7 is_stmt 1 view .LVU1287 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3916 .loc 1 2000 10 is_stmt 0 view .LVU1288 3917 0086 00B3 cbz r0, .L274 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3918 .loc 1 2024 9 is_stmt 1 view .LVU1289 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3919 .loc 1 2024 25 is_stmt 0 view .LVU1290 3920 0088 2023 movs r3, #32 3921 008a 84F84130 strb r3, [r4, #65] 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3922 .loc 1 2025 9 is_stmt 1 view .LVU1291 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3923 .loc 1 2025 25 is_stmt 0 view .LVU1292 3924 008e 0022 movs r2, #0 3925 0090 84F84220 strb r2, [r4, #66] 2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3926 .loc 1 2028 9 is_stmt 1 view .LVU1293 2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3927 .loc 1 2028 25 is_stmt 0 view .LVU1294 3928 0094 636C ldr r3, [r4, #68] 3929 0096 43F01003 orr r3, r3, #16 3930 009a 6364 str r3, [r4, #68] 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3931 .loc 1 2031 9 is_stmt 1 view .LVU1295 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3932 .loc 1 2031 9 view .LVU1296 3933 009c 84F84020 strb r2, [r4, #64] 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3934 .loc 1 2031 9 view .LVU1297 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3935 .loc 1 2033 9 view .LVU1298 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3936 .loc 1 2033 16 is_stmt 0 view .LVU1299 3937 00a0 0120 movs r0, #1 3938 .LVL232: 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3939 .loc 1 2033 16 view .LVU1300 3940 00a2 43E0 b .L261 3941 .LVL233: 3942 .L262: 1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3943 .loc 1 1964 7 is_stmt 1 view .LVU1301 1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3944 .loc 1 1964 28 is_stmt 0 view .LVU1302 3945 00a4 638D ldrh r3, [r4, #42] 1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3946 .loc 1 1964 22 view .LVU1303 3947 00a6 2385 strh r3, [r4, #40] @ movhi 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3948 .loc 1 1965 7 is_stmt 1 view .LVU1304 3949 .LVL234: 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3950 .loc 1 1965 16 is_stmt 0 view .LVU1305 3951 00a8 4FF00076 mov r6, #33554432 3952 00ac D6E7 b .L263 3953 .LVL235: ARM GAS /tmp/ccEimIdZ.s page 207 3954 .L265: 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3955 .loc 1 1988 9 is_stmt 1 view .LVU1306 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3956 .loc 1 1988 25 is_stmt 0 view .LVU1307 3957 00ae 2023 movs r3, #32 3958 00b0 84F84130 strb r3, [r4, #65] 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3959 .loc 1 1989 9 is_stmt 1 view .LVU1308 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3960 .loc 1 1989 25 is_stmt 0 view .LVU1309 3961 00b4 0022 movs r2, #0 3962 .LVL236: 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3963 .loc 1 1989 25 view .LVU1310 3964 00b6 84F84220 strb r2, [r4, #66] 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3965 .loc 1 1992 9 is_stmt 1 view .LVU1311 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3966 .loc 1 1992 25 is_stmt 0 view .LVU1312 3967 00ba 636C ldr r3, [r4, #68] 3968 00bc 43F08003 orr r3, r3, #128 3969 00c0 6364 str r3, [r4, #68] 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3970 .loc 1 1995 9 is_stmt 1 view .LVU1313 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3971 .loc 1 1995 9 view .LVU1314 3972 00c2 84F84020 strb r2, [r4, #64] 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3973 .loc 1 1995 9 view .LVU1315 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3974 .loc 1 1997 9 view .LVU1316 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3975 .loc 1 1997 16 is_stmt 0 view .LVU1317 3976 00c6 0120 movs r0, #1 3977 00c8 30E0 b .L261 3978 .LVL237: 3979 .L274: 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3980 .loc 1 2004 9 is_stmt 1 view .LVU1318 3981 00ca 1F4B ldr r3, .L275+16 3982 00cc 0093 str r3, [sp] 3983 00ce 3346 mov r3, r6 3984 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3985 00d4 2946 mov r1, r5 3986 00d6 2046 mov r0, r4 3987 .LVL238: 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3988 .loc 1 2004 9 is_stmt 0 view .LVU1319 3989 00d8 FFF7FEFF bl I2C_TransferConfig 3990 .LVL239: 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3991 .loc 1 2007 9 is_stmt 1 view .LVU1320 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3992 .loc 1 2007 25 is_stmt 0 view .LVU1321 3993 00dc 638D ldrh r3, [r4, #42] 3994 00de 9BB2 uxth r3, r3 ARM GAS /tmp/ccEimIdZ.s page 208 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3995 .loc 1 2007 32 view .LVU1322 3996 00e0 228D ldrh r2, [r4, #40] 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3997 .loc 1 2007 25 view .LVU1323 3998 00e2 9B1A subs r3, r3, r2 3999 00e4 9BB2 uxth r3, r3 4000 00e6 6385 strh r3, [r4, #42] @ movhi 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4001 .loc 1 2010 9 is_stmt 1 view .LVU1324 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4002 .loc 1 2010 9 view .LVU1325 4003 00e8 0023 movs r3, #0 4004 00ea 84F84030 strb r3, [r4, #64] 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4005 .loc 1 2010 9 view .LVU1326 2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4006 .loc 1 2016 9 view .LVU1327 4007 00ee 1021 movs r1, #16 4008 00f0 2046 mov r0, r4 4009 00f2 FFF7FEFF bl I2C_Enable_IRQ 4010 .LVL240: 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4011 .loc 1 2019 9 view .LVU1328 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4012 .loc 1 2019 13 is_stmt 0 view .LVU1329 4013 00f6 2268 ldr r2, [r4] 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4014 .loc 1 2019 29 view .LVU1330 4015 00f8 1368 ldr r3, [r2] 4016 00fa 43F40043 orr r3, r3, #32768 4017 00fe 1360 str r3, [r2] 4018 0100 11E0 b .L268 4019 .LVL241: 4020 .L264: 2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4021 .loc 1 2039 7 is_stmt 1 view .LVU1331 2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4022 .loc 1 2039 21 is_stmt 0 view .LVU1332 4023 0102 124B ldr r3, .L275+20 4024 0104 6363 str r3, [r4, #52] 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4025 .loc 1 2043 7 is_stmt 1 view .LVU1333 4026 0106 104B ldr r3, .L275+16 4027 0108 0093 str r3, [sp] 4028 010a 4FF00073 mov r3, #33554432 4029 010e CAB2 uxtb r2, r1 4030 .LVL242: 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4031 .loc 1 2043 7 is_stmt 0 view .LVU1334 4032 0110 2946 mov r1, r5 4033 0112 2046 mov r0, r4 4034 0114 FFF7FEFF bl I2C_TransferConfig 4035 .LVL243: 2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4036 .loc 1 2046 7 is_stmt 1 view .LVU1335 2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 209 4037 .loc 1 2046 7 view .LVU1336 4038 0118 0023 movs r3, #0 4039 011a 84F84030 strb r3, [r4, #64] 2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4040 .loc 1 2046 7 view .LVU1337 2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4041 .loc 1 2054 7 view .LVU1338 4042 011e 0121 movs r1, #1 4043 0120 2046 mov r0, r4 4044 0122 FFF7FEFF bl I2C_Enable_IRQ 4045 .LVL244: 4046 .L268: 2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4047 .loc 1 2057 5 view .LVU1339 2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4048 .loc 1 2057 12 is_stmt 0 view .LVU1340 4049 0126 0020 movs r0, #0 4050 0128 00E0 b .L261 4051 .LVL245: 4052 .L269: 2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4053 .loc 1 2061 12 view .LVU1341 4054 012a 0220 movs r0, #2 4055 .LVL246: 4056 .L261: 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4057 .loc 1 2063 1 view .LVU1342 4058 012c 02B0 add sp, sp, #8 4059 .LCFI51: 4060 .cfi_remember_state 4061 .cfi_def_cfa_offset 16 4062 @ sp needed 4063 012e 70BD pop {r4, r5, r6, pc} 4064 .LVL247: 4065 .L270: 4066 .LCFI52: 4067 .cfi_restore_state 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4068 .loc 1 1941 14 view .LVU1343 4069 0130 0220 movs r0, #2 4070 0132 FBE7 b .L261 4071 .L271: 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4072 .loc 1 1945 5 view .LVU1344 4073 0134 0220 movs r0, #2 4074 0136 F9E7 b .L261 4075 .L276: 4076 .align 2 4077 .L275: 4078 0138 0000FFFF .word -65536 4079 013c 00000000 .word I2C_Master_ISR_DMA 4080 0140 00000000 .word I2C_DMAMasterReceiveCplt 4081 0144 00000000 .word I2C_DMAError 4082 0148 00240080 .word -2147474432 4083 014c 00000000 .word I2C_Master_ISR_IT 4084 .cfi_endproc 4085 .LFE154: ARM GAS /tmp/ccEimIdZ.s page 210 4087 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4088 .align 1 4089 .global HAL_I2C_Slave_Transmit_DMA 4090 .syntax unified 4091 .thumb 4092 .thumb_func 4093 .fpu fpv5-d16 4095 HAL_I2C_Slave_Transmit_DMA: 4096 .LVL248: 4097 .LFB155: 2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4098 .loc 1 2074 1 is_stmt 1 view -0 4099 .cfi_startproc 4100 @ args = 0, pretend = 0, frame = 0 4101 @ frame_needed = 0, uses_anonymous_args = 0 2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4102 .loc 1 2074 1 is_stmt 0 view .LVU1346 4103 0000 38B5 push {r3, r4, r5, lr} 4104 .LCFI53: 4105 .cfi_def_cfa_offset 16 4106 .cfi_offset 3, -16 4107 .cfi_offset 4, -12 4108 .cfi_offset 5, -8 4109 .cfi_offset 14, -4 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4110 .loc 1 2075 3 is_stmt 1 view .LVU1347 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4111 .loc 1 2077 3 view .LVU1348 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4112 .loc 1 2077 11 is_stmt 0 view .LVU1349 4113 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4114 0006 DBB2 uxtb r3, r3 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4115 .loc 1 2077 6 view .LVU1350 4116 0008 202B cmp r3, #32 4117 000a 63D1 bne .L283 4118 000c 0446 mov r4, r0 2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4119 .loc 1 2079 5 is_stmt 1 view .LVU1351 2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4120 .loc 1 2079 8 is_stmt 0 view .LVU1352 4121 000e 002A cmp r2, #0 4122 0010 18BF it ne 4123 0012 0029 cmpne r1, #0 4124 0014 38D0 beq .L287 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4125 .loc 1 2085 5 is_stmt 1 view .LVU1353 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4126 .loc 1 2085 5 view .LVU1354 4127 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4128 001a 012B cmp r3, #1 4129 001c 5DD0 beq .L284 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4130 .loc 1 2085 5 discriminator 2 view .LVU1355 4131 001e 0123 movs r3, #1 4132 0020 80F84030 strb r3, [r0, #64] 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 211 4133 .loc 1 2085 5 discriminator 2 view .LVU1356 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4134 .loc 1 2087 5 discriminator 2 view .LVU1357 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4135 .loc 1 2087 23 is_stmt 0 discriminator 2 view .LVU1358 4136 0024 2123 movs r3, #33 4137 0026 80F84130 strb r3, [r0, #65] 2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4138 .loc 1 2088 5 is_stmt 1 discriminator 2 view .LVU1359 2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4139 .loc 1 2088 23 is_stmt 0 discriminator 2 view .LVU1360 4140 002a 2023 movs r3, #32 4141 002c 80F84230 strb r3, [r0, #66] 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4142 .loc 1 2089 5 is_stmt 1 discriminator 2 view .LVU1361 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4143 .loc 1 2089 23 is_stmt 0 discriminator 2 view .LVU1362 4144 0030 0023 movs r3, #0 4145 0032 4364 str r3, [r0, #68] 2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4146 .loc 1 2092 5 is_stmt 1 discriminator 2 view .LVU1363 2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4147 .loc 1 2092 23 is_stmt 0 discriminator 2 view .LVU1364 4148 0034 4162 str r1, [r0, #36] 2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4149 .loc 1 2093 5 is_stmt 1 discriminator 2 view .LVU1365 2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4150 .loc 1 2093 23 is_stmt 0 discriminator 2 view .LVU1366 4151 0036 4285 strh r2, [r0, #42] @ movhi 2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4152 .loc 1 2094 5 is_stmt 1 discriminator 2 view .LVU1367 2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4153 .loc 1 2094 29 is_stmt 0 discriminator 2 view .LVU1368 4154 0038 438D ldrh r3, [r0, #42] 2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4155 .loc 1 2094 23 discriminator 2 view .LVU1369 4156 003a 0385 strh r3, [r0, #40] @ movhi 2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4157 .loc 1 2095 5 is_stmt 1 discriminator 2 view .LVU1370 2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4158 .loc 1 2095 23 is_stmt 0 discriminator 2 view .LVU1371 4159 003c 284B ldr r3, .L289 4160 003e C362 str r3, [r0, #44] 2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4161 .loc 1 2096 5 is_stmt 1 discriminator 2 view .LVU1372 2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4162 .loc 1 2096 23 is_stmt 0 discriminator 2 view .LVU1373 4163 0040 284B ldr r3, .L289+4 4164 0042 4363 str r3, [r0, #52] 2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4165 .loc 1 2098 5 is_stmt 1 discriminator 2 view .LVU1374 2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4166 .loc 1 2098 13 is_stmt 0 discriminator 2 view .LVU1375 4167 0044 836B ldr r3, [r0, #56] 2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4168 .loc 1 2098 8 discriminator 2 view .LVU1376 4169 0046 23B3 cbz r3, .L280 ARM GAS /tmp/ccEimIdZ.s page 212 2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4170 .loc 1 2101 7 is_stmt 1 view .LVU1377 2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4171 .loc 1 2101 38 is_stmt 0 view .LVU1378 4172 0048 274A ldr r2, .L289+8 4173 .LVL249: 2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4174 .loc 1 2101 38 view .LVU1379 4175 004a DA63 str r2, [r3, #60] 2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4176 .loc 1 2104 7 is_stmt 1 view .LVU1380 2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4177 .loc 1 2104 11 is_stmt 0 view .LVU1381 4178 004c 836B ldr r3, [r0, #56] 2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4179 .loc 1 2104 39 view .LVU1382 4180 004e 274A ldr r2, .L289+12 4181 0050 DA64 str r2, [r3, #76] 2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4182 .loc 1 2107 7 is_stmt 1 view .LVU1383 2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4183 .loc 1 2107 11 is_stmt 0 view .LVU1384 4184 0052 826B ldr r2, [r0, #56] 2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4185 .loc 1 2107 42 view .LVU1385 4186 0054 0023 movs r3, #0 4187 0056 1364 str r3, [r2, #64] 2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4188 .loc 1 2108 7 is_stmt 1 view .LVU1386 2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4189 .loc 1 2108 11 is_stmt 0 view .LVU1387 4190 0058 826B ldr r2, [r0, #56] 2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4191 .loc 1 2108 39 view .LVU1388 4192 005a 1365 str r3, [r2, #80] 2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4193 .loc 1 2111 7 is_stmt 1 view .LVU1389 2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4194 .loc 1 2111 86 is_stmt 0 view .LVU1390 4195 005c 0268 ldr r2, [r0] 2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4196 .loc 1 2111 23 view .LVU1391 4197 005e 038D ldrh r3, [r0, #40] 4198 0060 2832 adds r2, r2, #40 4199 0062 806B ldr r0, [r0, #56] 4200 .LVL250: 2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4201 .loc 1 2111 23 view .LVU1392 4202 0064 FFF7FEFF bl HAL_DMA_Start_IT 4203 .LVL251: 2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4204 .loc 1 2128 5 is_stmt 1 view .LVU1393 2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4205 .loc 1 2128 8 is_stmt 0 view .LVU1394 4206 0068 0546 mov r5, r0 4207 006a 00B3 cbz r0, .L288 2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccEimIdZ.s page 213 4208 .loc 1 2148 7 is_stmt 1 view .LVU1395 2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4209 .loc 1 2148 23 is_stmt 0 view .LVU1396 4210 006c 2823 movs r3, #40 4211 006e 84F84130 strb r3, [r4, #65] 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4212 .loc 1 2149 7 is_stmt 1 view .LVU1397 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4213 .loc 1 2149 23 is_stmt 0 view .LVU1398 4214 0072 0022 movs r2, #0 4215 0074 84F84220 strb r2, [r4, #66] 2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4216 .loc 1 2152 7 is_stmt 1 view .LVU1399 2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4217 .loc 1 2152 23 is_stmt 0 view .LVU1400 4218 0078 636C ldr r3, [r4, #68] 4219 007a 43F01003 orr r3, r3, #16 4220 007e 6364 str r3, [r4, #68] 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4221 .loc 1 2155 7 is_stmt 1 view .LVU1401 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4222 .loc 1 2155 7 view .LVU1402 4223 0080 84F84020 strb r2, [r4, #64] 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4224 .loc 1 2155 7 view .LVU1403 2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4225 .loc 1 2157 7 view .LVU1404 2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4226 .loc 1 2157 14 is_stmt 0 view .LVU1405 4227 0084 0125 movs r5, #1 4228 0086 26E0 b .L278 4229 .LVL252: 4230 .L287: 2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4231 .loc 1 2081 7 is_stmt 1 view .LVU1406 2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4232 .loc 1 2081 23 is_stmt 0 view .LVU1407 4233 0088 4FF40073 mov r3, #512 4234 008c 4364 str r3, [r0, #68] 2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4235 .loc 1 2082 7 is_stmt 1 view .LVU1408 2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4236 .loc 1 2082 15 is_stmt 0 view .LVU1409 4237 008e 0125 movs r5, #1 4238 0090 21E0 b .L278 4239 .L280: 2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4240 .loc 1 2116 7 is_stmt 1 view .LVU1410 2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4241 .loc 1 2116 23 is_stmt 0 view .LVU1411 4242 0092 2823 movs r3, #40 4243 0094 80F84130 strb r3, [r0, #65] 2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4244 .loc 1 2117 7 is_stmt 1 view .LVU1412 2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4245 .loc 1 2117 23 is_stmt 0 view .LVU1413 4246 0098 0022 movs r2, #0 ARM GAS /tmp/ccEimIdZ.s page 214 4247 .LVL253: 2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4248 .loc 1 2117 23 view .LVU1414 4249 009a 80F84220 strb r2, [r0, #66] 2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4250 .loc 1 2120 7 is_stmt 1 view .LVU1415 2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4251 .loc 1 2120 23 is_stmt 0 view .LVU1416 4252 009e 436C ldr r3, [r0, #68] 4253 00a0 43F08003 orr r3, r3, #128 4254 00a4 4364 str r3, [r0, #68] 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4255 .loc 1 2123 7 is_stmt 1 view .LVU1417 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4256 .loc 1 2123 7 view .LVU1418 4257 00a6 80F84020 strb r2, [r0, #64] 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4258 .loc 1 2123 7 view .LVU1419 2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4259 .loc 1 2125 7 view .LVU1420 2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4260 .loc 1 2125 14 is_stmt 0 view .LVU1421 4261 00aa 0125 movs r5, #1 4262 00ac 13E0 b .L278 4263 .LVL254: 4264 .L288: 2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4265 .loc 1 2131 7 is_stmt 1 view .LVU1422 2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4266 .loc 1 2131 11 is_stmt 0 view .LVU1423 4267 00ae 2268 ldr r2, [r4] 2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4268 .loc 1 2131 27 view .LVU1424 4269 00b0 5368 ldr r3, [r2, #4] 4270 00b2 23F40043 bic r3, r3, #32768 4271 00b6 5360 str r3, [r2, #4] 2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4272 .loc 1 2134 7 is_stmt 1 view .LVU1425 2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4273 .loc 1 2134 7 view .LVU1426 4274 00b8 0023 movs r3, #0 4275 00ba 84F84030 strb r3, [r4, #64] 2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4276 .loc 1 2134 7 view .LVU1427 2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4277 .loc 1 2140 7 view .LVU1428 4278 00be 4FF40041 mov r1, #32768 4279 00c2 2046 mov r0, r4 4280 .LVL255: 2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4281 .loc 1 2140 7 is_stmt 0 view .LVU1429 4282 00c4 FFF7FEFF bl I2C_Enable_IRQ 4283 .LVL256: 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4284 .loc 1 2143 7 is_stmt 1 view .LVU1430 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4285 .loc 1 2143 11 is_stmt 0 view .LVU1431 ARM GAS /tmp/ccEimIdZ.s page 215 4286 00c8 2268 ldr r2, [r4] 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4287 .loc 1 2143 27 view .LVU1432 4288 00ca 1368 ldr r3, [r2] 4289 00cc 43F48043 orr r3, r3, #16384 4290 00d0 1360 str r3, [r2] 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4291 .loc 1 2160 5 is_stmt 1 view .LVU1433 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4292 .loc 1 2160 12 is_stmt 0 view .LVU1434 4293 00d2 00E0 b .L278 4294 .LVL257: 4295 .L283: 2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4296 .loc 1 2164 12 view .LVU1435 4297 00d4 0225 movs r5, #2 4298 .LVL258: 4299 .L278: 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4300 .loc 1 2166 1 view .LVU1436 4301 00d6 2846 mov r0, r5 4302 00d8 38BD pop {r3, r4, r5, pc} 4303 .LVL259: 4304 .L284: 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4305 .loc 1 2085 5 view .LVU1437 4306 00da 0225 movs r5, #2 4307 00dc FBE7 b .L278 4308 .L290: 4309 00de 00BF .align 2 4310 .L289: 4311 00e0 0000FFFF .word -65536 4312 00e4 00000000 .word I2C_Slave_ISR_DMA 4313 00e8 00000000 .word I2C_DMASlaveTransmitCplt 4314 00ec 00000000 .word I2C_DMAError 4315 .cfi_endproc 4316 .LFE155: 4318 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4319 .align 1 4320 .global HAL_I2C_Slave_Receive_DMA 4321 .syntax unified 4322 .thumb 4323 .thumb_func 4324 .fpu fpv5-d16 4326 HAL_I2C_Slave_Receive_DMA: 4327 .LVL260: 4328 .LFB156: 2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4329 .loc 1 2177 1 is_stmt 1 view -0 4330 .cfi_startproc 4331 @ args = 0, pretend = 0, frame = 0 4332 @ frame_needed = 0, uses_anonymous_args = 0 2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4333 .loc 1 2177 1 is_stmt 0 view .LVU1439 4334 0000 38B5 push {r3, r4, r5, lr} 4335 .LCFI54: 4336 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccEimIdZ.s page 216 4337 .cfi_offset 3, -16 4338 .cfi_offset 4, -12 4339 .cfi_offset 5, -8 4340 .cfi_offset 14, -4 2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4341 .loc 1 2178 3 is_stmt 1 view .LVU1440 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4342 .loc 1 2180 3 view .LVU1441 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4343 .loc 1 2180 11 is_stmt 0 view .LVU1442 4344 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4345 0006 DBB2 uxtb r3, r3 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4346 .loc 1 2180 6 view .LVU1443 4347 0008 202B cmp r3, #32 4348 000a 65D1 bne .L297 4349 000c 0446 mov r4, r0 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4350 .loc 1 2182 5 is_stmt 1 view .LVU1444 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4351 .loc 1 2182 8 is_stmt 0 view .LVU1445 4352 000e 002A cmp r2, #0 4353 0010 18BF it ne 4354 0012 0029 cmpne r1, #0 4355 0014 3AD0 beq .L301 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4356 .loc 1 2188 5 is_stmt 1 view .LVU1446 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4357 .loc 1 2188 5 view .LVU1447 4358 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4359 001a 012B cmp r3, #1 4360 001c 5FD0 beq .L298 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4361 .loc 1 2188 5 discriminator 2 view .LVU1448 4362 001e 0123 movs r3, #1 4363 0020 80F84030 strb r3, [r0, #64] 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4364 .loc 1 2188 5 discriminator 2 view .LVU1449 2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4365 .loc 1 2190 5 discriminator 2 view .LVU1450 2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4366 .loc 1 2190 23 is_stmt 0 discriminator 2 view .LVU1451 4367 0024 2223 movs r3, #34 4368 0026 80F84130 strb r3, [r0, #65] 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4369 .loc 1 2191 5 is_stmt 1 discriminator 2 view .LVU1452 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4370 .loc 1 2191 23 is_stmt 0 discriminator 2 view .LVU1453 4371 002a 2023 movs r3, #32 4372 002c 80F84230 strb r3, [r0, #66] 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4373 .loc 1 2192 5 is_stmt 1 discriminator 2 view .LVU1454 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4374 .loc 1 2192 23 is_stmt 0 discriminator 2 view .LVU1455 4375 0030 0023 movs r3, #0 4376 0032 4364 str r3, [r0, #68] 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccEimIdZ.s page 217 4377 .loc 1 2195 5 is_stmt 1 discriminator 2 view .LVU1456 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4378 .loc 1 2195 23 is_stmt 0 discriminator 2 view .LVU1457 4379 0034 4162 str r1, [r0, #36] 2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4380 .loc 1 2196 5 is_stmt 1 discriminator 2 view .LVU1458 2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4381 .loc 1 2196 23 is_stmt 0 discriminator 2 view .LVU1459 4382 0036 4285 strh r2, [r0, #42] @ movhi 2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4383 .loc 1 2197 5 is_stmt 1 discriminator 2 view .LVU1460 2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4384 .loc 1 2197 29 is_stmt 0 discriminator 2 view .LVU1461 4385 0038 438D ldrh r3, [r0, #42] 2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4386 .loc 1 2197 23 discriminator 2 view .LVU1462 4387 003a 0385 strh r3, [r0, #40] @ movhi 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4388 .loc 1 2198 5 is_stmt 1 discriminator 2 view .LVU1463 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4389 .loc 1 2198 23 is_stmt 0 discriminator 2 view .LVU1464 4390 003c 294B ldr r3, .L303 4391 003e C362 str r3, [r0, #44] 2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4392 .loc 1 2199 5 is_stmt 1 discriminator 2 view .LVU1465 2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4393 .loc 1 2199 23 is_stmt 0 discriminator 2 view .LVU1466 4394 0040 294B ldr r3, .L303+4 4395 0042 4363 str r3, [r0, #52] 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4396 .loc 1 2201 5 is_stmt 1 discriminator 2 view .LVU1467 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4397 .loc 1 2201 13 is_stmt 0 discriminator 2 view .LVU1468 4398 0044 C36B ldr r3, [r0, #60] 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4399 .loc 1 2201 8 discriminator 2 view .LVU1469 4400 0046 33B3 cbz r3, .L294 2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4401 .loc 1 2204 7 is_stmt 1 view .LVU1470 2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4402 .loc 1 2204 38 is_stmt 0 view .LVU1471 4403 0048 284A ldr r2, .L303+8 4404 .LVL261: 2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4405 .loc 1 2204 38 view .LVU1472 4406 004a DA63 str r2, [r3, #60] 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4407 .loc 1 2207 7 is_stmt 1 view .LVU1473 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4408 .loc 1 2207 11 is_stmt 0 view .LVU1474 4409 004c C36B ldr r3, [r0, #60] 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4410 .loc 1 2207 39 view .LVU1475 4411 004e 284A ldr r2, .L303+12 4412 0050 DA64 str r2, [r3, #76] 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4413 .loc 1 2210 7 is_stmt 1 view .LVU1476 ARM GAS /tmp/ccEimIdZ.s page 218 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4414 .loc 1 2210 11 is_stmt 0 view .LVU1477 4415 0052 C26B ldr r2, [r0, #60] 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4416 .loc 1 2210 42 view .LVU1478 4417 0054 0023 movs r3, #0 4418 0056 1364 str r3, [r2, #64] 2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4419 .loc 1 2211 7 is_stmt 1 view .LVU1479 2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4420 .loc 1 2211 11 is_stmt 0 view .LVU1480 4421 0058 C26B ldr r2, [r0, #60] 2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4422 .loc 1 2211 39 view .LVU1481 4423 005a 1365 str r3, [r2, #80] 2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4424 .loc 1 2214 7 is_stmt 1 view .LVU1482 2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4425 .loc 1 2214 69 is_stmt 0 view .LVU1483 4426 005c 0068 ldr r0, [r0] 4427 .LVL262: 2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4428 .loc 1 2214 23 view .LVU1484 4429 005e 238D ldrh r3, [r4, #40] 4430 0060 0A46 mov r2, r1 4431 0062 00F12401 add r1, r0, #36 4432 .LVL263: 2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4433 .loc 1 2214 23 view .LVU1485 4434 0066 E06B ldr r0, [r4, #60] 4435 0068 FFF7FEFF bl HAL_DMA_Start_IT 4436 .LVL264: 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4437 .loc 1 2231 5 is_stmt 1 view .LVU1486 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4438 .loc 1 2231 8 is_stmt 0 view .LVU1487 4439 006c 0546 mov r5, r0 4440 006e 00B3 cbz r0, .L302 2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4441 .loc 1 2251 7 is_stmt 1 view .LVU1488 2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4442 .loc 1 2251 23 is_stmt 0 view .LVU1489 4443 0070 2823 movs r3, #40 4444 0072 84F84130 strb r3, [r4, #65] 2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4445 .loc 1 2252 7 is_stmt 1 view .LVU1490 2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4446 .loc 1 2252 23 is_stmt 0 view .LVU1491 4447 0076 0022 movs r2, #0 4448 0078 84F84220 strb r2, [r4, #66] 2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4449 .loc 1 2255 7 is_stmt 1 view .LVU1492 2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4450 .loc 1 2255 23 is_stmt 0 view .LVU1493 4451 007c 636C ldr r3, [r4, #68] 4452 007e 43F01003 orr r3, r3, #16 4453 0082 6364 str r3, [r4, #68] ARM GAS /tmp/ccEimIdZ.s page 219 2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4454 .loc 1 2258 7 is_stmt 1 view .LVU1494 2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4455 .loc 1 2258 7 view .LVU1495 4456 0084 84F84020 strb r2, [r4, #64] 2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4457 .loc 1 2258 7 view .LVU1496 2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4458 .loc 1 2260 7 view .LVU1497 2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4459 .loc 1 2260 14 is_stmt 0 view .LVU1498 4460 0088 0125 movs r5, #1 4461 008a 26E0 b .L292 4462 .LVL265: 4463 .L301: 2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4464 .loc 1 2184 7 is_stmt 1 view .LVU1499 2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4465 .loc 1 2184 23 is_stmt 0 view .LVU1500 4466 008c 4FF40073 mov r3, #512 4467 0090 4364 str r3, [r0, #68] 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4468 .loc 1 2185 7 is_stmt 1 view .LVU1501 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4469 .loc 1 2185 15 is_stmt 0 view .LVU1502 4470 0092 0125 movs r5, #1 4471 0094 21E0 b .L292 4472 .L294: 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4473 .loc 1 2219 7 is_stmt 1 view .LVU1503 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4474 .loc 1 2219 23 is_stmt 0 view .LVU1504 4475 0096 2823 movs r3, #40 4476 0098 80F84130 strb r3, [r0, #65] 2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4477 .loc 1 2220 7 is_stmt 1 view .LVU1505 2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4478 .loc 1 2220 23 is_stmt 0 view .LVU1506 4479 009c 0022 movs r2, #0 4480 .LVL266: 2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4481 .loc 1 2220 23 view .LVU1507 4482 009e 80F84220 strb r2, [r0, #66] 2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4483 .loc 1 2223 7 is_stmt 1 view .LVU1508 2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4484 .loc 1 2223 23 is_stmt 0 view .LVU1509 4485 00a2 436C ldr r3, [r0, #68] 4486 00a4 43F08003 orr r3, r3, #128 4487 00a8 4364 str r3, [r0, #68] 2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4488 .loc 1 2226 7 is_stmt 1 view .LVU1510 2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4489 .loc 1 2226 7 view .LVU1511 4490 00aa 80F84020 strb r2, [r0, #64] 2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4491 .loc 1 2226 7 view .LVU1512 ARM GAS /tmp/ccEimIdZ.s page 220 2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4492 .loc 1 2228 7 view .LVU1513 2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4493 .loc 1 2228 14 is_stmt 0 view .LVU1514 4494 00ae 0125 movs r5, #1 4495 00b0 13E0 b .L292 4496 .LVL267: 4497 .L302: 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4498 .loc 1 2234 7 is_stmt 1 view .LVU1515 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4499 .loc 1 2234 11 is_stmt 0 view .LVU1516 4500 00b2 2268 ldr r2, [r4] 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4501 .loc 1 2234 27 view .LVU1517 4502 00b4 5368 ldr r3, [r2, #4] 4503 00b6 23F40043 bic r3, r3, #32768 4504 00ba 5360 str r3, [r2, #4] 2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4505 .loc 1 2237 7 is_stmt 1 view .LVU1518 2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4506 .loc 1 2237 7 view .LVU1519 4507 00bc 0023 movs r3, #0 4508 00be 84F84030 strb r3, [r4, #64] 2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4509 .loc 1 2237 7 view .LVU1520 2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4510 .loc 1 2243 7 view .LVU1521 4511 00c2 4FF40041 mov r1, #32768 4512 00c6 2046 mov r0, r4 4513 .LVL268: 2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4514 .loc 1 2243 7 is_stmt 0 view .LVU1522 4515 00c8 FFF7FEFF bl I2C_Enable_IRQ 4516 .LVL269: 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4517 .loc 1 2246 7 is_stmt 1 view .LVU1523 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4518 .loc 1 2246 11 is_stmt 0 view .LVU1524 4519 00cc 2268 ldr r2, [r4] 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4520 .loc 1 2246 27 view .LVU1525 4521 00ce 1368 ldr r3, [r2] 4522 00d0 43F40043 orr r3, r3, #32768 4523 00d4 1360 str r3, [r2] 2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4524 .loc 1 2263 5 is_stmt 1 view .LVU1526 2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4525 .loc 1 2263 12 is_stmt 0 view .LVU1527 4526 00d6 00E0 b .L292 4527 .LVL270: 4528 .L297: 2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4529 .loc 1 2267 12 view .LVU1528 4530 00d8 0225 movs r5, #2 4531 .LVL271: 4532 .L292: ARM GAS /tmp/ccEimIdZ.s page 221 2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4533 .loc 1 2269 1 view .LVU1529 4534 00da 2846 mov r0, r5 4535 00dc 38BD pop {r3, r4, r5, pc} 4536 .LVL272: 4537 .L298: 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4538 .loc 1 2188 5 view .LVU1530 4539 00de 0225 movs r5, #2 4540 00e0 FBE7 b .L292 4541 .L304: 4542 00e2 00BF .align 2 4543 .L303: 4544 00e4 0000FFFF .word -65536 4545 00e8 00000000 .word I2C_Slave_ISR_DMA 4546 00ec 00000000 .word I2C_DMASlaveReceiveCplt 4547 00f0 00000000 .word I2C_DMAError 4548 .cfi_endproc 4549 .LFE156: 4551 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 4552 .align 1 4553 .global HAL_I2C_Mem_Write 4554 .syntax unified 4555 .thumb 4556 .thumb_func 4557 .fpu fpv5-d16 4559 HAL_I2C_Mem_Write: 4560 .LVL273: 4561 .LFB157: 2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 4562 .loc 1 2284 1 is_stmt 1 view -0 4563 .cfi_startproc 4564 @ args = 12, pretend = 0, frame = 0 4565 @ frame_needed = 0, uses_anonymous_args = 0 2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 4566 .loc 1 2284 1 is_stmt 0 view .LVU1532 4567 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 4568 .LCFI55: 4569 .cfi_def_cfa_offset 36 4570 .cfi_offset 4, -36 4571 .cfi_offset 5, -32 4572 .cfi_offset 6, -28 4573 .cfi_offset 7, -24 4574 .cfi_offset 8, -20 4575 .cfi_offset 9, -16 4576 .cfi_offset 10, -12 4577 .cfi_offset 11, -8 4578 .cfi_offset 14, -4 4579 0004 83B0 sub sp, sp, #12 4580 .LCFI56: 4581 .cfi_def_cfa_offset 48 4582 0006 0D46 mov r5, r1 4583 0008 BDF834A0 ldrh r10, [sp, #52] 4584 000c 0E9F ldr r7, [sp, #56] 2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4585 .loc 1 2285 3 is_stmt 1 view .LVU1533 2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 222 4586 .loc 1 2288 3 view .LVU1534 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4587 .loc 1 2290 3 view .LVU1535 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4588 .loc 1 2290 11 is_stmt 0 view .LVU1536 4589 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 4590 .LVL274: 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4591 .loc 1 2290 11 view .LVU1537 4592 0012 C9B2 uxtb r1, r1 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4593 .loc 1 2290 6 view .LVU1538 4594 0014 2029 cmp r1, #32 4595 0016 40F0BC80 bne .L314 4596 001a 0446 mov r4, r0 4597 001c 9046 mov r8, r2 4598 001e 9946 mov r9, r3 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4599 .loc 1 2292 5 is_stmt 1 view .LVU1539 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4600 .loc 1 2292 8 is_stmt 0 view .LVU1540 4601 0020 0C9B ldr r3, [sp, #48] 4602 .LVL275: 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4603 .loc 1 2292 8 view .LVU1541 4604 0022 BAF1000F cmp r10, #0 4605 0026 18BF it ne 4606 0028 002B cmpne r3, #0 4607 002a 16D0 beq .L321 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4608 .loc 1 2299 5 is_stmt 1 view .LVU1542 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4609 .loc 1 2299 5 view .LVU1543 4610 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4611 0030 012B cmp r3, #1 4612 0032 00F0B280 beq .L315 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4613 .loc 1 2299 5 discriminator 2 view .LVU1544 4614 0036 4FF0010B mov fp, #1 4615 003a 80F840B0 strb fp, [r0, #64] 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4616 .loc 1 2299 5 discriminator 2 view .LVU1545 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4617 .loc 1 2302 5 discriminator 2 view .LVU1546 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4618 .loc 1 2302 17 is_stmt 0 discriminator 2 view .LVU1547 4619 003e FFF7FEFF bl HAL_GetTick 4620 .LVL276: 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4621 .loc 1 2302 17 discriminator 2 view .LVU1548 4622 0042 0646 mov r6, r0 4623 .LVL277: 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4624 .loc 1 2304 5 is_stmt 1 discriminator 2 view .LVU1549 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4625 .loc 1 2304 9 is_stmt 0 discriminator 2 view .LVU1550 4626 0044 0090 str r0, [sp] ARM GAS /tmp/ccEimIdZ.s page 223 4627 0046 1923 movs r3, #25 4628 0048 5A46 mov r2, fp 4629 004a 4FF40041 mov r1, #32768 4630 004e 2046 mov r0, r4 4631 .LVL278: 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4632 .loc 1 2304 9 discriminator 2 view .LVU1551 4633 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4634 .LVL279: 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4635 .loc 1 2304 8 discriminator 2 view .LVU1552 4636 0054 30B1 cbz r0, .L322 2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4637 .loc 1 2306 14 view .LVU1553 4638 0056 0120 movs r0, #1 4639 0058 9CE0 b .L306 4640 .LVL280: 4641 .L321: 2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4642 .loc 1 2294 7 is_stmt 1 view .LVU1554 2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4643 .loc 1 2294 23 is_stmt 0 view .LVU1555 4644 005a 4FF40073 mov r3, #512 4645 005e 4364 str r3, [r0, #68] 2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4646 .loc 1 2295 7 is_stmt 1 view .LVU1556 2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4647 .loc 1 2295 15 is_stmt 0 view .LVU1557 4648 0060 0120 movs r0, #1 4649 .LVL281: 2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4650 .loc 1 2295 15 view .LVU1558 4651 0062 97E0 b .L306 4652 .LVL282: 4653 .L322: 2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4654 .loc 1 2309 5 is_stmt 1 view .LVU1559 2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4655 .loc 1 2309 21 is_stmt 0 view .LVU1560 4656 0064 2123 movs r3, #33 4657 0066 84F84130 strb r3, [r4, #65] 2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4658 .loc 1 2310 5 is_stmt 1 view .LVU1561 2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4659 .loc 1 2310 21 is_stmt 0 view .LVU1562 4660 006a 4023 movs r3, #64 4661 006c 84F84230 strb r3, [r4, #66] 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4662 .loc 1 2311 5 is_stmt 1 view .LVU1563 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4663 .loc 1 2311 21 is_stmt 0 view .LVU1564 4664 0070 0023 movs r3, #0 4665 0072 6364 str r3, [r4, #68] 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4666 .loc 1 2314 5 is_stmt 1 view .LVU1565 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4667 .loc 1 2314 21 is_stmt 0 view .LVU1566 ARM GAS /tmp/ccEimIdZ.s page 224 4668 0074 0C9A ldr r2, [sp, #48] 4669 0076 6262 str r2, [r4, #36] 2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 4670 .loc 1 2315 5 is_stmt 1 view .LVU1567 2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 4671 .loc 1 2315 21 is_stmt 0 view .LVU1568 4672 0078 A4F82AA0 strh r10, [r4, #42] @ movhi 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4673 .loc 1 2316 5 is_stmt 1 view .LVU1569 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4674 .loc 1 2316 21 is_stmt 0 view .LVU1570 4675 007c 6363 str r3, [r4, #52] 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4676 .loc 1 2319 5 is_stmt 1 view .LVU1571 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4677 .loc 1 2319 9 is_stmt 0 view .LVU1572 4678 007e 0196 str r6, [sp, #4] 4679 0080 0097 str r7, [sp] 4680 0082 4B46 mov r3, r9 4681 0084 4246 mov r2, r8 4682 0086 2946 mov r1, r5 4683 0088 2046 mov r0, r4 4684 008a FFF7FEFF bl I2C_RequestMemoryWrite 4685 .LVL283: 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4686 .loc 1 2319 8 view .LVU1573 4687 008e 70B9 cbnz r0, .L323 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4688 .loc 1 2327 5 is_stmt 1 view .LVU1574 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4689 .loc 1 2327 13 is_stmt 0 view .LVU1575 4690 0090 638D ldrh r3, [r4, #42] 4691 0092 9BB2 uxth r3, r3 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4692 .loc 1 2327 8 view .LVU1576 4693 0094 FF2B cmp r3, #255 4694 0096 0FD9 bls .L309 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 4695 .loc 1 2329 7 is_stmt 1 view .LVU1577 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 4696 .loc 1 2329 22 is_stmt 0 view .LVU1578 4697 0098 FF22 movs r2, #255 4698 009a 2285 strh r2, [r4, #40] @ movhi 2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4699 .loc 1 2330 7 is_stmt 1 view .LVU1579 4700 009c 0023 movs r3, #0 4701 009e 0093 str r3, [sp] 4702 00a0 4FF08073 mov r3, #16777216 4703 00a4 2946 mov r1, r5 4704 00a6 2046 mov r0, r4 4705 00a8 FFF7FEFF bl I2C_TransferConfig 4706 .LVL284: 4707 00ac 21E0 b .L313 4708 .L323: 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4709 .loc 1 2322 7 view .LVU1580 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccEimIdZ.s page 225 4710 .loc 1 2322 7 view .LVU1581 4711 00ae 0023 movs r3, #0 4712 00b0 84F84030 strb r3, [r4, #64] 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4713 .loc 1 2322 7 view .LVU1582 2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4714 .loc 1 2323 7 view .LVU1583 2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4715 .loc 1 2323 14 is_stmt 0 view .LVU1584 4716 00b4 5846 mov r0, fp 4717 00b6 6DE0 b .L306 4718 .L309: 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4719 .loc 1 2334 7 is_stmt 1 view .LVU1585 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4720 .loc 1 2334 28 is_stmt 0 view .LVU1586 4721 00b8 628D ldrh r2, [r4, #42] 4722 00ba 92B2 uxth r2, r2 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4723 .loc 1 2334 22 view .LVU1587 4724 00bc 2285 strh r2, [r4, #40] @ movhi 2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4725 .loc 1 2335 7 is_stmt 1 view .LVU1588 4726 00be 0023 movs r3, #0 4727 00c0 0093 str r3, [sp] 4728 00c2 4FF00073 mov r3, #33554432 4729 00c6 D2B2 uxtb r2, r2 4730 00c8 2946 mov r1, r5 4731 00ca 2046 mov r0, r4 4732 00cc FFF7FEFF bl I2C_TransferConfig 4733 .LVL285: 4734 00d0 0FE0 b .L313 4735 .L312: 2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 4736 .loc 1 2370 11 view .LVU1589 2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 4737 .loc 1 2370 32 is_stmt 0 view .LVU1590 4738 00d2 628D ldrh r2, [r4, #42] 4739 00d4 92B2 uxth r2, r2 2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 4740 .loc 1 2370 26 view .LVU1591 4741 00d6 2285 strh r2, [r4, #40] @ movhi 2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4742 .loc 1 2371 11 is_stmt 1 view .LVU1592 4743 00d8 0023 movs r3, #0 4744 00da 0093 str r3, [sp] 4745 00dc 4FF00073 mov r3, #33554432 4746 00e0 D2B2 uxtb r2, r2 4747 00e2 2946 mov r1, r5 4748 00e4 2046 mov r0, r4 4749 00e6 FFF7FEFF bl I2C_TransferConfig 4750 .LVL286: 4751 .L311: 2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4752 .loc 1 2376 11 view .LVU1593 2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4753 .loc 1 2376 16 is_stmt 0 view .LVU1594 ARM GAS /tmp/ccEimIdZ.s page 226 4754 00ea 638D ldrh r3, [r4, #42] 4755 00ec 9BB2 uxth r3, r3 2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4756 .loc 1 2376 5 view .LVU1595 4757 00ee 002B cmp r3, #0 4758 00f0 33D0 beq .L324 4759 .L313: 2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4760 .loc 1 2338 5 is_stmt 1 view .LVU1596 2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4761 .loc 1 2341 7 view .LVU1597 2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4762 .loc 1 2341 11 is_stmt 0 view .LVU1598 4763 00f2 3246 mov r2, r6 4764 00f4 3946 mov r1, r7 4765 00f6 2046 mov r0, r4 4766 00f8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 4767 .LVL287: 2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4768 .loc 1 2341 10 view .LVU1599 4769 00fc 0028 cmp r0, #0 4770 00fe 4ED1 bne .L317 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4771 .loc 1 2347 7 is_stmt 1 view .LVU1600 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4772 .loc 1 2347 35 is_stmt 0 view .LVU1601 4773 0100 626A ldr r2, [r4, #36] 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4774 .loc 1 2347 11 view .LVU1602 4775 0102 2368 ldr r3, [r4] 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4776 .loc 1 2347 30 view .LVU1603 4777 0104 1278 ldrb r2, [r2] @ zero_extendqisi2 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4778 .loc 1 2347 28 view .LVU1604 4779 0106 9A62 str r2, [r3, #40] 2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4780 .loc 1 2350 7 is_stmt 1 view .LVU1605 2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4781 .loc 1 2350 11 is_stmt 0 view .LVU1606 4782 0108 636A ldr r3, [r4, #36] 2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4783 .loc 1 2350 21 view .LVU1607 4784 010a 0133 adds r3, r3, #1 4785 010c 6362 str r3, [r4, #36] 2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4786 .loc 1 2352 7 is_stmt 1 view .LVU1608 2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4787 .loc 1 2352 11 is_stmt 0 view .LVU1609 4788 010e 638D ldrh r3, [r4, #42] 4789 0110 9BB2 uxth r3, r3 2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4790 .loc 1 2352 22 view .LVU1610 4791 0112 013B subs r3, r3, #1 4792 0114 9BB2 uxth r3, r3 4793 0116 6385 strh r3, [r4, #42] @ movhi 2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 227 4794 .loc 1 2353 7 is_stmt 1 view .LVU1611 2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4795 .loc 1 2353 11 is_stmt 0 view .LVU1612 4796 0118 238D ldrh r3, [r4, #40] 2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4797 .loc 1 2353 21 view .LVU1613 4798 011a 013B subs r3, r3, #1 4799 011c 9BB2 uxth r3, r3 4800 011e 2385 strh r3, [r4, #40] @ movhi 2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4801 .loc 1 2355 7 is_stmt 1 view .LVU1614 2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4802 .loc 1 2355 16 is_stmt 0 view .LVU1615 4803 0120 628D ldrh r2, [r4, #42] 4804 0122 92B2 uxth r2, r2 2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4805 .loc 1 2355 10 view .LVU1616 4806 0124 002A cmp r2, #0 4807 0126 E0D0 beq .L311 2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4808 .loc 1 2355 35 discriminator 1 view .LVU1617 4809 0128 002B cmp r3, #0 4810 012a DED1 bne .L311 2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4811 .loc 1 2358 9 is_stmt 1 view .LVU1618 2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4812 .loc 1 2358 13 is_stmt 0 view .LVU1619 4813 012c 0096 str r6, [sp] 4814 012e 3B46 mov r3, r7 4815 0130 0022 movs r2, #0 4816 0132 8021 movs r1, #128 4817 0134 2046 mov r0, r4 4818 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4819 .LVL288: 2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4820 .loc 1 2358 12 view .LVU1620 4821 013a 90BB cbnz r0, .L318 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4822 .loc 1 2363 9 is_stmt 1 view .LVU1621 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4823 .loc 1 2363 17 is_stmt 0 view .LVU1622 4824 013c 638D ldrh r3, [r4, #42] 4825 013e 9BB2 uxth r3, r3 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4826 .loc 1 2363 12 view .LVU1623 4827 0140 FF2B cmp r3, #255 4828 0142 C6D9 bls .L312 2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 4829 .loc 1 2365 11 is_stmt 1 view .LVU1624 2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STA 4830 .loc 1 2365 26 is_stmt 0 view .LVU1625 4831 0144 FF22 movs r2, #255 4832 0146 2285 strh r2, [r4, #40] @ movhi 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4833 .loc 1 2366 11 is_stmt 1 view .LVU1626 4834 0148 0023 movs r3, #0 4835 014a 0093 str r3, [sp] ARM GAS /tmp/ccEimIdZ.s page 228 4836 014c 4FF08073 mov r3, #16777216 4837 0150 2946 mov r1, r5 4838 0152 2046 mov r0, r4 4839 0154 FFF7FEFF bl I2C_TransferConfig 4840 .LVL289: 4841 0158 C7E7 b .L311 4842 .L324: 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4843 .loc 1 2380 5 view .LVU1627 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4844 .loc 1 2380 9 is_stmt 0 view .LVU1628 4845 015a 3246 mov r2, r6 4846 015c 3946 mov r1, r7 4847 015e 2046 mov r0, r4 4848 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 4849 .LVL290: 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4850 .loc 1 2380 8 view .LVU1629 4851 0164 F8B9 cbnz r0, .L319 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4852 .loc 1 2386 5 is_stmt 1 view .LVU1630 4853 0166 2368 ldr r3, [r4] 4854 0168 2022 movs r2, #32 4855 016a DA61 str r2, [r3, #28] 2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4856 .loc 1 2389 5 view .LVU1631 4857 016c 2168 ldr r1, [r4] 4858 016e 4B68 ldr r3, [r1, #4] 4859 0170 23F0FF73 bic r3, r3, #33423360 4860 0174 23F48B33 bic r3, r3, #71168 4861 0178 23F4FF73 bic r3, r3, #510 4862 017c 23F00103 bic r3, r3, #1 4863 0180 4B60 str r3, [r1, #4] 2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4864 .loc 1 2391 5 view .LVU1632 2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4865 .loc 1 2391 17 is_stmt 0 view .LVU1633 4866 0182 84F84120 strb r2, [r4, #65] 2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4867 .loc 1 2392 5 is_stmt 1 view .LVU1634 2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4868 .loc 1 2392 17 is_stmt 0 view .LVU1635 4869 0186 0023 movs r3, #0 4870 0188 84F84230 strb r3, [r4, #66] 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4871 .loc 1 2395 5 is_stmt 1 view .LVU1636 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4872 .loc 1 2395 5 view .LVU1637 4873 018c 84F84030 strb r3, [r4, #64] 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4874 .loc 1 2395 5 view .LVU1638 2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4875 .loc 1 2397 5 view .LVU1639 2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4876 .loc 1 2397 12 is_stmt 0 view .LVU1640 4877 0190 00E0 b .L306 4878 .LVL291: ARM GAS /tmp/ccEimIdZ.s page 229 4879 .L314: 2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4880 .loc 1 2401 12 view .LVU1641 4881 0192 0220 movs r0, #2 4882 .LVL292: 4883 .L306: 2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4884 .loc 1 2403 1 view .LVU1642 4885 0194 03B0 add sp, sp, #12 4886 .LCFI57: 4887 .cfi_remember_state 4888 .cfi_def_cfa_offset 36 4889 @ sp needed 4890 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 4891 .LVL293: 4892 .L315: 4893 .LCFI58: 4894 .cfi_restore_state 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4895 .loc 1 2299 5 view .LVU1643 4896 019a 0220 movs r0, #2 4897 .LVL294: 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4898 .loc 1 2299 5 view .LVU1644 4899 019c FAE7 b .L306 4900 .LVL295: 4901 .L317: 2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4902 .loc 1 2343 16 view .LVU1645 4903 019e 0120 movs r0, #1 4904 01a0 F8E7 b .L306 4905 .L318: 2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4906 .loc 1 2360 18 view .LVU1646 4907 01a2 0120 movs r0, #1 4908 01a4 F6E7 b .L306 4909 .L319: 2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4910 .loc 1 2382 14 view .LVU1647 4911 01a6 0120 movs r0, #1 4912 01a8 F4E7 b .L306 4913 .cfi_endproc 4914 .LFE157: 4916 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 4917 .align 1 4918 .global HAL_I2C_Mem_Read 4919 .syntax unified 4920 .thumb 4921 .thumb_func 4922 .fpu fpv5-d16 4924 HAL_I2C_Mem_Read: 4925 .LVL296: 4926 .LFB158: 2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 4927 .loc 1 2419 1 is_stmt 1 view -0 4928 .cfi_startproc 4929 @ args = 12, pretend = 0, frame = 0 ARM GAS /tmp/ccEimIdZ.s page 230 4930 @ frame_needed = 0, uses_anonymous_args = 0 2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 4931 .loc 1 2419 1 is_stmt 0 view .LVU1649 4932 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 4933 .LCFI59: 4934 .cfi_def_cfa_offset 36 4935 .cfi_offset 4, -36 4936 .cfi_offset 5, -32 4937 .cfi_offset 6, -28 4938 .cfi_offset 7, -24 4939 .cfi_offset 8, -20 4940 .cfi_offset 9, -16 4941 .cfi_offset 10, -12 4942 .cfi_offset 11, -8 4943 .cfi_offset 14, -4 4944 0004 83B0 sub sp, sp, #12 4945 .LCFI60: 4946 .cfi_def_cfa_offset 48 4947 0006 0D46 mov r5, r1 4948 0008 BDF834A0 ldrh r10, [sp, #52] 4949 000c 0E9F ldr r7, [sp, #56] 2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4950 .loc 1 2420 3 is_stmt 1 view .LVU1650 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4951 .loc 1 2423 3 view .LVU1651 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4952 .loc 1 2425 3 view .LVU1652 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4953 .loc 1 2425 11 is_stmt 0 view .LVU1653 4954 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 4955 .LVL297: 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4956 .loc 1 2425 11 view .LVU1654 4957 0012 C9B2 uxtb r1, r1 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4958 .loc 1 2425 6 view .LVU1655 4959 0014 2029 cmp r1, #32 4960 0016 40F0BD80 bne .L334 4961 001a 0446 mov r4, r0 4962 001c 9046 mov r8, r2 4963 001e 9946 mov r9, r3 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4964 .loc 1 2427 5 is_stmt 1 view .LVU1656 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4965 .loc 1 2427 8 is_stmt 0 view .LVU1657 4966 0020 0C9B ldr r3, [sp, #48] 4967 .LVL298: 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4968 .loc 1 2427 8 view .LVU1658 4969 0022 BAF1000F cmp r10, #0 4970 0026 18BF it ne 4971 0028 002B cmpne r3, #0 4972 002a 16D0 beq .L341 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4973 .loc 1 2434 5 is_stmt 1 view .LVU1659 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4974 .loc 1 2434 5 view .LVU1660 ARM GAS /tmp/ccEimIdZ.s page 231 4975 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4976 0030 012B cmp r3, #1 4977 0032 00F0B380 beq .L335 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4978 .loc 1 2434 5 discriminator 2 view .LVU1661 4979 0036 4FF0010B mov fp, #1 4980 003a 80F840B0 strb fp, [r0, #64] 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4981 .loc 1 2434 5 discriminator 2 view .LVU1662 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4982 .loc 1 2437 5 discriminator 2 view .LVU1663 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4983 .loc 1 2437 17 is_stmt 0 discriminator 2 view .LVU1664 4984 003e FFF7FEFF bl HAL_GetTick 4985 .LVL299: 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4986 .loc 1 2437 17 discriminator 2 view .LVU1665 4987 0042 0646 mov r6, r0 4988 .LVL300: 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4989 .loc 1 2439 5 is_stmt 1 discriminator 2 view .LVU1666 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4990 .loc 1 2439 9 is_stmt 0 discriminator 2 view .LVU1667 4991 0044 0090 str r0, [sp] 4992 0046 1923 movs r3, #25 4993 0048 5A46 mov r2, fp 4994 004a 4FF40041 mov r1, #32768 4995 004e 2046 mov r0, r4 4996 .LVL301: 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4997 .loc 1 2439 9 discriminator 2 view .LVU1668 4998 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4999 .LVL302: 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5000 .loc 1 2439 8 discriminator 2 view .LVU1669 5001 0054 30B1 cbz r0, .L342 2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5002 .loc 1 2441 14 view .LVU1670 5003 0056 0120 movs r0, #1 5004 0058 9DE0 b .L326 5005 .LVL303: 5006 .L341: 2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5007 .loc 1 2429 7 is_stmt 1 view .LVU1671 2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5008 .loc 1 2429 23 is_stmt 0 view .LVU1672 5009 005a 4FF40073 mov r3, #512 5010 005e 4364 str r3, [r0, #68] 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5011 .loc 1 2430 7 is_stmt 1 view .LVU1673 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5012 .loc 1 2430 15 is_stmt 0 view .LVU1674 5013 0060 0120 movs r0, #1 5014 .LVL304: 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5015 .loc 1 2430 15 view .LVU1675 5016 0062 98E0 b .L326 ARM GAS /tmp/ccEimIdZ.s page 232 5017 .LVL305: 5018 .L342: 2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5019 .loc 1 2444 5 is_stmt 1 view .LVU1676 2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5020 .loc 1 2444 21 is_stmt 0 view .LVU1677 5021 0064 2223 movs r3, #34 5022 0066 84F84130 strb r3, [r4, #65] 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5023 .loc 1 2445 5 is_stmt 1 view .LVU1678 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5024 .loc 1 2445 21 is_stmt 0 view .LVU1679 5025 006a 4023 movs r3, #64 5026 006c 84F84230 strb r3, [r4, #66] 2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5027 .loc 1 2446 5 is_stmt 1 view .LVU1680 2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5028 .loc 1 2446 21 is_stmt 0 view .LVU1681 5029 0070 0023 movs r3, #0 5030 0072 6364 str r3, [r4, #68] 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5031 .loc 1 2449 5 is_stmt 1 view .LVU1682 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5032 .loc 1 2449 21 is_stmt 0 view .LVU1683 5033 0074 0C9A ldr r2, [sp, #48] 5034 0076 6262 str r2, [r4, #36] 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5035 .loc 1 2450 5 is_stmt 1 view .LVU1684 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5036 .loc 1 2450 21 is_stmt 0 view .LVU1685 5037 0078 A4F82AA0 strh r10, [r4, #42] @ movhi 2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5038 .loc 1 2451 5 is_stmt 1 view .LVU1686 2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5039 .loc 1 2451 21 is_stmt 0 view .LVU1687 5040 007c 6363 str r3, [r4, #52] 2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5041 .loc 1 2454 5 is_stmt 1 view .LVU1688 2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5042 .loc 1 2454 9 is_stmt 0 view .LVU1689 5043 007e 0196 str r6, [sp, #4] 5044 0080 0097 str r7, [sp] 5045 0082 4B46 mov r3, r9 5046 0084 4246 mov r2, r8 5047 0086 2946 mov r1, r5 5048 0088 2046 mov r0, r4 5049 008a FFF7FEFF bl I2C_RequestMemoryRead 5050 .LVL306: 2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5051 .loc 1 2454 8 view .LVU1690 5052 008e 70B9 cbnz r0, .L343 2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5053 .loc 1 2463 5 is_stmt 1 view .LVU1691 2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5054 .loc 1 2463 13 is_stmt 0 view .LVU1692 5055 0090 638D ldrh r3, [r4, #42] 5056 0092 9BB2 uxth r3, r3 ARM GAS /tmp/ccEimIdZ.s page 233 2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5057 .loc 1 2463 8 view .LVU1693 5058 0094 FF2B cmp r3, #255 5059 0096 0FD9 bls .L329 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 5060 .loc 1 2465 7 is_stmt 1 view .LVU1694 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_S 5061 .loc 1 2465 22 is_stmt 0 view .LVU1695 5062 0098 FF22 movs r2, #255 5063 009a 2285 strh r2, [r4, #40] @ movhi 2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5064 .loc 1 2466 7 is_stmt 1 view .LVU1696 5065 009c 434B ldr r3, .L345 5066 009e 0093 str r3, [sp] 5067 00a0 4FF08073 mov r3, #16777216 5068 00a4 2946 mov r1, r5 5069 00a6 2046 mov r0, r4 5070 00a8 FFF7FEFF bl I2C_TransferConfig 5071 .LVL307: 5072 00ac 21E0 b .L333 5073 .L343: 2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5074 .loc 1 2457 7 view .LVU1697 2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5075 .loc 1 2457 7 view .LVU1698 5076 00ae 0023 movs r3, #0 5077 00b0 84F84030 strb r3, [r4, #64] 2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5078 .loc 1 2457 7 view .LVU1699 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5079 .loc 1 2458 7 view .LVU1700 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5080 .loc 1 2458 14 is_stmt 0 view .LVU1701 5081 00b4 5846 mov r0, fp 5082 00b6 6EE0 b .L326 5083 .L329: 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 5084 .loc 1 2470 7 is_stmt 1 view .LVU1702 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 5085 .loc 1 2470 28 is_stmt 0 view .LVU1703 5086 00b8 628D ldrh r2, [r4, #42] 5087 00ba 92B2 uxth r2, r2 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_ 5088 .loc 1 2470 22 view .LVU1704 5089 00bc 2285 strh r2, [r4, #40] @ movhi 2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5090 .loc 1 2471 7 is_stmt 1 view .LVU1705 5091 00be 3B4B ldr r3, .L345 5092 00c0 0093 str r3, [sp] 5093 00c2 4FF00073 mov r3, #33554432 5094 00c6 D2B2 uxtb r2, r2 5095 00c8 2946 mov r1, r5 5096 00ca 2046 mov r0, r4 5097 00cc FFF7FEFF bl I2C_TransferConfig 5098 .LVL308: 5099 00d0 0FE0 b .L333 5100 .L332: ARM GAS /tmp/ccEimIdZ.s page 234 2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 5101 .loc 1 2506 11 view .LVU1706 2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 5102 .loc 1 2506 32 is_stmt 0 view .LVU1707 5103 00d2 628D ldrh r2, [r4, #42] 5104 00d4 92B2 uxth r2, r2 2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_ST 5105 .loc 1 2506 26 view .LVU1708 5106 00d6 2285 strh r2, [r4, #40] @ movhi 2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5107 .loc 1 2507 11 is_stmt 1 view .LVU1709 5108 00d8 0023 movs r3, #0 5109 00da 0093 str r3, [sp] 5110 00dc 4FF00073 mov r3, #33554432 5111 00e0 D2B2 uxtb r2, r2 5112 00e2 2946 mov r1, r5 5113 00e4 2046 mov r0, r4 5114 00e6 FFF7FEFF bl I2C_TransferConfig 5115 .LVL309: 5116 .L331: 2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5117 .loc 1 2511 11 view .LVU1710 2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5118 .loc 1 2511 16 is_stmt 0 view .LVU1711 5119 00ea 638D ldrh r3, [r4, #42] 5120 00ec 9BB2 uxth r3, r3 2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5121 .loc 1 2511 5 view .LVU1712 5122 00ee 002B cmp r3, #0 5123 00f0 34D0 beq .L344 5124 .L333: 2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5125 .loc 1 2474 5 is_stmt 1 view .LVU1713 2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5126 .loc 1 2477 7 view .LVU1714 2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5127 .loc 1 2477 11 is_stmt 0 view .LVU1715 5128 00f2 0096 str r6, [sp] 5129 00f4 3B46 mov r3, r7 5130 00f6 0022 movs r2, #0 5131 00f8 0421 movs r1, #4 5132 00fa 2046 mov r0, r4 5133 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5134 .LVL310: 2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5135 .loc 1 2477 10 view .LVU1716 5136 0100 0028 cmp r0, #0 5137 0102 4DD1 bne .L337 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5138 .loc 1 2483 7 is_stmt 1 view .LVU1717 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5139 .loc 1 2483 38 is_stmt 0 view .LVU1718 5140 0104 2368 ldr r3, [r4] 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5141 .loc 1 2483 48 view .LVU1719 5142 0106 5A6A ldr r2, [r3, #36] 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 235 5143 .loc 1 2483 12 view .LVU1720 5144 0108 636A ldr r3, [r4, #36] 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5145 .loc 1 2483 23 view .LVU1721 5146 010a 1A70 strb r2, [r3] 2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5147 .loc 1 2486 7 is_stmt 1 view .LVU1722 2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5148 .loc 1 2486 11 is_stmt 0 view .LVU1723 5149 010c 636A ldr r3, [r4, #36] 2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5150 .loc 1 2486 21 view .LVU1724 5151 010e 0133 adds r3, r3, #1 5152 0110 6362 str r3, [r4, #36] 2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5153 .loc 1 2488 7 is_stmt 1 view .LVU1725 2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5154 .loc 1 2488 11 is_stmt 0 view .LVU1726 5155 0112 228D ldrh r2, [r4, #40] 2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5156 .loc 1 2488 21 view .LVU1727 5157 0114 013A subs r2, r2, #1 5158 0116 92B2 uxth r2, r2 5159 0118 2285 strh r2, [r4, #40] @ movhi 2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5160 .loc 1 2489 7 is_stmt 1 view .LVU1728 2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5161 .loc 1 2489 11 is_stmt 0 view .LVU1729 5162 011a 638D ldrh r3, [r4, #42] 5163 011c 9BB2 uxth r3, r3 2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5164 .loc 1 2489 22 view .LVU1730 5165 011e 013B subs r3, r3, #1 5166 0120 9BB2 uxth r3, r3 5167 0122 6385 strh r3, [r4, #42] @ movhi 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5168 .loc 1 2491 7 is_stmt 1 view .LVU1731 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5169 .loc 1 2491 16 is_stmt 0 view .LVU1732 5170 0124 638D ldrh r3, [r4, #42] 5171 0126 9BB2 uxth r3, r3 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5172 .loc 1 2491 10 view .LVU1733 5173 0128 002B cmp r3, #0 5174 012a DED0 beq .L331 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5175 .loc 1 2491 35 discriminator 1 view .LVU1734 5176 012c 002A cmp r2, #0 5177 012e DCD1 bne .L331 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5178 .loc 1 2494 9 is_stmt 1 view .LVU1735 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5179 .loc 1 2494 13 is_stmt 0 view .LVU1736 5180 0130 0096 str r6, [sp] 5181 0132 3B46 mov r3, r7 5182 0134 8021 movs r1, #128 5183 0136 2046 mov r0, r4 ARM GAS /tmp/ccEimIdZ.s page 236 5184 0138 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5185 .LVL311: 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5186 .loc 1 2494 12 view .LVU1737 5187 013c 90BB cbnz r0, .L338 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5188 .loc 1 2499 9 is_stmt 1 view .LVU1738 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5189 .loc 1 2499 17 is_stmt 0 view .LVU1739 5190 013e 638D ldrh r3, [r4, #42] 5191 0140 9BB2 uxth r3, r3 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5192 .loc 1 2499 12 view .LVU1740 5193 0142 FF2B cmp r3, #255 5194 0144 C5D9 bls .L332 2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST 5195 .loc 1 2501 11 is_stmt 1 view .LVU1741 2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_ST 5196 .loc 1 2501 26 is_stmt 0 view .LVU1742 5197 0146 FF22 movs r2, #255 5198 0148 2285 strh r2, [r4, #40] @ movhi 2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5199 .loc 1 2502 11 is_stmt 1 view .LVU1743 5200 014a 0023 movs r3, #0 5201 014c 0093 str r3, [sp] 5202 014e 4FF08073 mov r3, #16777216 5203 0152 2946 mov r1, r5 5204 0154 2046 mov r0, r4 5205 0156 FFF7FEFF bl I2C_TransferConfig 5206 .LVL312: 5207 015a C6E7 b .L331 5208 .L344: 2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5209 .loc 1 2515 5 view .LVU1744 2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5210 .loc 1 2515 9 is_stmt 0 view .LVU1745 5211 015c 3246 mov r2, r6 5212 015e 3946 mov r1, r7 5213 0160 2046 mov r0, r4 5214 0162 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5215 .LVL313: 2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5216 .loc 1 2515 8 view .LVU1746 5217 0166 F8B9 cbnz r0, .L339 2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5218 .loc 1 2521 5 is_stmt 1 view .LVU1747 5219 0168 2368 ldr r3, [r4] 5220 016a 2022 movs r2, #32 5221 016c DA61 str r2, [r3, #28] 2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5222 .loc 1 2524 5 view .LVU1748 5223 016e 2168 ldr r1, [r4] 5224 0170 4B68 ldr r3, [r1, #4] 5225 0172 23F0FF73 bic r3, r3, #33423360 5226 0176 23F48B33 bic r3, r3, #71168 5227 017a 23F4FF73 bic r3, r3, #510 5228 017e 23F00103 bic r3, r3, #1 ARM GAS /tmp/ccEimIdZ.s page 237 5229 0182 4B60 str r3, [r1, #4] 2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5230 .loc 1 2526 5 view .LVU1749 2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5231 .loc 1 2526 17 is_stmt 0 view .LVU1750 5232 0184 84F84120 strb r2, [r4, #65] 2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5233 .loc 1 2527 5 is_stmt 1 view .LVU1751 2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5234 .loc 1 2527 17 is_stmt 0 view .LVU1752 5235 0188 0023 movs r3, #0 5236 018a 84F84230 strb r3, [r4, #66] 2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5237 .loc 1 2530 5 is_stmt 1 view .LVU1753 2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5238 .loc 1 2530 5 view .LVU1754 5239 018e 84F84030 strb r3, [r4, #64] 2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5240 .loc 1 2530 5 view .LVU1755 2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5241 .loc 1 2532 5 view .LVU1756 2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5242 .loc 1 2532 12 is_stmt 0 view .LVU1757 5243 0192 00E0 b .L326 5244 .LVL314: 5245 .L334: 2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5246 .loc 1 2536 12 view .LVU1758 5247 0194 0220 movs r0, #2 5248 .LVL315: 5249 .L326: 2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5250 .loc 1 2538 1 view .LVU1759 5251 0196 03B0 add sp, sp, #12 5252 .LCFI61: 5253 .cfi_remember_state 5254 .cfi_def_cfa_offset 36 5255 @ sp needed 5256 0198 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5257 .LVL316: 5258 .L335: 5259 .LCFI62: 5260 .cfi_restore_state 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5261 .loc 1 2434 5 view .LVU1760 5262 019c 0220 movs r0, #2 5263 .LVL317: 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5264 .loc 1 2434 5 view .LVU1761 5265 019e FAE7 b .L326 5266 .LVL318: 5267 .L337: 2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5268 .loc 1 2479 16 view .LVU1762 5269 01a0 0120 movs r0, #1 5270 01a2 F8E7 b .L326 5271 .L338: ARM GAS /tmp/ccEimIdZ.s page 238 2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5272 .loc 1 2496 18 view .LVU1763 5273 01a4 0120 movs r0, #1 5274 01a6 F6E7 b .L326 5275 .L339: 2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5276 .loc 1 2517 14 view .LVU1764 5277 01a8 0120 movs r0, #1 5278 01aa F4E7 b .L326 5279 .L346: 5280 .align 2 5281 .L345: 5282 01ac 00240080 .word -2147474432 5283 .cfi_endproc 5284 .LFE158: 5286 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5287 .align 1 5288 .global HAL_I2C_Mem_Write_IT 5289 .syntax unified 5290 .thumb 5291 .thumb_func 5292 .fpu fpv5-d16 5294 HAL_I2C_Mem_Write_IT: 5295 .LVL319: 5296 .LFB159: 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5297 .loc 1 2552 1 is_stmt 1 view -0 5298 .cfi_startproc 5299 @ args = 8, pretend = 0, frame = 0 5300 @ frame_needed = 0, uses_anonymous_args = 0 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5301 .loc 1 2552 1 is_stmt 0 view .LVU1766 5302 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5303 .LCFI63: 5304 .cfi_def_cfa_offset 24 5305 .cfi_offset 4, -24 5306 .cfi_offset 5, -20 5307 .cfi_offset 6, -16 5308 .cfi_offset 7, -12 5309 .cfi_offset 8, -8 5310 .cfi_offset 14, -4 5311 0004 82B0 sub sp, sp, #8 5312 .LCFI64: 5313 .cfi_def_cfa_offset 32 5314 0006 0446 mov r4, r0 5315 0008 BDF82480 ldrh r8, [sp, #36] 2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 5316 .loc 1 2553 3 is_stmt 1 view .LVU1767 2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5317 .loc 1 2554 3 view .LVU1768 2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5318 .loc 1 2557 3 view .LVU1769 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5319 .loc 1 2559 3 view .LVU1770 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5320 .loc 1 2559 11 is_stmt 0 view .LVU1771 5321 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/ccEimIdZ.s page 239 5322 .LVL320: 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5323 .loc 1 2559 11 view .LVU1772 5324 0010 C0B2 uxtb r0, r0 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5325 .loc 1 2559 6 view .LVU1773 5326 0012 2028 cmp r0, #32 5327 0014 58D1 bne .L353 5328 0016 0D46 mov r5, r1 5329 0018 1746 mov r7, r2 5330 001a 1E46 mov r6, r3 2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5331 .loc 1 2561 5 is_stmt 1 view .LVU1774 2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5332 .loc 1 2561 8 is_stmt 0 view .LVU1775 5333 001c 089B ldr r3, [sp, #32] 5334 .LVL321: 2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5335 .loc 1 2561 8 view .LVU1776 5336 001e B8F1000F cmp r8, #0 5337 0022 18BF it ne 5338 0024 002B cmpne r3, #0 5339 0026 35D0 beq .L357 2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5340 .loc 1 2567 5 is_stmt 1 view .LVU1777 2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5341 .loc 1 2567 9 is_stmt 0 view .LVU1778 5342 0028 2368 ldr r3, [r4] 5343 002a 9B69 ldr r3, [r3, #24] 2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5344 .loc 1 2567 8 view .LVU1779 5345 002c 13F4004F tst r3, #32768 5346 0030 4FD1 bne .L354 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5347 .loc 1 2573 5 is_stmt 1 view .LVU1780 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5348 .loc 1 2573 5 view .LVU1781 5349 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5350 0036 012B cmp r3, #1 5351 0038 4DD0 beq .L355 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5352 .loc 1 2573 5 discriminator 2 view .LVU1782 5353 003a 0123 movs r3, #1 5354 003c 84F84030 strb r3, [r4, #64] 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5355 .loc 1 2573 5 discriminator 2 view .LVU1783 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5356 .loc 1 2576 5 discriminator 2 view .LVU1784 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5357 .loc 1 2576 17 is_stmt 0 discriminator 2 view .LVU1785 5358 0040 FFF7FEFF bl HAL_GetTick 5359 .LVL322: 2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5360 .loc 1 2578 5 is_stmt 1 discriminator 2 view .LVU1786 2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5361 .loc 1 2578 23 is_stmt 0 discriminator 2 view .LVU1787 5362 0044 2123 movs r3, #33 ARM GAS /tmp/ccEimIdZ.s page 240 5363 0046 84F84130 strb r3, [r4, #65] 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5364 .loc 1 2579 5 is_stmt 1 discriminator 2 view .LVU1788 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5365 .loc 1 2579 23 is_stmt 0 discriminator 2 view .LVU1789 5366 004a 4023 movs r3, #64 5367 004c 84F84230 strb r3, [r4, #66] 2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5368 .loc 1 2580 5 is_stmt 1 discriminator 2 view .LVU1790 2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5369 .loc 1 2580 23 is_stmt 0 discriminator 2 view .LVU1791 5370 0050 0023 movs r3, #0 5371 0052 6364 str r3, [r4, #68] 2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5372 .loc 1 2583 5 is_stmt 1 discriminator 2 view .LVU1792 2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5373 .loc 1 2583 23 is_stmt 0 discriminator 2 view .LVU1793 5374 0054 089B ldr r3, [sp, #32] 5375 0056 6362 str r3, [r4, #36] 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5376 .loc 1 2584 5 is_stmt 1 discriminator 2 view .LVU1794 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5377 .loc 1 2584 23 is_stmt 0 discriminator 2 view .LVU1795 5378 0058 A4F82A80 strh r8, [r4, #42] @ movhi 2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5379 .loc 1 2585 5 is_stmt 1 discriminator 2 view .LVU1796 2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5380 .loc 1 2585 23 is_stmt 0 discriminator 2 view .LVU1797 5381 005c 1F4B ldr r3, .L358 5382 005e E362 str r3, [r4, #44] 2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5383 .loc 1 2586 5 is_stmt 1 discriminator 2 view .LVU1798 2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5384 .loc 1 2586 23 is_stmt 0 discriminator 2 view .LVU1799 5385 0060 1F4B ldr r3, .L358+4 5386 0062 6363 str r3, [r4, #52] 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5387 .loc 1 2588 5 is_stmt 1 discriminator 2 view .LVU1800 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5388 .loc 1 2588 13 is_stmt 0 discriminator 2 view .LVU1801 5389 0064 638D ldrh r3, [r4, #42] 5390 0066 9BB2 uxth r3, r3 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5391 .loc 1 2588 8 discriminator 2 view .LVU1802 5392 0068 FF2B cmp r3, #255 5393 006a 18D9 bls .L350 2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5394 .loc 1 2590 7 is_stmt 1 view .LVU1803 2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5395 .loc 1 2590 22 is_stmt 0 view .LVU1804 5396 006c FF23 movs r3, #255 5397 006e 2385 strh r3, [r4, #40] @ movhi 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5398 .loc 1 2591 7 is_stmt 1 view .LVU1805 5399 .LVL323: 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5400 .loc 1 2591 16 is_stmt 0 view .LVU1806 ARM GAS /tmp/ccEimIdZ.s page 241 5401 0070 4FF08078 mov r8, #16777216 5402 .LVL324: 5403 .L351: 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5404 .loc 1 2600 5 is_stmt 1 view .LVU1807 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5405 .loc 1 2600 9 is_stmt 0 view .LVU1808 5406 0074 0190 str r0, [sp, #4] 5407 0076 1923 movs r3, #25 5408 0078 0093 str r3, [sp] 5409 007a 3346 mov r3, r6 5410 007c 3A46 mov r2, r7 5411 007e 2946 mov r1, r5 5412 0080 2046 mov r0, r4 5413 .LVL325: 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5414 .loc 1 2600 9 view .LVU1809 5415 0082 FFF7FEFF bl I2C_RequestMemoryWrite 5416 .LVL326: 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5417 .loc 1 2600 8 view .LVU1810 5418 0086 0646 mov r6, r0 5419 0088 70B1 cbz r0, .L352 2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5420 .loc 1 2603 7 is_stmt 1 view .LVU1811 2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5421 .loc 1 2603 7 view .LVU1812 5422 008a 0023 movs r3, #0 5423 008c 84F84030 strb r3, [r4, #64] 2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5424 .loc 1 2603 7 view .LVU1813 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5425 .loc 1 2604 7 view .LVU1814 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5426 .loc 1 2604 14 is_stmt 0 view .LVU1815 5427 0090 0126 movs r6, #1 5428 0092 1AE0 b .L348 5429 .LVL327: 5430 .L357: 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5431 .loc 1 2563 7 is_stmt 1 view .LVU1816 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5432 .loc 1 2563 23 is_stmt 0 view .LVU1817 5433 0094 4FF40073 mov r3, #512 5434 0098 6364 str r3, [r4, #68] 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5435 .loc 1 2564 7 is_stmt 1 view .LVU1818 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5436 .loc 1 2564 15 is_stmt 0 view .LVU1819 5437 009a 0126 movs r6, #1 5438 009c 15E0 b .L348 5439 .LVL328: 5440 .L350: 2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5441 .loc 1 2595 7 is_stmt 1 view .LVU1820 2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5442 .loc 1 2595 28 is_stmt 0 view .LVU1821 ARM GAS /tmp/ccEimIdZ.s page 242 5443 009e 638D ldrh r3, [r4, #42] 2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5444 .loc 1 2595 22 view .LVU1822 5445 00a0 2385 strh r3, [r4, #40] @ movhi 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5446 .loc 1 2596 7 is_stmt 1 view .LVU1823 5447 .LVL329: 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5448 .loc 1 2596 16 is_stmt 0 view .LVU1824 5449 00a2 4FF00078 mov r8, #33554432 5450 00a6 E5E7 b .L351 5451 .LVL330: 5452 .L352: 2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5453 .loc 1 2608 5 is_stmt 1 view .LVU1825 5454 00a8 0027 movs r7, #0 5455 00aa 0097 str r7, [sp] 5456 00ac 4346 mov r3, r8 5457 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5458 00b2 2946 mov r1, r5 5459 00b4 2046 mov r0, r4 5460 00b6 FFF7FEFF bl I2C_TransferConfig 5461 .LVL331: 2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5462 .loc 1 2611 5 view .LVU1826 2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5463 .loc 1 2611 5 view .LVU1827 5464 00ba 84F84070 strb r7, [r4, #64] 2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5465 .loc 1 2611 5 view .LVU1828 2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5466 .loc 1 2620 5 view .LVU1829 5467 00be 0121 movs r1, #1 5468 00c0 2046 mov r0, r4 5469 00c2 FFF7FEFF bl I2C_Enable_IRQ 5470 .LVL332: 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5471 .loc 1 2622 5 view .LVU1830 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5472 .loc 1 2622 12 is_stmt 0 view .LVU1831 5473 00c6 00E0 b .L348 5474 .LVL333: 5475 .L353: 2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5476 .loc 1 2626 12 view .LVU1832 5477 00c8 0226 movs r6, #2 5478 .LVL334: 5479 .L348: 2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5480 .loc 1 2628 1 view .LVU1833 5481 00ca 3046 mov r0, r6 5482 00cc 02B0 add sp, sp, #8 5483 .LCFI65: 5484 .cfi_remember_state 5485 .cfi_def_cfa_offset 24 5486 @ sp needed 5487 00ce BDE8F081 pop {r4, r5, r6, r7, r8, pc} ARM GAS /tmp/ccEimIdZ.s page 243 5488 .LVL335: 5489 .L354: 5490 .LCFI66: 5491 .cfi_restore_state 2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5492 .loc 1 2569 14 view .LVU1834 5493 00d2 0226 movs r6, #2 5494 00d4 F9E7 b .L348 5495 .L355: 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5496 .loc 1 2573 5 view .LVU1835 5497 00d6 0226 movs r6, #2 5498 00d8 F7E7 b .L348 5499 .L359: 5500 00da 00BF .align 2 5501 .L358: 5502 00dc 0000FFFF .word -65536 5503 00e0 00000000 .word I2C_Master_ISR_IT 5504 .cfi_endproc 5505 .LFE159: 5507 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 5508 .align 1 5509 .global HAL_I2C_Mem_Read_IT 5510 .syntax unified 5511 .thumb 5512 .thumb_func 5513 .fpu fpv5-d16 5515 HAL_I2C_Mem_Read_IT: 5516 .LVL336: 5517 .LFB160: 2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5518 .loc 1 2643 1 is_stmt 1 view -0 5519 .cfi_startproc 5520 @ args = 8, pretend = 0, frame = 0 5521 @ frame_needed = 0, uses_anonymous_args = 0 2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5522 .loc 1 2643 1 is_stmt 0 view .LVU1837 5523 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5524 .LCFI67: 5525 .cfi_def_cfa_offset 24 5526 .cfi_offset 4, -24 5527 .cfi_offset 5, -20 5528 .cfi_offset 6, -16 5529 .cfi_offset 7, -12 5530 .cfi_offset 8, -8 5531 .cfi_offset 14, -4 5532 0004 82B0 sub sp, sp, #8 5533 .LCFI68: 5534 .cfi_def_cfa_offset 32 5535 0006 0446 mov r4, r0 5536 0008 BDF82480 ldrh r8, [sp, #36] 2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 5537 .loc 1 2644 3 is_stmt 1 view .LVU1838 2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5538 .loc 1 2645 3 view .LVU1839 2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5539 .loc 1 2648 3 view .LVU1840 ARM GAS /tmp/ccEimIdZ.s page 244 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5540 .loc 1 2650 3 view .LVU1841 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5541 .loc 1 2650 11 is_stmt 0 view .LVU1842 5542 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5543 .LVL337: 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5544 .loc 1 2650 11 view .LVU1843 5545 0010 C0B2 uxtb r0, r0 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5546 .loc 1 2650 6 view .LVU1844 5547 0012 2028 cmp r0, #32 5548 0014 59D1 bne .L366 5549 0016 0D46 mov r5, r1 5550 0018 1746 mov r7, r2 5551 001a 1E46 mov r6, r3 2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5552 .loc 1 2652 5 is_stmt 1 view .LVU1845 2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5553 .loc 1 2652 8 is_stmt 0 view .LVU1846 5554 001c 089B ldr r3, [sp, #32] 5555 .LVL338: 2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5556 .loc 1 2652 8 view .LVU1847 5557 001e B8F1000F cmp r8, #0 5558 0022 18BF it ne 5559 0024 002B cmpne r3, #0 5560 0026 35D0 beq .L370 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5561 .loc 1 2658 5 is_stmt 1 view .LVU1848 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5562 .loc 1 2658 9 is_stmt 0 view .LVU1849 5563 0028 2368 ldr r3, [r4] 5564 002a 9B69 ldr r3, [r3, #24] 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5565 .loc 1 2658 8 view .LVU1850 5566 002c 13F4004F tst r3, #32768 5567 0030 50D1 bne .L367 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5568 .loc 1 2664 5 is_stmt 1 view .LVU1851 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5569 .loc 1 2664 5 view .LVU1852 5570 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5571 0036 012B cmp r3, #1 5572 0038 4ED0 beq .L368 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5573 .loc 1 2664 5 discriminator 2 view .LVU1853 5574 003a 0123 movs r3, #1 5575 003c 84F84030 strb r3, [r4, #64] 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5576 .loc 1 2664 5 discriminator 2 view .LVU1854 2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5577 .loc 1 2667 5 discriminator 2 view .LVU1855 2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5578 .loc 1 2667 17 is_stmt 0 discriminator 2 view .LVU1856 5579 0040 FFF7FEFF bl HAL_GetTick 5580 .LVL339: ARM GAS /tmp/ccEimIdZ.s page 245 2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5581 .loc 1 2669 5 is_stmt 1 discriminator 2 view .LVU1857 2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5582 .loc 1 2669 23 is_stmt 0 discriminator 2 view .LVU1858 5583 0044 2223 movs r3, #34 5584 0046 84F84130 strb r3, [r4, #65] 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5585 .loc 1 2670 5 is_stmt 1 discriminator 2 view .LVU1859 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5586 .loc 1 2670 23 is_stmt 0 discriminator 2 view .LVU1860 5587 004a 4023 movs r3, #64 5588 004c 84F84230 strb r3, [r4, #66] 2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5589 .loc 1 2671 5 is_stmt 1 discriminator 2 view .LVU1861 2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5590 .loc 1 2671 23 is_stmt 0 discriminator 2 view .LVU1862 5591 0050 0023 movs r3, #0 5592 0052 6364 str r3, [r4, #68] 2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5593 .loc 1 2674 5 is_stmt 1 discriminator 2 view .LVU1863 2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5594 .loc 1 2674 23 is_stmt 0 discriminator 2 view .LVU1864 5595 0054 089B ldr r3, [sp, #32] 5596 0056 6362 str r3, [r4, #36] 2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5597 .loc 1 2675 5 is_stmt 1 discriminator 2 view .LVU1865 2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5598 .loc 1 2675 23 is_stmt 0 discriminator 2 view .LVU1866 5599 0058 A4F82A80 strh r8, [r4, #42] @ movhi 2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5600 .loc 1 2676 5 is_stmt 1 discriminator 2 view .LVU1867 2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5601 .loc 1 2676 23 is_stmt 0 discriminator 2 view .LVU1868 5602 005c 1F4B ldr r3, .L371 5603 005e E362 str r3, [r4, #44] 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5604 .loc 1 2677 5 is_stmt 1 discriminator 2 view .LVU1869 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5605 .loc 1 2677 23 is_stmt 0 discriminator 2 view .LVU1870 5606 0060 1F4B ldr r3, .L371+4 5607 0062 6363 str r3, [r4, #52] 2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5608 .loc 1 2679 5 is_stmt 1 discriminator 2 view .LVU1871 2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5609 .loc 1 2679 13 is_stmt 0 discriminator 2 view .LVU1872 5610 0064 638D ldrh r3, [r4, #42] 5611 0066 9BB2 uxth r3, r3 2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5612 .loc 1 2679 8 discriminator 2 view .LVU1873 5613 0068 FF2B cmp r3, #255 5614 006a 18D9 bls .L363 2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5615 .loc 1 2681 7 is_stmt 1 view .LVU1874 2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5616 .loc 1 2681 22 is_stmt 0 view .LVU1875 5617 006c FF23 movs r3, #255 5618 006e 2385 strh r3, [r4, #40] @ movhi ARM GAS /tmp/ccEimIdZ.s page 246 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5619 .loc 1 2682 7 is_stmt 1 view .LVU1876 5620 .LVL340: 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5621 .loc 1 2682 16 is_stmt 0 view .LVU1877 5622 0070 4FF08078 mov r8, #16777216 5623 .LVL341: 5624 .L364: 2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5625 .loc 1 2691 5 is_stmt 1 view .LVU1878 2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5626 .loc 1 2691 9 is_stmt 0 view .LVU1879 5627 0074 0190 str r0, [sp, #4] 5628 0076 1923 movs r3, #25 5629 0078 0093 str r3, [sp] 5630 007a 3346 mov r3, r6 5631 007c 3A46 mov r2, r7 5632 007e 2946 mov r1, r5 5633 0080 2046 mov r0, r4 5634 .LVL342: 2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5635 .loc 1 2691 9 view .LVU1880 5636 0082 FFF7FEFF bl I2C_RequestMemoryRead 5637 .LVL343: 2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5638 .loc 1 2691 8 view .LVU1881 5639 0086 0646 mov r6, r0 5640 0088 70B1 cbz r0, .L365 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5641 .loc 1 2694 7 is_stmt 1 view .LVU1882 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5642 .loc 1 2694 7 view .LVU1883 5643 008a 0023 movs r3, #0 5644 008c 84F84030 strb r3, [r4, #64] 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5645 .loc 1 2694 7 view .LVU1884 2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5646 .loc 1 2695 7 view .LVU1885 2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5647 .loc 1 2695 14 is_stmt 0 view .LVU1886 5648 0090 0126 movs r6, #1 5649 0092 1BE0 b .L361 5650 .LVL344: 5651 .L370: 2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5652 .loc 1 2654 7 is_stmt 1 view .LVU1887 2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5653 .loc 1 2654 23 is_stmt 0 view .LVU1888 5654 0094 4FF40073 mov r3, #512 5655 0098 6364 str r3, [r4, #68] 2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5656 .loc 1 2655 7 is_stmt 1 view .LVU1889 2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5657 .loc 1 2655 15 is_stmt 0 view .LVU1890 5658 009a 0126 movs r6, #1 5659 009c 16E0 b .L361 5660 .LVL345: ARM GAS /tmp/ccEimIdZ.s page 247 5661 .L363: 2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5662 .loc 1 2686 7 is_stmt 1 view .LVU1891 2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5663 .loc 1 2686 28 is_stmt 0 view .LVU1892 5664 009e 638D ldrh r3, [r4, #42] 2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5665 .loc 1 2686 22 view .LVU1893 5666 00a0 2385 strh r3, [r4, #40] @ movhi 2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5667 .loc 1 2687 7 is_stmt 1 view .LVU1894 5668 .LVL346: 2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5669 .loc 1 2687 16 is_stmt 0 view .LVU1895 5670 00a2 4FF00078 mov r8, #33554432 5671 00a6 E5E7 b .L364 5672 .LVL347: 5673 .L365: 2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5674 .loc 1 2699 5 is_stmt 1 view .LVU1896 5675 00a8 0E4B ldr r3, .L371+8 5676 00aa 0093 str r3, [sp] 5677 00ac 4346 mov r3, r8 5678 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5679 00b2 2946 mov r1, r5 5680 00b4 2046 mov r0, r4 5681 00b6 FFF7FEFF bl I2C_TransferConfig 5682 .LVL348: 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5683 .loc 1 2702 5 view .LVU1897 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5684 .loc 1 2702 5 view .LVU1898 5685 00ba 0023 movs r3, #0 5686 00bc 84F84030 strb r3, [r4, #64] 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5687 .loc 1 2702 5 view .LVU1899 2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5688 .loc 1 2711 5 view .LVU1900 5689 00c0 0221 movs r1, #2 5690 00c2 2046 mov r0, r4 5691 00c4 FFF7FEFF bl I2C_Enable_IRQ 5692 .LVL349: 2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5693 .loc 1 2713 5 view .LVU1901 2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5694 .loc 1 2713 12 is_stmt 0 view .LVU1902 5695 00c8 00E0 b .L361 5696 .LVL350: 5697 .L366: 2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5698 .loc 1 2717 12 view .LVU1903 5699 00ca 0226 movs r6, #2 5700 .LVL351: 5701 .L361: 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5702 .loc 1 2719 1 view .LVU1904 5703 00cc 3046 mov r0, r6 ARM GAS /tmp/ccEimIdZ.s page 248 5704 00ce 02B0 add sp, sp, #8 5705 .LCFI69: 5706 .cfi_remember_state 5707 .cfi_def_cfa_offset 24 5708 @ sp needed 5709 00d0 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 5710 .LVL352: 5711 .L367: 5712 .LCFI70: 5713 .cfi_restore_state 2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5714 .loc 1 2660 14 view .LVU1905 5715 00d4 0226 movs r6, #2 5716 00d6 F9E7 b .L361 5717 .L368: 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5718 .loc 1 2664 5 view .LVU1906 5719 00d8 0226 movs r6, #2 5720 00da F7E7 b .L361 5721 .L372: 5722 .align 2 5723 .L371: 5724 00dc 0000FFFF .word -65536 5725 00e0 00000000 .word I2C_Master_ISR_IT 5726 00e4 00240080 .word -2147474432 5727 .cfi_endproc 5728 .LFE160: 5730 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 5731 .align 1 5732 .global HAL_I2C_Mem_Write_DMA 5733 .syntax unified 5734 .thumb 5735 .thumb_func 5736 .fpu fpv5-d16 5738 HAL_I2C_Mem_Write_DMA: 5739 .LVL353: 5740 .LFB161: 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5741 .loc 1 2733 1 is_stmt 1 view -0 5742 .cfi_startproc 5743 @ args = 8, pretend = 0, frame = 0 5744 @ frame_needed = 0, uses_anonymous_args = 0 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5745 .loc 1 2733 1 is_stmt 0 view .LVU1908 5746 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 5747 .LCFI71: 5748 .cfi_def_cfa_offset 28 5749 .cfi_offset 4, -28 5750 .cfi_offset 5, -24 5751 .cfi_offset 6, -20 5752 .cfi_offset 7, -16 5753 .cfi_offset 8, -12 5754 .cfi_offset 9, -8 5755 .cfi_offset 14, -4 5756 0004 83B0 sub sp, sp, #12 5757 .LCFI72: 5758 .cfi_def_cfa_offset 40 ARM GAS /tmp/ccEimIdZ.s page 249 5759 0006 0446 mov r4, r0 5760 0008 0A9D ldr r5, [sp, #40] 5761 000a BDF82C90 ldrh r9, [sp, #44] 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 5762 .loc 1 2734 3 is_stmt 1 view .LVU1909 2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 5763 .loc 1 2735 3 view .LVU1910 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5764 .loc 1 2736 3 view .LVU1911 2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5765 .loc 1 2739 3 view .LVU1912 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5766 .loc 1 2741 3 view .LVU1913 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5767 .loc 1 2741 11 is_stmt 0 view .LVU1914 5768 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5769 .LVL354: 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5770 .loc 1 2741 11 view .LVU1915 5771 0012 C0B2 uxtb r0, r0 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5772 .loc 1 2741 6 view .LVU1916 5773 0014 2028 cmp r0, #32 5774 0016 40F09780 bne .L382 5775 001a 0E46 mov r6, r1 5776 001c 9046 mov r8, r2 5777 001e 1F46 mov r7, r3 2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5778 .loc 1 2743 5 is_stmt 1 view .LVU1917 2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5779 .loc 1 2743 8 is_stmt 0 view .LVU1918 5780 0020 B9F1000F cmp r9, #0 5781 0024 18BF it ne 5782 0026 002D cmpne r5, #0 5783 0028 56D0 beq .L387 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5784 .loc 1 2749 5 is_stmt 1 view .LVU1919 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5785 .loc 1 2749 9 is_stmt 0 view .LVU1920 5786 002a 2368 ldr r3, [r4] 5787 .LVL355: 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5788 .loc 1 2749 9 view .LVU1921 5789 002c 9B69 ldr r3, [r3, #24] 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5790 .loc 1 2749 8 view .LVU1922 5791 002e 13F4004F tst r3, #32768 5792 0032 40F08E80 bne .L383 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5793 .loc 1 2755 5 is_stmt 1 view .LVU1923 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5794 .loc 1 2755 5 view .LVU1924 5795 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5796 003a 012B cmp r3, #1 5797 003c 00F08B80 beq .L384 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5798 .loc 1 2755 5 discriminator 2 view .LVU1925 ARM GAS /tmp/ccEimIdZ.s page 250 5799 0040 0123 movs r3, #1 5800 0042 84F84030 strb r3, [r4, #64] 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5801 .loc 1 2755 5 discriminator 2 view .LVU1926 2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5802 .loc 1 2758 5 discriminator 2 view .LVU1927 2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5803 .loc 1 2758 17 is_stmt 0 discriminator 2 view .LVU1928 5804 0046 FFF7FEFF bl HAL_GetTick 5805 .LVL356: 2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5806 .loc 1 2760 5 is_stmt 1 discriminator 2 view .LVU1929 2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5807 .loc 1 2760 23 is_stmt 0 discriminator 2 view .LVU1930 5808 004a 2123 movs r3, #33 5809 004c 84F84130 strb r3, [r4, #65] 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5810 .loc 1 2761 5 is_stmt 1 discriminator 2 view .LVU1931 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5811 .loc 1 2761 23 is_stmt 0 discriminator 2 view .LVU1932 5812 0050 4023 movs r3, #64 5813 0052 84F84230 strb r3, [r4, #66] 2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5814 .loc 1 2762 5 is_stmt 1 discriminator 2 view .LVU1933 2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5815 .loc 1 2762 23 is_stmt 0 discriminator 2 view .LVU1934 5816 0056 0023 movs r3, #0 5817 0058 6364 str r3, [r4, #68] 2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5818 .loc 1 2765 5 is_stmt 1 discriminator 2 view .LVU1935 2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5819 .loc 1 2765 23 is_stmt 0 discriminator 2 view .LVU1936 5820 005a 6562 str r5, [r4, #36] 2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5821 .loc 1 2766 5 is_stmt 1 discriminator 2 view .LVU1937 2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5822 .loc 1 2766 23 is_stmt 0 discriminator 2 view .LVU1938 5823 005c A4F82A90 strh r9, [r4, #42] @ movhi 2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 5824 .loc 1 2767 5 is_stmt 1 discriminator 2 view .LVU1939 2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 5825 .loc 1 2767 23 is_stmt 0 discriminator 2 view .LVU1940 5826 0060 A3F58033 sub r3, r3, #65536 5827 0064 E362 str r3, [r4, #44] 2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5828 .loc 1 2768 5 is_stmt 1 discriminator 2 view .LVU1941 2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5829 .loc 1 2768 23 is_stmt 0 discriminator 2 view .LVU1942 5830 0066 3D4B ldr r3, .L390 5831 0068 6363 str r3, [r4, #52] 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5832 .loc 1 2770 5 is_stmt 1 discriminator 2 view .LVU1943 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5833 .loc 1 2770 13 is_stmt 0 discriminator 2 view .LVU1944 5834 006a 638D ldrh r3, [r4, #42] 5835 006c 9BB2 uxth r3, r3 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 251 5836 .loc 1 2770 8 discriminator 2 view .LVU1945 5837 006e FF2B cmp r3, #255 5838 0070 37D9 bls .L376 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5839 .loc 1 2772 7 is_stmt 1 view .LVU1946 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5840 .loc 1 2772 22 is_stmt 0 view .LVU1947 5841 0072 FF23 movs r3, #255 5842 0074 2385 strh r3, [r4, #40] @ movhi 2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5843 .loc 1 2773 7 is_stmt 1 view .LVU1948 5844 .LVL357: 2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5845 .loc 1 2773 16 is_stmt 0 view .LVU1949 5846 0076 4FF08079 mov r9, #16777216 5847 .LVL358: 5848 .L377: 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5849 .loc 1 2782 5 is_stmt 1 view .LVU1950 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5850 .loc 1 2782 9 is_stmt 0 view .LVU1951 5851 007a 0190 str r0, [sp, #4] 5852 007c 1923 movs r3, #25 5853 007e 0093 str r3, [sp] 5854 0080 3B46 mov r3, r7 5855 0082 4246 mov r2, r8 5856 0084 3146 mov r1, r6 5857 0086 2046 mov r0, r4 5858 .LVL359: 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5859 .loc 1 2782 9 view .LVU1952 5860 0088 FFF7FEFF bl I2C_RequestMemoryWrite 5861 .LVL360: 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5862 .loc 1 2782 8 view .LVU1953 5863 008c 0028 cmp r0, #0 5864 008e 2DD1 bne .L388 2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5865 .loc 1 2790 5 is_stmt 1 view .LVU1954 2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5866 .loc 1 2790 13 is_stmt 0 view .LVU1955 5867 0090 A36B ldr r3, [r4, #56] 2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5868 .loc 1 2790 8 view .LVU1956 5869 0092 002B cmp r3, #0 5870 0094 2FD0 beq .L379 2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5871 .loc 1 2793 7 is_stmt 1 view .LVU1957 2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5872 .loc 1 2793 38 is_stmt 0 view .LVU1958 5873 0096 324A ldr r2, .L390+4 5874 0098 DA63 str r2, [r3, #60] 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5875 .loc 1 2796 7 is_stmt 1 view .LVU1959 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5876 .loc 1 2796 11 is_stmt 0 view .LVU1960 5877 009a A36B ldr r3, [r4, #56] ARM GAS /tmp/ccEimIdZ.s page 252 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5878 .loc 1 2796 39 view .LVU1961 5879 009c 314A ldr r2, .L390+8 5880 009e DA64 str r2, [r3, #76] 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 5881 .loc 1 2799 7 is_stmt 1 view .LVU1962 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 5882 .loc 1 2799 11 is_stmt 0 view .LVU1963 5883 00a0 A26B ldr r2, [r4, #56] 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 5884 .loc 1 2799 42 view .LVU1964 5885 00a2 0023 movs r3, #0 5886 00a4 1364 str r3, [r2, #64] 2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5887 .loc 1 2800 7 is_stmt 1 view .LVU1965 2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5888 .loc 1 2800 11 is_stmt 0 view .LVU1966 5889 00a6 A26B ldr r2, [r4, #56] 2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5890 .loc 1 2800 39 view .LVU1967 5891 00a8 1365 str r3, [r2, #80] 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5892 .loc 1 2803 7 is_stmt 1 view .LVU1968 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5893 .loc 1 2803 86 is_stmt 0 view .LVU1969 5894 00aa 2268 ldr r2, [r4] 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5895 .loc 1 2803 23 view .LVU1970 5896 00ac 238D ldrh r3, [r4, #40] 5897 00ae 2832 adds r2, r2, #40 5898 00b0 2946 mov r1, r5 5899 00b2 A06B ldr r0, [r4, #56] 5900 00b4 FFF7FEFF bl HAL_DMA_Start_IT 5901 .LVL361: 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5902 .loc 1 2820 5 is_stmt 1 view .LVU1971 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5903 .loc 1 2820 8 is_stmt 0 view .LVU1972 5904 00b8 0546 mov r5, r0 5905 00ba 50B3 cbz r0, .L389 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5906 .loc 1 2844 7 is_stmt 1 view .LVU1973 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5907 .loc 1 2844 23 is_stmt 0 view .LVU1974 5908 00bc 2023 movs r3, #32 5909 00be 84F84130 strb r3, [r4, #65] 2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5910 .loc 1 2845 7 is_stmt 1 view .LVU1975 2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5911 .loc 1 2845 23 is_stmt 0 view .LVU1976 5912 00c2 0022 movs r2, #0 5913 00c4 84F84220 strb r2, [r4, #66] 2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5914 .loc 1 2848 7 is_stmt 1 view .LVU1977 2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5915 .loc 1 2848 23 is_stmt 0 view .LVU1978 5916 00c8 636C ldr r3, [r4, #68] ARM GAS /tmp/ccEimIdZ.s page 253 5917 00ca 43F01003 orr r3, r3, #16 5918 00ce 6364 str r3, [r4, #68] 2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5919 .loc 1 2851 7 is_stmt 1 view .LVU1979 2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5920 .loc 1 2851 7 view .LVU1980 5921 00d0 84F84020 strb r2, [r4, #64] 2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5922 .loc 1 2851 7 view .LVU1981 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5923 .loc 1 2853 7 view .LVU1982 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5924 .loc 1 2853 14 is_stmt 0 view .LVU1983 5925 00d4 0125 movs r5, #1 5926 00d6 38E0 b .L374 5927 .LVL362: 5928 .L387: 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5929 .loc 1 2745 7 is_stmt 1 view .LVU1984 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5930 .loc 1 2745 23 is_stmt 0 view .LVU1985 5931 00d8 4FF40073 mov r3, #512 5932 .LVL363: 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5933 .loc 1 2745 23 view .LVU1986 5934 00dc 6364 str r3, [r4, #68] 2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5935 .loc 1 2746 7 is_stmt 1 view .LVU1987 2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5936 .loc 1 2746 15 is_stmt 0 view .LVU1988 5937 00de 0125 movs r5, #1 5938 00e0 33E0 b .L374 5939 .LVL364: 5940 .L376: 2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5941 .loc 1 2777 7 is_stmt 1 view .LVU1989 2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5942 .loc 1 2777 28 is_stmt 0 view .LVU1990 5943 00e2 638D ldrh r3, [r4, #42] 2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5944 .loc 1 2777 22 view .LVU1991 5945 00e4 2385 strh r3, [r4, #40] @ movhi 2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5946 .loc 1 2778 7 is_stmt 1 view .LVU1992 5947 .LVL365: 2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5948 .loc 1 2778 16 is_stmt 0 view .LVU1993 5949 00e6 4FF00079 mov r9, #33554432 5950 00ea C6E7 b .L377 5951 .LVL366: 5952 .L388: 2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5953 .loc 1 2785 7 is_stmt 1 view .LVU1994 2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5954 .loc 1 2785 7 view .LVU1995 5955 00ec 0023 movs r3, #0 5956 00ee 84F84030 strb r3, [r4, #64] ARM GAS /tmp/ccEimIdZ.s page 254 2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5957 .loc 1 2785 7 view .LVU1996 2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5958 .loc 1 2786 7 view .LVU1997 2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5959 .loc 1 2786 14 is_stmt 0 view .LVU1998 5960 00f2 0125 movs r5, #1 5961 00f4 29E0 b .L374 5962 .L379: 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5963 .loc 1 2808 7 is_stmt 1 view .LVU1999 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5964 .loc 1 2808 23 is_stmt 0 view .LVU2000 5965 00f6 2023 movs r3, #32 5966 00f8 84F84130 strb r3, [r4, #65] 2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5967 .loc 1 2809 7 is_stmt 1 view .LVU2001 2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5968 .loc 1 2809 23 is_stmt 0 view .LVU2002 5969 00fc 0022 movs r2, #0 5970 00fe 84F84220 strb r2, [r4, #66] 2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5971 .loc 1 2812 7 is_stmt 1 view .LVU2003 2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5972 .loc 1 2812 23 is_stmt 0 view .LVU2004 5973 0102 636C ldr r3, [r4, #68] 5974 0104 43F08003 orr r3, r3, #128 5975 0108 6364 str r3, [r4, #68] 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5976 .loc 1 2815 7 is_stmt 1 view .LVU2005 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5977 .loc 1 2815 7 view .LVU2006 5978 010a 84F84020 strb r2, [r4, #64] 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5979 .loc 1 2815 7 view .LVU2007 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5980 .loc 1 2817 7 view .LVU2008 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5981 .loc 1 2817 14 is_stmt 0 view .LVU2009 5982 010e 0125 movs r5, #1 5983 0110 1BE0 b .L374 5984 .LVL367: 5985 .L389: 2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5986 .loc 1 2824 7 is_stmt 1 view .LVU2010 5987 0112 0027 movs r7, #0 5988 0114 0097 str r7, [sp] 5989 0116 4B46 mov r3, r9 5990 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5991 011c 3146 mov r1, r6 5992 011e 2046 mov r0, r4 5993 .LVL368: 2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5994 .loc 1 2824 7 is_stmt 0 view .LVU2011 5995 0120 FFF7FEFF bl I2C_TransferConfig 5996 .LVL369: 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 255 5997 .loc 1 2827 7 is_stmt 1 view .LVU2012 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5998 .loc 1 2827 23 is_stmt 0 view .LVU2013 5999 0124 638D ldrh r3, [r4, #42] 6000 0126 9BB2 uxth r3, r3 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6001 .loc 1 2827 30 view .LVU2014 6002 0128 228D ldrh r2, [r4, #40] 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6003 .loc 1 2827 23 view .LVU2015 6004 012a 9B1A subs r3, r3, r2 6005 012c 9BB2 uxth r3, r3 6006 012e 6385 strh r3, [r4, #42] @ movhi 2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6007 .loc 1 2830 7 is_stmt 1 view .LVU2016 2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6008 .loc 1 2830 7 view .LVU2017 6009 0130 84F84070 strb r7, [r4, #64] 2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6010 .loc 1 2830 7 view .LVU2018 2836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6011 .loc 1 2836 7 view .LVU2019 6012 0134 1021 movs r1, #16 6013 0136 2046 mov r0, r4 6014 0138 FFF7FEFF bl I2C_Enable_IRQ 6015 .LVL370: 2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6016 .loc 1 2839 7 view .LVU2020 2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6017 .loc 1 2839 11 is_stmt 0 view .LVU2021 6018 013c 2268 ldr r2, [r4] 2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6019 .loc 1 2839 27 view .LVU2022 6020 013e 1368 ldr r3, [r2] 6021 0140 43F48043 orr r3, r3, #16384 6022 0144 1360 str r3, [r2] 2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6023 .loc 1 2856 5 is_stmt 1 view .LVU2023 2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6024 .loc 1 2856 12 is_stmt 0 view .LVU2024 6025 0146 00E0 b .L374 6026 .LVL371: 6027 .L382: 2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6028 .loc 1 2860 12 view .LVU2025 6029 0148 0225 movs r5, #2 6030 .LVL372: 6031 .L374: 2862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6032 .loc 1 2862 1 view .LVU2026 6033 014a 2846 mov r0, r5 6034 014c 03B0 add sp, sp, #12 6035 .LCFI73: 6036 .cfi_remember_state 6037 .cfi_def_cfa_offset 28 6038 @ sp needed 6039 014e BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} ARM GAS /tmp/ccEimIdZ.s page 256 6040 .LVL373: 6041 .L383: 6042 .LCFI74: 6043 .cfi_restore_state 2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6044 .loc 1 2751 14 view .LVU2027 6045 0152 0225 movs r5, #2 6046 0154 F9E7 b .L374 6047 .L384: 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6048 .loc 1 2755 5 view .LVU2028 6049 0156 0225 movs r5, #2 6050 0158 F7E7 b .L374 6051 .L391: 6052 015a 00BF .align 2 6053 .L390: 6054 015c 00000000 .word I2C_Master_ISR_DMA 6055 0160 00000000 .word I2C_DMAMasterTransmitCplt 6056 0164 00000000 .word I2C_DMAError 6057 .cfi_endproc 6058 .LFE161: 6060 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6061 .align 1 6062 .global HAL_I2C_Mem_Read_DMA 6063 .syntax unified 6064 .thumb 6065 .thumb_func 6066 .fpu fpv5-d16 6068 HAL_I2C_Mem_Read_DMA: 6069 .LVL374: 6070 .LFB162: 2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6071 .loc 1 2877 1 is_stmt 1 view -0 6072 .cfi_startproc 6073 @ args = 8, pretend = 0, frame = 0 6074 @ frame_needed = 0, uses_anonymous_args = 0 2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6075 .loc 1 2877 1 is_stmt 0 view .LVU2030 6076 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6077 .LCFI75: 6078 .cfi_def_cfa_offset 28 6079 .cfi_offset 4, -28 6080 .cfi_offset 5, -24 6081 .cfi_offset 6, -20 6082 .cfi_offset 7, -16 6083 .cfi_offset 8, -12 6084 .cfi_offset 9, -8 6085 .cfi_offset 14, -4 6086 0004 83B0 sub sp, sp, #12 6087 .LCFI76: 6088 .cfi_def_cfa_offset 40 6089 0006 0446 mov r4, r0 6090 0008 0A9D ldr r5, [sp, #40] 6091 000a BDF82C90 ldrh r9, [sp, #44] 2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 6092 .loc 1 2878 3 is_stmt 1 view .LVU2031 2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; ARM GAS /tmp/ccEimIdZ.s page 257 6093 .loc 1 2879 3 view .LVU2032 2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6094 .loc 1 2880 3 view .LVU2033 2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6095 .loc 1 2883 3 view .LVU2034 2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6096 .loc 1 2885 3 view .LVU2035 2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6097 .loc 1 2885 11 is_stmt 0 view .LVU2036 6098 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6099 .LVL375: 2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6100 .loc 1 2885 11 view .LVU2037 6101 0012 C0B2 uxtb r0, r0 2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6102 .loc 1 2885 6 view .LVU2038 6103 0014 2028 cmp r0, #32 6104 0016 40F09880 bne .L401 6105 001a 0E46 mov r6, r1 6106 001c 9046 mov r8, r2 6107 001e 1F46 mov r7, r3 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6108 .loc 1 2887 5 is_stmt 1 view .LVU2039 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6109 .loc 1 2887 8 is_stmt 0 view .LVU2040 6110 0020 B9F1000F cmp r9, #0 6111 0024 18BF it ne 6112 0026 002D cmpne r5, #0 6113 0028 56D0 beq .L406 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6114 .loc 1 2893 5 is_stmt 1 view .LVU2041 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6115 .loc 1 2893 9 is_stmt 0 view .LVU2042 6116 002a 2368 ldr r3, [r4] 6117 .LVL376: 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6118 .loc 1 2893 9 view .LVU2043 6119 002c 9B69 ldr r3, [r3, #24] 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6120 .loc 1 2893 8 view .LVU2044 6121 002e 13F4004F tst r3, #32768 6122 0032 40F08F80 bne .L402 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6123 .loc 1 2899 5 is_stmt 1 view .LVU2045 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6124 .loc 1 2899 5 view .LVU2046 6125 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 6126 003a 012B cmp r3, #1 6127 003c 00F08C80 beq .L403 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6128 .loc 1 2899 5 discriminator 2 view .LVU2047 6129 0040 0123 movs r3, #1 6130 0042 84F84030 strb r3, [r4, #64] 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6131 .loc 1 2899 5 discriminator 2 view .LVU2048 2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6132 .loc 1 2902 5 discriminator 2 view .LVU2049 ARM GAS /tmp/ccEimIdZ.s page 258 2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6133 .loc 1 2902 17 is_stmt 0 discriminator 2 view .LVU2050 6134 0046 FFF7FEFF bl HAL_GetTick 6135 .LVL377: 2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6136 .loc 1 2904 5 is_stmt 1 discriminator 2 view .LVU2051 2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6137 .loc 1 2904 23 is_stmt 0 discriminator 2 view .LVU2052 6138 004a 2223 movs r3, #34 6139 004c 84F84130 strb r3, [r4, #65] 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6140 .loc 1 2905 5 is_stmt 1 discriminator 2 view .LVU2053 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6141 .loc 1 2905 23 is_stmt 0 discriminator 2 view .LVU2054 6142 0050 4023 movs r3, #64 6143 0052 84F84230 strb r3, [r4, #66] 2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6144 .loc 1 2906 5 is_stmt 1 discriminator 2 view .LVU2055 2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6145 .loc 1 2906 23 is_stmt 0 discriminator 2 view .LVU2056 6146 0056 0023 movs r3, #0 6147 0058 6364 str r3, [r4, #68] 2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6148 .loc 1 2909 5 is_stmt 1 discriminator 2 view .LVU2057 2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6149 .loc 1 2909 23 is_stmt 0 discriminator 2 view .LVU2058 6150 005a 6562 str r5, [r4, #36] 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6151 .loc 1 2910 5 is_stmt 1 discriminator 2 view .LVU2059 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6152 .loc 1 2910 23 is_stmt 0 discriminator 2 view .LVU2060 6153 005c A4F82A90 strh r9, [r4, #42] @ movhi 2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6154 .loc 1 2911 5 is_stmt 1 discriminator 2 view .LVU2061 2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6155 .loc 1 2911 23 is_stmt 0 discriminator 2 view .LVU2062 6156 0060 A3F58033 sub r3, r3, #65536 6157 0064 E362 str r3, [r4, #44] 2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6158 .loc 1 2912 5 is_stmt 1 discriminator 2 view .LVU2063 2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6159 .loc 1 2912 23 is_stmt 0 discriminator 2 view .LVU2064 6160 0066 3D4B ldr r3, .L409 6161 0068 6363 str r3, [r4, #52] 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6162 .loc 1 2914 5 is_stmt 1 discriminator 2 view .LVU2065 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6163 .loc 1 2914 13 is_stmt 0 discriminator 2 view .LVU2066 6164 006a 638D ldrh r3, [r4, #42] 6165 006c 9BB2 uxth r3, r3 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6166 .loc 1 2914 8 discriminator 2 view .LVU2067 6167 006e FF2B cmp r3, #255 6168 0070 37D9 bls .L395 2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6169 .loc 1 2916 7 is_stmt 1 view .LVU2068 2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/ccEimIdZ.s page 259 6170 .loc 1 2916 22 is_stmt 0 view .LVU2069 6171 0072 FF23 movs r3, #255 6172 0074 2385 strh r3, [r4, #40] @ movhi 2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6173 .loc 1 2917 7 is_stmt 1 view .LVU2070 6174 .LVL378: 2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6175 .loc 1 2917 16 is_stmt 0 view .LVU2071 6176 0076 4FF08079 mov r9, #16777216 6177 .LVL379: 6178 .L396: 2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6179 .loc 1 2926 5 is_stmt 1 view .LVU2072 2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6180 .loc 1 2926 9 is_stmt 0 view .LVU2073 6181 007a 0190 str r0, [sp, #4] 6182 007c 1923 movs r3, #25 6183 007e 0093 str r3, [sp] 6184 0080 3B46 mov r3, r7 6185 0082 4246 mov r2, r8 6186 0084 3146 mov r1, r6 6187 0086 2046 mov r0, r4 6188 .LVL380: 2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6189 .loc 1 2926 9 view .LVU2074 6190 0088 FFF7FEFF bl I2C_RequestMemoryRead 6191 .LVL381: 2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6192 .loc 1 2926 8 view .LVU2075 6193 008c 0028 cmp r0, #0 6194 008e 2DD1 bne .L407 2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6195 .loc 1 2933 5 is_stmt 1 view .LVU2076 2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6196 .loc 1 2933 13 is_stmt 0 view .LVU2077 6197 0090 E36B ldr r3, [r4, #60] 2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6198 .loc 1 2933 8 view .LVU2078 6199 0092 002B cmp r3, #0 6200 0094 2FD0 beq .L398 2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6201 .loc 1 2936 7 is_stmt 1 view .LVU2079 2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6202 .loc 1 2936 38 is_stmt 0 view .LVU2080 6203 0096 324A ldr r2, .L409+4 6204 0098 DA63 str r2, [r3, #60] 2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6205 .loc 1 2939 7 is_stmt 1 view .LVU2081 2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6206 .loc 1 2939 11 is_stmt 0 view .LVU2082 6207 009a E36B ldr r3, [r4, #60] 2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6208 .loc 1 2939 39 view .LVU2083 6209 009c 314A ldr r2, .L409+8 6210 009e DA64 str r2, [r3, #76] 2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6211 .loc 1 2942 7 is_stmt 1 view .LVU2084 ARM GAS /tmp/ccEimIdZ.s page 260 2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6212 .loc 1 2942 11 is_stmt 0 view .LVU2085 6213 00a0 E26B ldr r2, [r4, #60] 2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6214 .loc 1 2942 42 view .LVU2086 6215 00a2 0023 movs r3, #0 6216 00a4 1364 str r3, [r2, #64] 2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6217 .loc 1 2943 7 is_stmt 1 view .LVU2087 2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6218 .loc 1 2943 11 is_stmt 0 view .LVU2088 6219 00a6 E26B ldr r2, [r4, #60] 2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6220 .loc 1 2943 39 view .LVU2089 6221 00a8 1365 str r3, [r2, #80] 2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6222 .loc 1 2946 7 is_stmt 1 view .LVU2090 2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6223 .loc 1 2946 69 is_stmt 0 view .LVU2091 6224 00aa 2168 ldr r1, [r4] 2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6225 .loc 1 2946 23 view .LVU2092 6226 00ac 238D ldrh r3, [r4, #40] 6227 00ae 2A46 mov r2, r5 6228 00b0 2431 adds r1, r1, #36 6229 00b2 E06B ldr r0, [r4, #60] 6230 00b4 FFF7FEFF bl HAL_DMA_Start_IT 6231 .LVL382: 2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6232 .loc 1 2963 5 is_stmt 1 view .LVU2093 2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6233 .loc 1 2963 8 is_stmt 0 view .LVU2094 6234 00b8 0546 mov r5, r0 6235 00ba 50B3 cbz r0, .L408 2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6236 .loc 1 2986 7 is_stmt 1 view .LVU2095 2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6237 .loc 1 2986 23 is_stmt 0 view .LVU2096 6238 00bc 2023 movs r3, #32 6239 00be 84F84130 strb r3, [r4, #65] 2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6240 .loc 1 2987 7 is_stmt 1 view .LVU2097 2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6241 .loc 1 2987 23 is_stmt 0 view .LVU2098 6242 00c2 0022 movs r2, #0 6243 00c4 84F84220 strb r2, [r4, #66] 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6244 .loc 1 2990 7 is_stmt 1 view .LVU2099 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6245 .loc 1 2990 23 is_stmt 0 view .LVU2100 6246 00c8 636C ldr r3, [r4, #68] 6247 00ca 43F01003 orr r3, r3, #16 6248 00ce 6364 str r3, [r4, #68] 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6249 .loc 1 2993 7 is_stmt 1 view .LVU2101 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6250 .loc 1 2993 7 view .LVU2102 ARM GAS /tmp/ccEimIdZ.s page 261 6251 00d0 84F84020 strb r2, [r4, #64] 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6252 .loc 1 2993 7 view .LVU2103 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6253 .loc 1 2995 7 view .LVU2104 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6254 .loc 1 2995 14 is_stmt 0 view .LVU2105 6255 00d4 0125 movs r5, #1 6256 00d6 39E0 b .L393 6257 .LVL383: 6258 .L406: 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6259 .loc 1 2889 7 is_stmt 1 view .LVU2106 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6260 .loc 1 2889 23 is_stmt 0 view .LVU2107 6261 00d8 4FF40073 mov r3, #512 6262 .LVL384: 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6263 .loc 1 2889 23 view .LVU2108 6264 00dc 6364 str r3, [r4, #68] 2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6265 .loc 1 2890 7 is_stmt 1 view .LVU2109 2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6266 .loc 1 2890 15 is_stmt 0 view .LVU2110 6267 00de 0125 movs r5, #1 6268 00e0 34E0 b .L393 6269 .LVL385: 6270 .L395: 2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6271 .loc 1 2921 7 is_stmt 1 view .LVU2111 2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6272 .loc 1 2921 28 is_stmt 0 view .LVU2112 6273 00e2 638D ldrh r3, [r4, #42] 2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6274 .loc 1 2921 22 view .LVU2113 6275 00e4 2385 strh r3, [r4, #40] @ movhi 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6276 .loc 1 2922 7 is_stmt 1 view .LVU2114 6277 .LVL386: 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6278 .loc 1 2922 16 is_stmt 0 view .LVU2115 6279 00e6 4FF00079 mov r9, #33554432 6280 00ea C6E7 b .L396 6281 .LVL387: 6282 .L407: 2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6283 .loc 1 2929 7 is_stmt 1 view .LVU2116 2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6284 .loc 1 2929 7 view .LVU2117 6285 00ec 0023 movs r3, #0 6286 00ee 84F84030 strb r3, [r4, #64] 2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6287 .loc 1 2929 7 view .LVU2118 2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6288 .loc 1 2930 7 view .LVU2119 2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6289 .loc 1 2930 14 is_stmt 0 view .LVU2120 ARM GAS /tmp/ccEimIdZ.s page 262 6290 00f2 0125 movs r5, #1 6291 00f4 2AE0 b .L393 6292 .L398: 2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6293 .loc 1 2951 7 is_stmt 1 view .LVU2121 2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6294 .loc 1 2951 23 is_stmt 0 view .LVU2122 6295 00f6 2023 movs r3, #32 6296 00f8 84F84130 strb r3, [r4, #65] 2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6297 .loc 1 2952 7 is_stmt 1 view .LVU2123 2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6298 .loc 1 2952 23 is_stmt 0 view .LVU2124 6299 00fc 0022 movs r2, #0 6300 00fe 84F84220 strb r2, [r4, #66] 2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6301 .loc 1 2955 7 is_stmt 1 view .LVU2125 2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6302 .loc 1 2955 23 is_stmt 0 view .LVU2126 6303 0102 636C ldr r3, [r4, #68] 6304 0104 43F08003 orr r3, r3, #128 6305 0108 6364 str r3, [r4, #68] 2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6306 .loc 1 2958 7 is_stmt 1 view .LVU2127 2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6307 .loc 1 2958 7 view .LVU2128 6308 010a 84F84020 strb r2, [r4, #64] 2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6309 .loc 1 2958 7 view .LVU2129 2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6310 .loc 1 2960 7 view .LVU2130 2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6311 .loc 1 2960 14 is_stmt 0 view .LVU2131 6312 010e 0125 movs r5, #1 6313 0110 1CE0 b .L393 6314 .LVL388: 6315 .L408: 2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6316 .loc 1 2966 7 is_stmt 1 view .LVU2132 6317 0112 154B ldr r3, .L409+12 6318 0114 0093 str r3, [sp] 6319 0116 4B46 mov r3, r9 6320 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 6321 011c 3146 mov r1, r6 6322 011e 2046 mov r0, r4 6323 .LVL389: 2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6324 .loc 1 2966 7 is_stmt 0 view .LVU2133 6325 0120 FFF7FEFF bl I2C_TransferConfig 6326 .LVL390: 2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6327 .loc 1 2969 7 is_stmt 1 view .LVU2134 2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6328 .loc 1 2969 23 is_stmt 0 view .LVU2135 6329 0124 638D ldrh r3, [r4, #42] 6330 0126 9BB2 uxth r3, r3 2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 263 6331 .loc 1 2969 30 view .LVU2136 6332 0128 228D ldrh r2, [r4, #40] 2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6333 .loc 1 2969 23 view .LVU2137 6334 012a 9B1A subs r3, r3, r2 6335 012c 9BB2 uxth r3, r3 6336 012e 6385 strh r3, [r4, #42] @ movhi 2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6337 .loc 1 2972 7 is_stmt 1 view .LVU2138 2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6338 .loc 1 2972 7 view .LVU2139 6339 0130 0023 movs r3, #0 6340 0132 84F84030 strb r3, [r4, #64] 2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6341 .loc 1 2972 7 view .LVU2140 2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6342 .loc 1 2978 7 view .LVU2141 6343 0136 1021 movs r1, #16 6344 0138 2046 mov r0, r4 6345 013a FFF7FEFF bl I2C_Enable_IRQ 6346 .LVL391: 2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6347 .loc 1 2981 7 view .LVU2142 2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6348 .loc 1 2981 11 is_stmt 0 view .LVU2143 6349 013e 2268 ldr r2, [r4] 2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6350 .loc 1 2981 27 view .LVU2144 6351 0140 1368 ldr r3, [r2] 6352 0142 43F40043 orr r3, r3, #32768 6353 0146 1360 str r3, [r2] 2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6354 .loc 1 2998 5 is_stmt 1 view .LVU2145 2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6355 .loc 1 2998 12 is_stmt 0 view .LVU2146 6356 0148 00E0 b .L393 6357 .LVL392: 6358 .L401: 3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6359 .loc 1 3002 12 view .LVU2147 6360 014a 0225 movs r5, #2 6361 .LVL393: 6362 .L393: 3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6363 .loc 1 3004 1 view .LVU2148 6364 014c 2846 mov r0, r5 6365 014e 03B0 add sp, sp, #12 6366 .LCFI77: 6367 .cfi_remember_state 6368 .cfi_def_cfa_offset 28 6369 @ sp needed 6370 0150 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 6371 .LVL394: 6372 .L402: 6373 .LCFI78: 6374 .cfi_restore_state 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 264 6375 .loc 1 2895 14 view .LVU2149 6376 0154 0225 movs r5, #2 6377 0156 F9E7 b .L393 6378 .L403: 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6379 .loc 1 2899 5 view .LVU2150 6380 0158 0225 movs r5, #2 6381 015a F7E7 b .L393 6382 .L410: 6383 .align 2 6384 .L409: 6385 015c 00000000 .word I2C_Master_ISR_DMA 6386 0160 00000000 .word I2C_DMAMasterReceiveCplt 6387 0164 00000000 .word I2C_DMAError 6388 0168 00240080 .word -2147474432 6389 .cfi_endproc 6390 .LFE162: 6392 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6393 .align 1 6394 .global HAL_I2C_IsDeviceReady 6395 .syntax unified 6396 .thumb 6397 .thumb_func 6398 .fpu fpv5-d16 6400 HAL_I2C_IsDeviceReady: 6401 .LVL395: 6402 .LFB163: 3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6403 .loc 1 3018 1 is_stmt 1 view -0 6404 .cfi_startproc 6405 @ args = 0, pretend = 0, frame = 8 6406 @ frame_needed = 0, uses_anonymous_args = 0 3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6407 .loc 1 3018 1 is_stmt 0 view .LVU2152 6408 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6409 .LCFI79: 6410 .cfi_def_cfa_offset 28 6411 .cfi_offset 4, -28 6412 .cfi_offset 5, -24 6413 .cfi_offset 6, -20 6414 .cfi_offset 7, -16 6415 .cfi_offset 8, -12 6416 .cfi_offset 9, -8 6417 .cfi_offset 14, -4 6418 0004 85B0 sub sp, sp, #20 6419 .LCFI80: 6420 .cfi_def_cfa_offset 48 6421 0006 1D46 mov r5, r3 3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6422 .loc 1 3019 3 is_stmt 1 view .LVU2153 3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6423 .loc 1 3021 3 view .LVU2154 3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6424 .loc 1 3021 17 is_stmt 0 view .LVU2155 6425 0008 0023 movs r3, #0 6426 .LVL396: 3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 265 6427 .loc 1 3021 17 view .LVU2156 6428 000a 0393 str r3, [sp, #12] 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2; 6429 .loc 1 3023 3 is_stmt 1 view .LVU2157 3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6430 .loc 1 3024 3 view .LVU2158 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6431 .loc 1 3026 3 view .LVU2159 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6432 .loc 1 3026 11 is_stmt 0 view .LVU2160 6433 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6434 0010 DBB2 uxtb r3, r3 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6435 .loc 1 3026 6 view .LVU2161 6436 0012 202B cmp r3, #32 6437 0014 40F09C80 bne .L422 6438 0018 0646 mov r6, r0 6439 001a 8946 mov r9, r1 6440 001c 9046 mov r8, r2 3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6441 .loc 1 3028 5 is_stmt 1 view .LVU2162 3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6442 .loc 1 3028 9 is_stmt 0 view .LVU2163 6443 001e 0368 ldr r3, [r0] 6444 0020 9B69 ldr r3, [r3, #24] 3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6445 .loc 1 3028 8 view .LVU2164 6446 0022 13F4004F tst r3, #32768 6447 0026 40F09580 bne .L423 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6448 .loc 1 3034 5 is_stmt 1 view .LVU2165 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6449 .loc 1 3034 5 view .LVU2166 6450 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6451 002e 012B cmp r3, #1 6452 0030 00F09280 beq .L424 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6453 .loc 1 3034 5 discriminator 2 view .LVU2167 6454 0034 0123 movs r3, #1 6455 0036 80F84030 strb r3, [r0, #64] 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6456 .loc 1 3034 5 discriminator 2 view .LVU2168 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6457 .loc 1 3036 5 discriminator 2 view .LVU2169 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6458 .loc 1 3036 17 is_stmt 0 discriminator 2 view .LVU2170 6459 003a 2423 movs r3, #36 6460 003c 80F84130 strb r3, [r0, #65] 3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6461 .loc 1 3037 5 is_stmt 1 discriminator 2 view .LVU2171 3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6462 .loc 1 3037 21 is_stmt 0 discriminator 2 view .LVU2172 6463 0040 0023 movs r3, #0 6464 0042 4364 str r3, [r0, #68] 6465 .LVL397: 6466 .L421: 3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 266 6467 .loc 1 3039 5 is_stmt 1 view .LVU2173 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6468 .loc 1 3042 7 view .LVU2174 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6469 .loc 1 3042 29 is_stmt 0 view .LVU2175 6470 0044 F368 ldr r3, [r6, #12] 6471 0046 012B cmp r3, #1 6472 0048 10D0 beq .L429 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6473 .loc 1 3042 29 discriminator 2 view .LVU2176 6474 004a C9F30903 ubfx r3, r9, #0, #10 6475 004e 43F42053 orr r3, r3, #10240 6476 .L414: 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6477 .loc 1 3042 11 discriminator 4 view .LVU2177 6478 0052 3268 ldr r2, [r6] 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6479 .loc 1 3042 27 discriminator 4 view .LVU2178 6480 0054 5360 str r3, [r2, #4] 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6481 .loc 1 3046 7 is_stmt 1 discriminator 4 view .LVU2179 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6482 .loc 1 3046 19 is_stmt 0 discriminator 4 view .LVU2180 6483 0056 FFF7FEFF bl HAL_GetTick 6484 .LVL398: 6485 005a 0746 mov r7, r0 6486 .LVL399: 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6487 .loc 1 3048 7 is_stmt 1 discriminator 4 view .LVU2181 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6488 .loc 1 3048 14 is_stmt 0 discriminator 4 view .LVU2182 6489 005c 3268 ldr r2, [r6] 6490 005e 9369 ldr r3, [r2, #24] 6491 0060 C3F34013 ubfx r3, r3, #5, #1 6492 .LVL400: 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6493 .loc 1 3049 7 is_stmt 1 discriminator 4 view .LVU2183 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6494 .loc 1 3049 14 is_stmt 0 discriminator 4 view .LVU2184 6495 0064 9469 ldr r4, [r2, #24] 6496 0066 C4F3001C ubfx ip, r4, #4, #1 6497 .LVL401: 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6498 .loc 1 3051 7 is_stmt 1 discriminator 4 view .LVU2185 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6499 .loc 1 3051 13 is_stmt 0 discriminator 4 view .LVU2186 6500 006a 0BE0 b .L415 6501 .LVL402: 6502 .L429: 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6503 .loc 1 3042 29 discriminator 1 view .LVU2187 6504 006c C9F30902 ubfx r2, r9, #0, #10 6505 0070 3D4B ldr r3, .L433 6506 0072 1343 orrs r3, r3, r2 6507 0074 EDE7 b .L414 6508 .LVL403: 6509 .L416: ARM GAS /tmp/ccEimIdZ.s page 267 3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6510 .loc 1 3070 9 is_stmt 1 view .LVU2188 3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6511 .loc 1 3070 16 is_stmt 0 view .LVU2189 6512 0076 3268 ldr r2, [r6] 6513 0078 9369 ldr r3, [r2, #24] 6514 007a C3F34013 ubfx r3, r3, #5, #1 6515 .LVL404: 3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6516 .loc 1 3071 9 is_stmt 1 view .LVU2190 3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6517 .loc 1 3071 16 is_stmt 0 view .LVU2191 6518 007e 9469 ldr r4, [r2, #24] 6519 0080 C4F3001C ubfx ip, r4, #4, #1 6520 .LVL405: 6521 .L415: 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6522 .loc 1 3051 13 is_stmt 1 view .LVU2192 6523 0084 53EA0C03 orrs r3, r3, ip 6524 .LVL406: 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6525 .loc 1 3051 13 is_stmt 0 view .LVU2193 6526 0088 17D1 bne .L430 3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6527 .loc 1 3053 9 is_stmt 1 view .LVU2194 3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6528 .loc 1 3053 12 is_stmt 0 view .LVU2195 6529 008a B5F1FF3F cmp r5, #-1 6530 008e F2D0 beq .L416 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6531 .loc 1 3055 11 is_stmt 1 view .LVU2196 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6532 .loc 1 3055 17 is_stmt 0 view .LVU2197 6533 0090 FFF7FEFF bl HAL_GetTick 6534 .LVL407: 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6535 .loc 1 3055 31 view .LVU2198 6536 0094 C01B subs r0, r0, r7 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6537 .loc 1 3055 14 view .LVU2199 6538 0096 A842 cmp r0, r5 6539 0098 01D8 bhi .L417 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6540 .loc 1 3055 55 discriminator 1 view .LVU2200 6541 009a 002D cmp r5, #0 6542 009c EBD1 bne .L416 6543 .L417: 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6544 .loc 1 3058 13 is_stmt 1 view .LVU2201 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6545 .loc 1 3058 25 is_stmt 0 view .LVU2202 6546 009e 2023 movs r3, #32 6547 00a0 86F84130 strb r3, [r6, #65] 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6548 .loc 1 3061 13 is_stmt 1 view .LVU2203 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6549 .loc 1 3061 29 is_stmt 0 view .LVU2204 ARM GAS /tmp/ccEimIdZ.s page 268 6550 00a4 736C ldr r3, [r6, #68] 6551 00a6 43F02003 orr r3, r3, #32 6552 00aa 7364 str r3, [r6, #68] 3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6553 .loc 1 3064 13 is_stmt 1 view .LVU2205 3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6554 .loc 1 3064 13 view .LVU2206 6555 00ac 0023 movs r3, #0 6556 00ae 86F84030 strb r3, [r6, #64] 3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6557 .loc 1 3064 13 view .LVU2207 3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6558 .loc 1 3066 13 view .LVU2208 3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6559 .loc 1 3066 20 is_stmt 0 view .LVU2209 6560 00b2 0120 movs r0, #1 6561 .LVL408: 6562 .L412: 3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6563 .loc 1 3145 1 view .LVU2210 6564 00b4 05B0 add sp, sp, #20 6565 .LCFI81: 6566 .cfi_remember_state 6567 .cfi_def_cfa_offset 28 6568 @ sp needed 6569 00b6 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 6570 .LVL409: 6571 .L430: 6572 .LCFI82: 6573 .cfi_restore_state 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6574 .loc 1 3075 7 is_stmt 1 view .LVU2211 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6575 .loc 1 3075 11 is_stmt 0 view .LVU2212 6576 00ba 3368 ldr r3, [r6] 6577 00bc 9B69 ldr r3, [r3, #24] 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6578 .loc 1 3075 10 view .LVU2213 6579 00be 13F0100F tst r3, #16 6580 00c2 23D0 beq .L431 3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6581 .loc 1 3097 9 is_stmt 1 view .LVU2214 3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6582 .loc 1 3097 13 is_stmt 0 view .LVU2215 6583 00c4 0097 str r7, [sp] 6584 00c6 2B46 mov r3, r5 6585 00c8 0022 movs r2, #0 6586 00ca 2021 movs r1, #32 6587 00cc 3046 mov r0, r6 6588 00ce FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6589 .LVL410: 3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6590 .loc 1 3097 12 view .LVU2216 6591 00d2 0028 cmp r0, #0 6592 00d4 44D1 bne .L426 3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6593 .loc 1 3103 9 is_stmt 1 view .LVU2217 ARM GAS /tmp/ccEimIdZ.s page 269 6594 00d6 3368 ldr r3, [r6] 6595 00d8 1022 movs r2, #16 6596 00da DA61 str r2, [r3, #28] 3106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6597 .loc 1 3106 9 view .LVU2218 6598 00dc 3368 ldr r3, [r6] 6599 00de 2022 movs r2, #32 6600 00e0 DA61 str r2, [r3, #28] 3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6601 .loc 1 3110 7 view .LVU2219 3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6602 .loc 1 3110 22 is_stmt 0 view .LVU2220 6603 00e2 039B ldr r3, [sp, #12] 3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6604 .loc 1 3110 10 view .LVU2221 6605 00e4 4345 cmp r3, r8 6606 00e6 22D0 beq .L432 6607 .L420: 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6608 .loc 1 3126 7 is_stmt 1 view .LVU2222 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6609 .loc 1 3126 17 is_stmt 0 view .LVU2223 6610 00e8 039B ldr r3, [sp, #12] 6611 00ea 0133 adds r3, r3, #1 6612 00ec 0393 str r3, [sp, #12] 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6613 .loc 1 3128 11 is_stmt 1 view .LVU2224 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6614 .loc 1 3128 23 is_stmt 0 view .LVU2225 6615 00ee 039B ldr r3, [sp, #12] 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6616 .loc 1 3128 5 view .LVU2226 6617 00f0 4345 cmp r3, r8 6618 00f2 A7D3 bcc .L421 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6619 .loc 1 3131 5 is_stmt 1 view .LVU2227 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6620 .loc 1 3131 17 is_stmt 0 view .LVU2228 6621 00f4 2023 movs r3, #32 6622 00f6 86F84130 strb r3, [r6, #65] 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6623 .loc 1 3134 5 is_stmt 1 view .LVU2229 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6624 .loc 1 3134 21 is_stmt 0 view .LVU2230 6625 00fa 736C ldr r3, [r6, #68] 6626 00fc 43F02003 orr r3, r3, #32 6627 0100 7364 str r3, [r6, #68] 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6628 .loc 1 3137 5 is_stmt 1 view .LVU2231 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6629 .loc 1 3137 5 view .LVU2232 6630 0102 0023 movs r3, #0 6631 0104 86F84030 strb r3, [r6, #64] 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6632 .loc 1 3137 5 view .LVU2233 3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6633 .loc 1 3139 5 view .LVU2234 ARM GAS /tmp/ccEimIdZ.s page 270 3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6634 .loc 1 3139 12 is_stmt 0 view .LVU2235 6635 0108 0120 movs r0, #1 6636 010a D3E7 b .L412 6637 .LVL411: 6638 .L431: 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6639 .loc 1 3078 9 is_stmt 1 view .LVU2236 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6640 .loc 1 3078 13 is_stmt 0 view .LVU2237 6641 010c 0097 str r7, [sp] 6642 010e 2B46 mov r3, r5 6643 0110 0022 movs r2, #0 6644 0112 2021 movs r1, #32 6645 0114 3046 mov r0, r6 6646 0116 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6647 .LVL412: 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6648 .loc 1 3078 12 view .LVU2238 6649 011a F8B9 cbnz r0, .L425 3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6650 .loc 1 3084 9 is_stmt 1 view .LVU2239 6651 011c 3268 ldr r2, [r6] 6652 011e 2023 movs r3, #32 6653 0120 D361 str r3, [r2, #28] 3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6654 .loc 1 3087 9 view .LVU2240 3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6655 .loc 1 3087 21 is_stmt 0 view .LVU2241 6656 0122 86F84130 strb r3, [r6, #65] 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6657 .loc 1 3090 9 is_stmt 1 view .LVU2242 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6658 .loc 1 3090 9 view .LVU2243 6659 0126 0023 movs r3, #0 6660 0128 86F84030 strb r3, [r6, #64] 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6661 .loc 1 3090 9 view .LVU2244 3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6662 .loc 1 3092 9 view .LVU2245 3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6663 .loc 1 3092 16 is_stmt 0 view .LVU2246 6664 012c C2E7 b .L412 6665 .L432: 3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6666 .loc 1 3113 9 is_stmt 1 view .LVU2247 3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6667 .loc 1 3113 13 is_stmt 0 view .LVU2248 6668 012e 3268 ldr r2, [r6] 3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6669 .loc 1 3113 29 view .LVU2249 6670 0130 5368 ldr r3, [r2, #4] 6671 0132 43F48043 orr r3, r3, #16384 6672 0136 5360 str r3, [r2, #4] 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6673 .loc 1 3116 9 is_stmt 1 view .LVU2250 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 271 6674 .loc 1 3116 13 is_stmt 0 view .LVU2251 6675 0138 0097 str r7, [sp] 6676 013a 2B46 mov r3, r5 6677 013c 0022 movs r2, #0 6678 013e 2021 movs r1, #32 6679 0140 3046 mov r0, r6 6680 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6681 .LVL413: 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6682 .loc 1 3116 12 view .LVU2252 6683 0146 68B9 cbnz r0, .L427 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6684 .loc 1 3122 9 is_stmt 1 view .LVU2253 6685 0148 3368 ldr r3, [r6] 6686 014a 2022 movs r2, #32 6687 014c DA61 str r2, [r3, #28] 6688 014e CBE7 b .L420 6689 .LVL414: 6690 .L422: 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6691 .loc 1 3143 12 is_stmt 0 view .LVU2254 6692 0150 0220 movs r0, #2 6693 .LVL415: 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6694 .loc 1 3143 12 view .LVU2255 6695 0152 AFE7 b .L412 6696 .LVL416: 6697 .L423: 3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6698 .loc 1 3030 14 view .LVU2256 6699 0154 0220 movs r0, #2 6700 .LVL417: 3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6701 .loc 1 3030 14 view .LVU2257 6702 0156 ADE7 b .L412 6703 .LVL418: 6704 .L424: 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6705 .loc 1 3034 5 view .LVU2258 6706 0158 0220 movs r0, #2 6707 .LVL419: 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6708 .loc 1 3034 5 view .LVU2259 6709 015a ABE7 b .L412 6710 .LVL420: 6711 .L425: 3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6712 .loc 1 3080 18 view .LVU2260 6713 015c 0120 movs r0, #1 6714 015e A9E7 b .L412 6715 .L426: 3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6716 .loc 1 3099 18 view .LVU2261 6717 0160 0120 movs r0, #1 6718 0162 A7E7 b .L412 6719 .L427: 3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 272 6720 .loc 1 3118 18 view .LVU2262 6721 0164 0120 movs r0, #1 6722 0166 A5E7 b .L412 6723 .L434: 6724 .align 2 6725 .L433: 6726 0168 00200002 .word 33562624 6727 .cfi_endproc 6728 .LFE163: 6730 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 6731 .align 1 6732 .global HAL_I2C_Master_Seq_Transmit_IT 6733 .syntax unified 6734 .thumb 6735 .thumb_func 6736 .fpu fpv5-d16 6738 HAL_I2C_Master_Seq_Transmit_IT: 6739 .LVL421: 6740 .LFB164: 3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 6741 .loc 1 3160 1 is_stmt 1 view -0 6742 .cfi_startproc 6743 @ args = 4, pretend = 0, frame = 0 6744 @ frame_needed = 0, uses_anonymous_args = 0 3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 6745 .loc 1 3160 1 is_stmt 0 view .LVU2264 6746 0000 70B5 push {r4, r5, r6, lr} 6747 .LCFI83: 6748 .cfi_def_cfa_offset 16 6749 .cfi_offset 4, -16 6750 .cfi_offset 5, -12 6751 .cfi_offset 6, -8 6752 .cfi_offset 14, -4 6753 0002 82B0 sub sp, sp, #8 6754 .LCFI84: 6755 .cfi_def_cfa_offset 24 6756 0004 0446 mov r4, r0 6757 0006 0D46 mov r5, r1 6758 0008 0699 ldr r1, [sp, #24] 6759 .LVL422: 3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 6760 .loc 1 3161 3 is_stmt 1 view .LVU2265 3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6761 .loc 1 3162 3 view .LVU2266 3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6762 .loc 1 3165 3 view .LVU2267 3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6763 .loc 1 3167 3 view .LVU2268 3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6764 .loc 1 3167 11 is_stmt 0 view .LVU2269 6765 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6766 .LVL423: 3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6767 .loc 1 3167 11 view .LVU2270 6768 000e C0B2 uxtb r0, r0 3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6769 .loc 1 3167 6 view .LVU2271 ARM GAS /tmp/ccEimIdZ.s page 273 6770 0010 2028 cmp r0, #32 6771 0012 46D1 bne .L441 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6772 .loc 1 3170 5 is_stmt 1 view .LVU2272 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6773 .loc 1 3170 5 view .LVU2273 6774 0014 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6775 0018 0128 cmp r0, #1 6776 001a 44D0 beq .L442 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6777 .loc 1 3170 5 discriminator 2 view .LVU2274 6778 001c 0120 movs r0, #1 6779 001e 84F84000 strb r0, [r4, #64] 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6780 .loc 1 3170 5 discriminator 2 view .LVU2275 3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6781 .loc 1 3172 5 discriminator 2 view .LVU2276 3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6782 .loc 1 3172 21 is_stmt 0 discriminator 2 view .LVU2277 6783 0022 2120 movs r0, #33 6784 0024 84F84100 strb r0, [r4, #65] 3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6785 .loc 1 3173 5 is_stmt 1 discriminator 2 view .LVU2278 3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6786 .loc 1 3173 21 is_stmt 0 discriminator 2 view .LVU2279 6787 0028 1020 movs r0, #16 6788 002a 84F84200 strb r0, [r4, #66] 3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6789 .loc 1 3174 5 is_stmt 1 discriminator 2 view .LVU2280 3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6790 .loc 1 3174 21 is_stmt 0 discriminator 2 view .LVU2281 6791 002e 0020 movs r0, #0 6792 0030 6064 str r0, [r4, #68] 3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6793 .loc 1 3177 5 is_stmt 1 discriminator 2 view .LVU2282 3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6794 .loc 1 3177 23 is_stmt 0 discriminator 2 view .LVU2283 6795 0032 6262 str r2, [r4, #36] 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 6796 .loc 1 3178 5 is_stmt 1 discriminator 2 view .LVU2284 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 6797 .loc 1 3178 23 is_stmt 0 discriminator 2 view .LVU2285 6798 0034 6385 strh r3, [r4, #42] @ movhi 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 6799 .loc 1 3179 5 is_stmt 1 discriminator 2 view .LVU2286 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 6800 .loc 1 3179 23 is_stmt 0 discriminator 2 view .LVU2287 6801 0036 E162 str r1, [r4, #44] 3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6802 .loc 1 3180 5 is_stmt 1 discriminator 2 view .LVU2288 3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6803 .loc 1 3180 23 is_stmt 0 discriminator 2 view .LVU2289 6804 0038 1C4B ldr r3, .L446 6805 .LVL424: 3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6806 .loc 1 3180 23 discriminator 2 view .LVU2290 6807 003a 6363 str r3, [r4, #52] ARM GAS /tmp/ccEimIdZ.s page 274 3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6808 .loc 1 3183 5 is_stmt 1 discriminator 2 view .LVU2291 3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6809 .loc 1 3183 13 is_stmt 0 discriminator 2 view .LVU2292 6810 003c 638D ldrh r3, [r4, #42] 6811 003e 9BB2 uxth r3, r3 3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6812 .loc 1 3183 8 discriminator 2 view .LVU2293 6813 0040 FF2B cmp r3, #255 6814 0042 26D9 bls .L437 3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6815 .loc 1 3185 7 is_stmt 1 view .LVU2294 3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6816 .loc 1 3185 22 is_stmt 0 view .LVU2295 6817 0044 FF23 movs r3, #255 6818 0046 2385 strh r3, [r4, #40] @ movhi 3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6819 .loc 1 3186 7 is_stmt 1 view .LVU2296 6820 .LVL425: 3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6821 .loc 1 3186 16 is_stmt 0 view .LVU2297 6822 0048 4FF08076 mov r6, #16777216 6823 .LVL426: 6824 .L438: 3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6825 .loc 1 3196 5 is_stmt 1 view .LVU2298 3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6826 .loc 1 3196 14 is_stmt 0 view .LVU2299 6827 004c 236B ldr r3, [r4, #48] 3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6828 .loc 1 3196 8 view .LVU2300 6829 004e 112B cmp r3, #17 6830 0050 04D1 bne .L439 3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6831 .loc 1 3196 59 discriminator 1 view .LVU2301 6832 0052 B1F52A4F cmp r1, #43520 6833 0056 18BF it ne 6834 0058 AA29 cmpne r1, #170 6835 005a 1ED1 bne .L443 6836 .L439: 3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6837 .loc 1 3203 7 is_stmt 1 view .LVU2302 6838 005c 2046 mov r0, r4 6839 005e FFF7FEFF bl I2C_ConvertOtherXferOptions 6840 .LVL427: 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6841 .loc 1 3206 7 view .LVU2303 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6842 .loc 1 3206 15 is_stmt 0 view .LVU2304 6843 0062 638D ldrh r3, [r4, #42] 6844 0064 9BB2 uxth r3, r3 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6845 .loc 1 3206 10 view .LVU2305 6846 0066 FF2B cmp r3, #255 6847 0068 19D8 bhi .L444 3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6848 .loc 1 3208 9 is_stmt 1 view .LVU2306 ARM GAS /tmp/ccEimIdZ.s page 275 3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6849 .loc 1 3208 18 is_stmt 0 view .LVU2307 6850 006a E66A ldr r6, [r4, #44] 6851 .LVL428: 3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6852 .loc 1 3162 12 view .LVU2308 6853 006c 104B ldr r3, .L446+4 6854 .L440: 6855 .LVL429: 3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6856 .loc 1 3213 5 is_stmt 1 view .LVU2309 6857 006e 0093 str r3, [sp] 6858 0070 3346 mov r3, r6 6859 .LVL430: 3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6860 .loc 1 3213 5 is_stmt 0 view .LVU2310 6861 0072 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 6862 0076 2946 mov r1, r5 6863 0078 2046 mov r0, r4 6864 007a FFF7FEFF bl I2C_TransferConfig 6865 .LVL431: 3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6866 .loc 1 3216 5 is_stmt 1 view .LVU2311 3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6867 .loc 1 3216 5 view .LVU2312 6868 007e 0025 movs r5, #0 6869 0080 84F84050 strb r5, [r4, #64] 3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6870 .loc 1 3216 5 view .LVU2313 3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6871 .loc 1 3221 5 view .LVU2314 6872 0084 0121 movs r1, #1 6873 0086 2046 mov r0, r4 6874 0088 FFF7FEFF bl I2C_Enable_IRQ 6875 .LVL432: 3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6876 .loc 1 3223 5 view .LVU2315 3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6877 .loc 1 3223 12 is_stmt 0 view .LVU2316 6878 008c 2846 mov r0, r5 6879 .LVL433: 6880 .L436: 3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6881 .loc 1 3229 1 view .LVU2317 6882 008e 02B0 add sp, sp, #8 6883 .LCFI85: 6884 .cfi_remember_state 6885 .cfi_def_cfa_offset 16 6886 @ sp needed 6887 0090 70BD pop {r4, r5, r6, pc} 6888 .LVL434: 6889 .L437: 6890 .LCFI86: 6891 .cfi_restore_state 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6892 .loc 1 3190 7 is_stmt 1 view .LVU2318 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; ARM GAS /tmp/ccEimIdZ.s page 276 6893 .loc 1 3190 28 is_stmt 0 view .LVU2319 6894 0092 638D ldrh r3, [r4, #42] 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6895 .loc 1 3190 22 view .LVU2320 6896 0094 2385 strh r3, [r4, #40] @ movhi 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6897 .loc 1 3191 7 is_stmt 1 view .LVU2321 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6898 .loc 1 3191 16 is_stmt 0 view .LVU2322 6899 0096 E66A ldr r6, [r4, #44] 6900 .LVL435: 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6901 .loc 1 3191 16 view .LVU2323 6902 0098 D8E7 b .L438 6903 .L443: 3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6904 .loc 1 3198 19 view .LVU2324 6905 009a 0023 movs r3, #0 6906 009c E7E7 b .L440 6907 .LVL436: 6908 .L444: 3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6909 .loc 1 3162 12 view .LVU2325 6910 009e 044B ldr r3, .L446+4 6911 00a0 E5E7 b .L440 6912 .LVL437: 6913 .L441: 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6914 .loc 1 3227 12 view .LVU2326 6915 00a2 0220 movs r0, #2 6916 00a4 F3E7 b .L436 6917 .L442: 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6918 .loc 1 3170 5 view .LVU2327 6919 00a6 0220 movs r0, #2 6920 00a8 F1E7 b .L436 6921 .L447: 6922 00aa 00BF .align 2 6923 .L446: 6924 00ac 00000000 .word I2C_Master_ISR_IT 6925 00b0 00200080 .word -2147475456 6926 .cfi_endproc 6927 .LFE164: 6929 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 6930 .align 1 6931 .global HAL_I2C_Master_Seq_Transmit_DMA 6932 .syntax unified 6933 .thumb 6934 .thumb_func 6935 .fpu fpv5-d16 6937 HAL_I2C_Master_Seq_Transmit_DMA: 6938 .LVL438: 6939 .LFB165: 3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 6940 .loc 1 3244 1 is_stmt 1 view -0 6941 .cfi_startproc 6942 @ args = 4, pretend = 0, frame = 0 ARM GAS /tmp/ccEimIdZ.s page 277 6943 @ frame_needed = 0, uses_anonymous_args = 0 3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 6944 .loc 1 3244 1 is_stmt 0 view .LVU2329 6945 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 6946 .LCFI87: 6947 .cfi_def_cfa_offset 24 6948 .cfi_offset 4, -24 6949 .cfi_offset 5, -20 6950 .cfi_offset 6, -16 6951 .cfi_offset 7, -12 6952 .cfi_offset 8, -8 6953 .cfi_offset 14, -4 6954 0004 82B0 sub sp, sp, #8 6955 .LCFI88: 6956 .cfi_def_cfa_offset 32 6957 0006 0446 mov r4, r0 6958 0008 1546 mov r5, r2 6959 000a 089A ldr r2, [sp, #32] 6960 .LVL439: 3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 6961 .loc 1 3245 3 is_stmt 1 view .LVU2330 3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6962 .loc 1 3246 3 view .LVU2331 3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6963 .loc 1 3247 3 view .LVU2332 3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6964 .loc 1 3250 3 view .LVU2333 3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6965 .loc 1 3252 3 view .LVU2334 3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6966 .loc 1 3252 11 is_stmt 0 view .LVU2335 6967 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6968 .LVL440: 3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6969 .loc 1 3252 11 view .LVU2336 6970 0010 C0B2 uxtb r0, r0 3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6971 .loc 1 3252 6 view .LVU2337 6972 0012 2028 cmp r0, #32 6973 0014 40F09D80 bne .L459 6974 0018 0E46 mov r6, r1 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6975 .loc 1 3255 5 is_stmt 1 view .LVU2338 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6976 .loc 1 3255 5 view .LVU2339 6977 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 6978 .LVL441: 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6979 .loc 1 3255 5 is_stmt 0 view .LVU2340 6980 001e 0129 cmp r1, #1 6981 0020 00F09B80 beq .L460 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6982 .loc 1 3255 5 is_stmt 1 discriminator 2 view .LVU2341 6983 0024 0121 movs r1, #1 6984 0026 84F84010 strb r1, [r4, #64] 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6985 .loc 1 3255 5 discriminator 2 view .LVU2342 ARM GAS /tmp/ccEimIdZ.s page 278 3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6986 .loc 1 3257 5 discriminator 2 view .LVU2343 3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6987 .loc 1 3257 21 is_stmt 0 discriminator 2 view .LVU2344 6988 002a 2121 movs r1, #33 6989 002c 84F84110 strb r1, [r4, #65] 3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6990 .loc 1 3258 5 is_stmt 1 discriminator 2 view .LVU2345 3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6991 .loc 1 3258 21 is_stmt 0 discriminator 2 view .LVU2346 6992 0030 1021 movs r1, #16 6993 0032 84F84210 strb r1, [r4, #66] 3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6994 .loc 1 3259 5 is_stmt 1 discriminator 2 view .LVU2347 3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6995 .loc 1 3259 21 is_stmt 0 discriminator 2 view .LVU2348 6996 0036 0021 movs r1, #0 6997 0038 6164 str r1, [r4, #68] 3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6998 .loc 1 3262 5 is_stmt 1 discriminator 2 view .LVU2349 3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6999 .loc 1 3262 23 is_stmt 0 discriminator 2 view .LVU2350 7000 003a 6562 str r5, [r4, #36] 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7001 .loc 1 3263 5 is_stmt 1 discriminator 2 view .LVU2351 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7002 .loc 1 3263 23 is_stmt 0 discriminator 2 view .LVU2352 7003 003c 6385 strh r3, [r4, #42] @ movhi 3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7004 .loc 1 3264 5 is_stmt 1 discriminator 2 view .LVU2353 3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7005 .loc 1 3264 23 is_stmt 0 discriminator 2 view .LVU2354 7006 003e E262 str r2, [r4, #44] 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7007 .loc 1 3265 5 is_stmt 1 discriminator 2 view .LVU2355 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7008 .loc 1 3265 23 is_stmt 0 discriminator 2 view .LVU2356 7009 0040 474B ldr r3, .L466 7010 .LVL442: 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7011 .loc 1 3265 23 discriminator 2 view .LVU2357 7012 0042 6363 str r3, [r4, #52] 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7013 .loc 1 3268 5 is_stmt 1 discriminator 2 view .LVU2358 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7014 .loc 1 3268 13 is_stmt 0 discriminator 2 view .LVU2359 7015 0044 638D ldrh r3, [r4, #42] 7016 0046 9BB2 uxth r3, r3 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7017 .loc 1 3268 8 discriminator 2 view .LVU2360 7018 0048 FF2B cmp r3, #255 7019 004a 3AD9 bls .L450 3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7020 .loc 1 3270 7 is_stmt 1 view .LVU2361 3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7021 .loc 1 3270 22 is_stmt 0 view .LVU2362 7022 004c FF23 movs r3, #255 ARM GAS /tmp/ccEimIdZ.s page 279 7023 004e 2385 strh r3, [r4, #40] @ movhi 3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7024 .loc 1 3271 7 is_stmt 1 view .LVU2363 7025 .LVL443: 3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7026 .loc 1 3271 16 is_stmt 0 view .LVU2364 7027 0050 4FF08077 mov r7, #16777216 7028 .LVL444: 7029 .L451: 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7030 .loc 1 3281 5 is_stmt 1 view .LVU2365 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7031 .loc 1 3281 14 is_stmt 0 view .LVU2366 7032 0054 236B ldr r3, [r4, #48] 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7033 .loc 1 3281 8 view .LVU2367 7034 0056 112B cmp r3, #17 7035 0058 04D1 bne .L452 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7036 .loc 1 3281 59 discriminator 1 view .LVU2368 7037 005a B2F52A4F cmp r2, #43520 7038 005e 18BF it ne 7039 0060 AA2A cmpne r2, #170 7040 0062 32D1 bne .L461 7041 .L452: 3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7042 .loc 1 3288 7 is_stmt 1 view .LVU2369 7043 0064 2046 mov r0, r4 7044 0066 FFF7FEFF bl I2C_ConvertOtherXferOptions 7045 .LVL445: 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7046 .loc 1 3291 7 view .LVU2370 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7047 .loc 1 3291 15 is_stmt 0 view .LVU2371 7048 006a 638D ldrh r3, [r4, #42] 7049 006c 9BB2 uxth r3, r3 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7050 .loc 1 3291 10 view .LVU2372 7051 006e FF2B cmp r3, #255 7052 0070 2ED8 bhi .L462 3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7053 .loc 1 3293 9 is_stmt 1 view .LVU2373 3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7054 .loc 1 3293 18 is_stmt 0 view .LVU2374 7055 0072 E76A ldr r7, [r4, #44] 7056 .LVL446: 3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7057 .loc 1 3246 12 view .LVU2375 7058 0074 DFF8F880 ldr r8, .L466+16 7059 .L453: 7060 .LVL447: 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7061 .loc 1 3297 5 is_stmt 1 view .LVU2376 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7062 .loc 1 3297 13 is_stmt 0 view .LVU2377 7063 0078 228D ldrh r2, [r4, #40] 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 280 7064 .loc 1 3297 8 view .LVU2378 7065 007a 002A cmp r2, #0 7066 007c 55D0 beq .L454 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7067 .loc 1 3299 7 is_stmt 1 view .LVU2379 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7068 .loc 1 3299 15 is_stmt 0 view .LVU2380 7069 007e A36B ldr r3, [r4, #56] 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7070 .loc 1 3299 10 view .LVU2381 7071 0080 4BB3 cbz r3, .L455 3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7072 .loc 1 3302 9 is_stmt 1 view .LVU2382 3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7073 .loc 1 3302 40 is_stmt 0 view .LVU2383 7074 0082 384A ldr r2, .L466+4 7075 0084 DA63 str r2, [r3, #60] 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7076 .loc 1 3305 9 is_stmt 1 view .LVU2384 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7077 .loc 1 3305 13 is_stmt 0 view .LVU2385 7078 0086 A36B ldr r3, [r4, #56] 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7079 .loc 1 3305 41 view .LVU2386 7080 0088 374A ldr r2, .L466+8 7081 008a DA64 str r2, [r3, #76] 3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7082 .loc 1 3308 9 is_stmt 1 view .LVU2387 3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7083 .loc 1 3308 13 is_stmt 0 view .LVU2388 7084 008c A26B ldr r2, [r4, #56] 3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7085 .loc 1 3308 44 view .LVU2389 7086 008e 0023 movs r3, #0 7087 0090 1364 str r3, [r2, #64] 3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7088 .loc 1 3309 9 is_stmt 1 view .LVU2390 3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7089 .loc 1 3309 13 is_stmt 0 view .LVU2391 7090 0092 A26B ldr r2, [r4, #56] 3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7091 .loc 1 3309 41 view .LVU2392 7092 0094 1365 str r3, [r2, #80] 3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7093 .loc 1 3312 9 is_stmt 1 view .LVU2393 3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7094 .loc 1 3312 88 is_stmt 0 view .LVU2394 7095 0096 2268 ldr r2, [r4] 3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7096 .loc 1 3312 25 view .LVU2395 7097 0098 238D ldrh r3, [r4, #40] 7098 009a 2832 adds r2, r2, #40 7099 009c 2946 mov r1, r5 7100 009e A06B ldr r0, [r4, #56] 7101 00a0 FFF7FEFF bl HAL_DMA_Start_IT 7102 .LVL448: 3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 281 7103 .loc 1 3329 7 is_stmt 1 view .LVU2396 3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7104 .loc 1 3329 10 is_stmt 0 view .LVU2397 7105 00a4 28B3 cbz r0, .L465 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7106 .loc 1 3352 9 is_stmt 1 view .LVU2398 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7107 .loc 1 3352 25 is_stmt 0 view .LVU2399 7108 00a6 2023 movs r3, #32 7109 00a8 84F84130 strb r3, [r4, #65] 3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7110 .loc 1 3353 9 is_stmt 1 view .LVU2400 3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7111 .loc 1 3353 25 is_stmt 0 view .LVU2401 7112 00ac 0022 movs r2, #0 7113 00ae 84F84220 strb r2, [r4, #66] 3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7114 .loc 1 3356 9 is_stmt 1 view .LVU2402 3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7115 .loc 1 3356 25 is_stmt 0 view .LVU2403 7116 00b2 636C ldr r3, [r4, #68] 7117 00b4 43F01003 orr r3, r3, #16 7118 00b8 6364 str r3, [r4, #68] 3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7119 .loc 1 3359 9 is_stmt 1 view .LVU2404 3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7120 .loc 1 3359 9 view .LVU2405 7121 00ba 84F84020 strb r2, [r4, #64] 3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7122 .loc 1 3359 9 view .LVU2406 3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7123 .loc 1 3361 9 view .LVU2407 3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7124 .loc 1 3361 16 is_stmt 0 view .LVU2408 7125 00be 0120 movs r0, #1 7126 .LVL449: 3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7127 .loc 1 3361 16 view .LVU2409 7128 00c0 48E0 b .L449 7129 .LVL450: 7130 .L450: 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7131 .loc 1 3275 7 is_stmt 1 view .LVU2410 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7132 .loc 1 3275 28 is_stmt 0 view .LVU2411 7133 00c2 638D ldrh r3, [r4, #42] 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7134 .loc 1 3275 22 view .LVU2412 7135 00c4 2385 strh r3, [r4, #40] @ movhi 3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7136 .loc 1 3276 7 is_stmt 1 view .LVU2413 3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7137 .loc 1 3276 16 is_stmt 0 view .LVU2414 7138 00c6 E76A ldr r7, [r4, #44] 7139 .LVL451: 3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7140 .loc 1 3276 16 view .LVU2415 ARM GAS /tmp/ccEimIdZ.s page 282 7141 00c8 C4E7 b .L451 7142 .L461: 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7143 .loc 1 3283 19 view .LVU2416 7144 00ca 4FF00008 mov r8, #0 7145 00ce D3E7 b .L453 7146 .L462: 3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7147 .loc 1 3246 12 view .LVU2417 7148 00d0 DFF89C80 ldr r8, .L466+16 7149 00d4 D0E7 b .L453 7150 .LVL452: 7151 .L455: 3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7152 .loc 1 3317 9 is_stmt 1 view .LVU2418 3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7153 .loc 1 3317 25 is_stmt 0 view .LVU2419 7154 00d6 2023 movs r3, #32 7155 00d8 84F84130 strb r3, [r4, #65] 3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7156 .loc 1 3318 9 is_stmt 1 view .LVU2420 3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7157 .loc 1 3318 25 is_stmt 0 view .LVU2421 7158 00dc 0022 movs r2, #0 7159 00de 84F84220 strb r2, [r4, #66] 3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7160 .loc 1 3321 9 is_stmt 1 view .LVU2422 3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7161 .loc 1 3321 25 is_stmt 0 view .LVU2423 7162 00e2 636C ldr r3, [r4, #68] 7163 00e4 43F08003 orr r3, r3, #128 7164 00e8 6364 str r3, [r4, #68] 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7165 .loc 1 3324 9 is_stmt 1 view .LVU2424 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7166 .loc 1 3324 9 view .LVU2425 7167 00ea 84F84020 strb r2, [r4, #64] 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7168 .loc 1 3324 9 view .LVU2426 3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7169 .loc 1 3326 9 view .LVU2427 3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7170 .loc 1 3326 16 is_stmt 0 view .LVU2428 7171 00ee 0120 movs r0, #1 7172 00f0 30E0 b .L449 7173 .LVL453: 7174 .L465: 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7175 .loc 1 3332 9 is_stmt 1 view .LVU2429 7176 00f2 CDF80080 str r8, [sp] 7177 00f6 3B46 mov r3, r7 7178 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7179 00fc 3146 mov r1, r6 7180 00fe 2046 mov r0, r4 7181 .LVL454: 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7182 .loc 1 3332 9 is_stmt 0 view .LVU2430 ARM GAS /tmp/ccEimIdZ.s page 283 7183 0100 FFF7FEFF bl I2C_TransferConfig 7184 .LVL455: 3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7185 .loc 1 3335 9 is_stmt 1 view .LVU2431 3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7186 .loc 1 3335 25 is_stmt 0 view .LVU2432 7187 0104 638D ldrh r3, [r4, #42] 7188 0106 9BB2 uxth r3, r3 3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7189 .loc 1 3335 32 view .LVU2433 7190 0108 228D ldrh r2, [r4, #40] 3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7191 .loc 1 3335 25 view .LVU2434 7192 010a 9B1A subs r3, r3, r2 7193 010c 9BB2 uxth r3, r3 7194 010e 6385 strh r3, [r4, #42] @ movhi 3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7195 .loc 1 3338 9 is_stmt 1 view .LVU2435 3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7196 .loc 1 3338 9 view .LVU2436 7197 0110 0023 movs r3, #0 7198 0112 84F84030 strb r3, [r4, #64] 3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7199 .loc 1 3338 9 view .LVU2437 3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7200 .loc 1 3344 9 view .LVU2438 7201 0116 1021 movs r1, #16 7202 0118 2046 mov r0, r4 7203 011a FFF7FEFF bl I2C_Enable_IRQ 7204 .LVL456: 3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7205 .loc 1 3347 9 view .LVU2439 3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7206 .loc 1 3347 13 is_stmt 0 view .LVU2440 7207 011e 2268 ldr r2, [r4] 3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7208 .loc 1 3347 29 view .LVU2441 7209 0120 1368 ldr r3, [r2] 7210 0122 43F48043 orr r3, r3, #16384 7211 0126 1360 str r3, [r2] 7212 0128 11E0 b .L458 7213 .L454: 3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7214 .loc 1 3367 7 is_stmt 1 view .LVU2442 3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7215 .loc 1 3367 21 is_stmt 0 view .LVU2443 7216 012a 104B ldr r3, .L466+12 7217 012c 6363 str r3, [r4, #52] 3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7218 .loc 1 3371 7 is_stmt 1 view .LVU2444 7219 012e 104B ldr r3, .L466+16 7220 0130 0093 str r3, [sp] 7221 0132 4FF00073 mov r3, #33554432 7222 0136 D2B2 uxtb r2, r2 7223 0138 3146 mov r1, r6 7224 013a 2046 mov r0, r4 7225 013c FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/ccEimIdZ.s page 284 7226 .LVL457: 3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7227 .loc 1 3374 7 view .LVU2445 3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7228 .loc 1 3374 7 view .LVU2446 7229 0140 0023 movs r3, #0 7230 0142 84F84030 strb r3, [r4, #64] 3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7231 .loc 1 3374 7 view .LVU2447 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7232 .loc 1 3382 7 view .LVU2448 7233 0146 0121 movs r1, #1 7234 0148 2046 mov r0, r4 7235 014a FFF7FEFF bl I2C_Enable_IRQ 7236 .LVL458: 7237 .L458: 3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7238 .loc 1 3385 5 view .LVU2449 3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7239 .loc 1 3385 12 is_stmt 0 view .LVU2450 7240 014e 0020 movs r0, #0 7241 0150 00E0 b .L449 7242 .LVL459: 7243 .L459: 3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7244 .loc 1 3389 12 view .LVU2451 7245 0152 0220 movs r0, #2 7246 .LVL460: 7247 .L449: 3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7248 .loc 1 3391 1 view .LVU2452 7249 0154 02B0 add sp, sp, #8 7250 .LCFI89: 7251 .cfi_remember_state 7252 .cfi_def_cfa_offset 24 7253 @ sp needed 7254 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7255 .LVL461: 7256 .L460: 7257 .LCFI90: 7258 .cfi_restore_state 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7259 .loc 1 3255 5 view .LVU2453 7260 015a 0220 movs r0, #2 7261 015c FAE7 b .L449 7262 .L467: 7263 015e 00BF .align 2 7264 .L466: 7265 0160 00000000 .word I2C_Master_ISR_DMA 7266 0164 00000000 .word I2C_DMAMasterTransmitCplt 7267 0168 00000000 .word I2C_DMAError 7268 016c 00000000 .word I2C_Master_ISR_IT 7269 0170 00200080 .word -2147475456 7270 .cfi_endproc 7271 .LFE165: 7273 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7274 .align 1 ARM GAS /tmp/ccEimIdZ.s page 285 7275 .global HAL_I2C_Master_Seq_Receive_IT 7276 .syntax unified 7277 .thumb 7278 .thumb_func 7279 .fpu fpv5-d16 7281 HAL_I2C_Master_Seq_Receive_IT: 7282 .LVL462: 7283 .LFB166: 3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7284 .loc 1 3406 1 is_stmt 1 view -0 7285 .cfi_startproc 7286 @ args = 4, pretend = 0, frame = 0 7287 @ frame_needed = 0, uses_anonymous_args = 0 3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7288 .loc 1 3406 1 is_stmt 0 view .LVU2455 7289 0000 70B5 push {r4, r5, r6, lr} 7290 .LCFI91: 7291 .cfi_def_cfa_offset 16 7292 .cfi_offset 4, -16 7293 .cfi_offset 5, -12 7294 .cfi_offset 6, -8 7295 .cfi_offset 14, -4 7296 0002 82B0 sub sp, sp, #8 7297 .LCFI92: 7298 .cfi_def_cfa_offset 24 7299 0004 0446 mov r4, r0 7300 0006 0D46 mov r5, r1 7301 0008 0699 ldr r1, [sp, #24] 7302 .LVL463: 3407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7303 .loc 1 3407 3 is_stmt 1 view .LVU2456 3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7304 .loc 1 3408 3 view .LVU2457 3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7305 .loc 1 3411 3 view .LVU2458 3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7306 .loc 1 3413 3 view .LVU2459 3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7307 .loc 1 3413 11 is_stmt 0 view .LVU2460 7308 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7309 .LVL464: 3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7310 .loc 1 3413 11 view .LVU2461 7311 000e C0B2 uxtb r0, r0 3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7312 .loc 1 3413 6 view .LVU2462 7313 0010 2028 cmp r0, #32 7314 0012 46D1 bne .L474 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7315 .loc 1 3416 5 is_stmt 1 view .LVU2463 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7316 .loc 1 3416 5 view .LVU2464 7317 0014 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 7318 0018 0128 cmp r0, #1 7319 001a 44D0 beq .L475 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7320 .loc 1 3416 5 discriminator 2 view .LVU2465 ARM GAS /tmp/ccEimIdZ.s page 286 7321 001c 0120 movs r0, #1 7322 001e 84F84000 strb r0, [r4, #64] 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7323 .loc 1 3416 5 discriminator 2 view .LVU2466 3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7324 .loc 1 3418 5 discriminator 2 view .LVU2467 3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7325 .loc 1 3418 21 is_stmt 0 discriminator 2 view .LVU2468 7326 0022 2220 movs r0, #34 7327 0024 84F84100 strb r0, [r4, #65] 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7328 .loc 1 3419 5 is_stmt 1 discriminator 2 view .LVU2469 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7329 .loc 1 3419 21 is_stmt 0 discriminator 2 view .LVU2470 7330 0028 1020 movs r0, #16 7331 002a 84F84200 strb r0, [r4, #66] 3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7332 .loc 1 3420 5 is_stmt 1 discriminator 2 view .LVU2471 3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7333 .loc 1 3420 21 is_stmt 0 discriminator 2 view .LVU2472 7334 002e 0020 movs r0, #0 7335 0030 6064 str r0, [r4, #68] 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7336 .loc 1 3423 5 is_stmt 1 discriminator 2 view .LVU2473 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7337 .loc 1 3423 23 is_stmt 0 discriminator 2 view .LVU2474 7338 0032 6262 str r2, [r4, #36] 3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7339 .loc 1 3424 5 is_stmt 1 discriminator 2 view .LVU2475 3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7340 .loc 1 3424 23 is_stmt 0 discriminator 2 view .LVU2476 7341 0034 6385 strh r3, [r4, #42] @ movhi 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7342 .loc 1 3425 5 is_stmt 1 discriminator 2 view .LVU2477 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7343 .loc 1 3425 23 is_stmt 0 discriminator 2 view .LVU2478 7344 0036 E162 str r1, [r4, #44] 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7345 .loc 1 3426 5 is_stmt 1 discriminator 2 view .LVU2479 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7346 .loc 1 3426 23 is_stmt 0 discriminator 2 view .LVU2480 7347 0038 1C4B ldr r3, .L479 7348 .LVL465: 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7349 .loc 1 3426 23 discriminator 2 view .LVU2481 7350 003a 6363 str r3, [r4, #52] 3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7351 .loc 1 3429 5 is_stmt 1 discriminator 2 view .LVU2482 3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7352 .loc 1 3429 13 is_stmt 0 discriminator 2 view .LVU2483 7353 003c 638D ldrh r3, [r4, #42] 7354 003e 9BB2 uxth r3, r3 3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7355 .loc 1 3429 8 discriminator 2 view .LVU2484 7356 0040 FF2B cmp r3, #255 7357 0042 26D9 bls .L470 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/ccEimIdZ.s page 287 7358 .loc 1 3431 7 is_stmt 1 view .LVU2485 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7359 .loc 1 3431 22 is_stmt 0 view .LVU2486 7360 0044 FF23 movs r3, #255 7361 0046 2385 strh r3, [r4, #40] @ movhi 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7362 .loc 1 3432 7 is_stmt 1 view .LVU2487 7363 .LVL466: 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7364 .loc 1 3432 16 is_stmt 0 view .LVU2488 7365 0048 4FF08076 mov r6, #16777216 7366 .LVL467: 7367 .L471: 3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7368 .loc 1 3442 5 is_stmt 1 view .LVU2489 3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7369 .loc 1 3442 14 is_stmt 0 view .LVU2490 7370 004c 236B ldr r3, [r4, #48] 3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7371 .loc 1 3442 8 view .LVU2491 7372 004e 122B cmp r3, #18 7373 0050 04D1 bne .L472 3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7374 .loc 1 3442 59 discriminator 1 view .LVU2492 7375 0052 B1F52A4F cmp r1, #43520 7376 0056 18BF it ne 7377 0058 AA29 cmpne r1, #170 7378 005a 1ED1 bne .L476 7379 .L472: 3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7380 .loc 1 3449 7 is_stmt 1 view .LVU2493 7381 005c 2046 mov r0, r4 7382 005e FFF7FEFF bl I2C_ConvertOtherXferOptions 7383 .LVL468: 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7384 .loc 1 3452 7 view .LVU2494 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7385 .loc 1 3452 15 is_stmt 0 view .LVU2495 7386 0062 638D ldrh r3, [r4, #42] 7387 0064 9BB2 uxth r3, r3 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7388 .loc 1 3452 10 view .LVU2496 7389 0066 FF2B cmp r3, #255 7390 0068 19D8 bhi .L477 3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7391 .loc 1 3454 9 is_stmt 1 view .LVU2497 3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7392 .loc 1 3454 18 is_stmt 0 view .LVU2498 7393 006a E66A ldr r6, [r4, #44] 7394 .LVL469: 3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7395 .loc 1 3408 12 view .LVU2499 7396 006c 104B ldr r3, .L479+4 7397 .L473: 7398 .LVL470: 3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7399 .loc 1 3459 5 is_stmt 1 view .LVU2500 ARM GAS /tmp/ccEimIdZ.s page 288 7400 006e 0093 str r3, [sp] 7401 0070 3346 mov r3, r6 7402 .LVL471: 3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7403 .loc 1 3459 5 is_stmt 0 view .LVU2501 7404 0072 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7405 0076 2946 mov r1, r5 7406 0078 2046 mov r0, r4 7407 007a FFF7FEFF bl I2C_TransferConfig 7408 .LVL472: 3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7409 .loc 1 3462 5 is_stmt 1 view .LVU2502 3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7410 .loc 1 3462 5 view .LVU2503 7411 007e 0025 movs r5, #0 7412 0080 84F84050 strb r5, [r4, #64] 3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7413 .loc 1 3462 5 view .LVU2504 3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7414 .loc 1 3467 5 view .LVU2505 7415 0084 0221 movs r1, #2 7416 0086 2046 mov r0, r4 7417 0088 FFF7FEFF bl I2C_Enable_IRQ 7418 .LVL473: 3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7419 .loc 1 3469 5 view .LVU2506 3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7420 .loc 1 3469 12 is_stmt 0 view .LVU2507 7421 008c 2846 mov r0, r5 7422 .LVL474: 7423 .L469: 3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7424 .loc 1 3475 1 view .LVU2508 7425 008e 02B0 add sp, sp, #8 7426 .LCFI93: 7427 .cfi_remember_state 7428 .cfi_def_cfa_offset 16 7429 @ sp needed 7430 0090 70BD pop {r4, r5, r6, pc} 7431 .LVL475: 7432 .L470: 7433 .LCFI94: 7434 .cfi_restore_state 3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7435 .loc 1 3436 7 is_stmt 1 view .LVU2509 3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7436 .loc 1 3436 28 is_stmt 0 view .LVU2510 7437 0092 638D ldrh r3, [r4, #42] 3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7438 .loc 1 3436 22 view .LVU2511 7439 0094 2385 strh r3, [r4, #40] @ movhi 3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7440 .loc 1 3437 7 is_stmt 1 view .LVU2512 3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7441 .loc 1 3437 16 is_stmt 0 view .LVU2513 7442 0096 E66A ldr r6, [r4, #44] 7443 .LVL476: ARM GAS /tmp/ccEimIdZ.s page 289 3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7444 .loc 1 3437 16 view .LVU2514 7445 0098 D8E7 b .L471 7446 .L476: 3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7447 .loc 1 3444 19 view .LVU2515 7448 009a 0023 movs r3, #0 7449 009c E7E7 b .L473 7450 .LVL477: 7451 .L477: 3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7452 .loc 1 3408 12 view .LVU2516 7453 009e 044B ldr r3, .L479+4 7454 00a0 E5E7 b .L473 7455 .LVL478: 7456 .L474: 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7457 .loc 1 3473 12 view .LVU2517 7458 00a2 0220 movs r0, #2 7459 00a4 F3E7 b .L469 7460 .L475: 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7461 .loc 1 3416 5 view .LVU2518 7462 00a6 0220 movs r0, #2 7463 00a8 F1E7 b .L469 7464 .L480: 7465 00aa 00BF .align 2 7466 .L479: 7467 00ac 00000000 .word I2C_Master_ISR_IT 7468 00b0 00240080 .word -2147474432 7469 .cfi_endproc 7470 .LFE166: 7472 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 7473 .align 1 7474 .global HAL_I2C_Master_Seq_Receive_DMA 7475 .syntax unified 7476 .thumb 7477 .thumb_func 7478 .fpu fpv5-d16 7480 HAL_I2C_Master_Seq_Receive_DMA: 7481 .LVL479: 7482 .LFB167: 3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7483 .loc 1 3490 1 is_stmt 1 view -0 7484 .cfi_startproc 7485 @ args = 4, pretend = 0, frame = 0 7486 @ frame_needed = 0, uses_anonymous_args = 0 3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7487 .loc 1 3490 1 is_stmt 0 view .LVU2520 7488 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7489 .LCFI95: 7490 .cfi_def_cfa_offset 24 7491 .cfi_offset 4, -24 7492 .cfi_offset 5, -20 7493 .cfi_offset 6, -16 7494 .cfi_offset 7, -12 7495 .cfi_offset 8, -8 ARM GAS /tmp/ccEimIdZ.s page 290 7496 .cfi_offset 14, -4 7497 0004 82B0 sub sp, sp, #8 7498 .LCFI96: 7499 .cfi_def_cfa_offset 32 7500 0006 0446 mov r4, r0 7501 0008 1546 mov r5, r2 7502 000a 089A ldr r2, [sp, #32] 7503 .LVL480: 3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7504 .loc 1 3491 3 is_stmt 1 view .LVU2521 3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7505 .loc 1 3492 3 view .LVU2522 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7506 .loc 1 3493 3 view .LVU2523 3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7507 .loc 1 3496 3 view .LVU2524 3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7508 .loc 1 3498 3 view .LVU2525 3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7509 .loc 1 3498 11 is_stmt 0 view .LVU2526 7510 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7511 .LVL481: 3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7512 .loc 1 3498 11 view .LVU2527 7513 0010 C0B2 uxtb r0, r0 3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7514 .loc 1 3498 6 view .LVU2528 7515 0012 2028 cmp r0, #32 7516 0014 40F09D80 bne .L492 7517 0018 0E46 mov r6, r1 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7518 .loc 1 3501 5 is_stmt 1 view .LVU2529 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7519 .loc 1 3501 5 view .LVU2530 7520 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7521 .LVL482: 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7522 .loc 1 3501 5 is_stmt 0 view .LVU2531 7523 001e 0129 cmp r1, #1 7524 0020 00F09B80 beq .L493 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7525 .loc 1 3501 5 is_stmt 1 discriminator 2 view .LVU2532 7526 0024 0121 movs r1, #1 7527 0026 84F84010 strb r1, [r4, #64] 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7528 .loc 1 3501 5 discriminator 2 view .LVU2533 3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7529 .loc 1 3503 5 discriminator 2 view .LVU2534 3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7530 .loc 1 3503 21 is_stmt 0 discriminator 2 view .LVU2535 7531 002a 2221 movs r1, #34 7532 002c 84F84110 strb r1, [r4, #65] 3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7533 .loc 1 3504 5 is_stmt 1 discriminator 2 view .LVU2536 3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7534 .loc 1 3504 21 is_stmt 0 discriminator 2 view .LVU2537 7535 0030 1021 movs r1, #16 ARM GAS /tmp/ccEimIdZ.s page 291 7536 0032 84F84210 strb r1, [r4, #66] 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7537 .loc 1 3505 5 is_stmt 1 discriminator 2 view .LVU2538 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7538 .loc 1 3505 21 is_stmt 0 discriminator 2 view .LVU2539 7539 0036 0021 movs r1, #0 7540 0038 6164 str r1, [r4, #68] 3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7541 .loc 1 3508 5 is_stmt 1 discriminator 2 view .LVU2540 3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7542 .loc 1 3508 23 is_stmt 0 discriminator 2 view .LVU2541 7543 003a 6562 str r5, [r4, #36] 3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7544 .loc 1 3509 5 is_stmt 1 discriminator 2 view .LVU2542 3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7545 .loc 1 3509 23 is_stmt 0 discriminator 2 view .LVU2543 7546 003c 6385 strh r3, [r4, #42] @ movhi 3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7547 .loc 1 3510 5 is_stmt 1 discriminator 2 view .LVU2544 3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7548 .loc 1 3510 23 is_stmt 0 discriminator 2 view .LVU2545 7549 003e E262 str r2, [r4, #44] 3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7550 .loc 1 3511 5 is_stmt 1 discriminator 2 view .LVU2546 3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7551 .loc 1 3511 23 is_stmt 0 discriminator 2 view .LVU2547 7552 0040 474B ldr r3, .L499 7553 .LVL483: 3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7554 .loc 1 3511 23 discriminator 2 view .LVU2548 7555 0042 6363 str r3, [r4, #52] 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7556 .loc 1 3514 5 is_stmt 1 discriminator 2 view .LVU2549 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7557 .loc 1 3514 13 is_stmt 0 discriminator 2 view .LVU2550 7558 0044 638D ldrh r3, [r4, #42] 7559 0046 9BB2 uxth r3, r3 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7560 .loc 1 3514 8 discriminator 2 view .LVU2551 7561 0048 FF2B cmp r3, #255 7562 004a 3AD9 bls .L483 3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7563 .loc 1 3516 7 is_stmt 1 view .LVU2552 3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7564 .loc 1 3516 22 is_stmt 0 view .LVU2553 7565 004c FF23 movs r3, #255 7566 004e 2385 strh r3, [r4, #40] @ movhi 3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7567 .loc 1 3517 7 is_stmt 1 view .LVU2554 7568 .LVL484: 3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7569 .loc 1 3517 16 is_stmt 0 view .LVU2555 7570 0050 4FF08077 mov r7, #16777216 7571 .LVL485: 7572 .L484: 3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7573 .loc 1 3527 5 is_stmt 1 view .LVU2556 ARM GAS /tmp/ccEimIdZ.s page 292 3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7574 .loc 1 3527 14 is_stmt 0 view .LVU2557 7575 0054 236B ldr r3, [r4, #48] 3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7576 .loc 1 3527 8 view .LVU2558 7577 0056 122B cmp r3, #18 7578 0058 04D1 bne .L485 3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7579 .loc 1 3527 59 discriminator 1 view .LVU2559 7580 005a B2F52A4F cmp r2, #43520 7581 005e 18BF it ne 7582 0060 AA2A cmpne r2, #170 7583 0062 32D1 bne .L494 7584 .L485: 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7585 .loc 1 3534 7 is_stmt 1 view .LVU2560 7586 0064 2046 mov r0, r4 7587 0066 FFF7FEFF bl I2C_ConvertOtherXferOptions 7588 .LVL486: 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7589 .loc 1 3537 7 view .LVU2561 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7590 .loc 1 3537 15 is_stmt 0 view .LVU2562 7591 006a 638D ldrh r3, [r4, #42] 7592 006c 9BB2 uxth r3, r3 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7593 .loc 1 3537 10 view .LVU2563 7594 006e FF2B cmp r3, #255 7595 0070 2ED8 bhi .L495 3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7596 .loc 1 3539 9 is_stmt 1 view .LVU2564 3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7597 .loc 1 3539 18 is_stmt 0 view .LVU2565 7598 0072 E76A ldr r7, [r4, #44] 7599 .LVL487: 3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7600 .loc 1 3492 12 view .LVU2566 7601 0074 DFF8F880 ldr r8, .L499+16 7602 .L486: 7603 .LVL488: 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7604 .loc 1 3543 5 is_stmt 1 view .LVU2567 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7605 .loc 1 3543 13 is_stmt 0 view .LVU2568 7606 0078 228D ldrh r2, [r4, #40] 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7607 .loc 1 3543 8 view .LVU2569 7608 007a 002A cmp r2, #0 7609 007c 55D0 beq .L487 3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7610 .loc 1 3545 7 is_stmt 1 view .LVU2570 3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7611 .loc 1 3545 15 is_stmt 0 view .LVU2571 7612 007e E36B ldr r3, [r4, #60] 3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7613 .loc 1 3545 10 view .LVU2572 7614 0080 4BB3 cbz r3, .L488 ARM GAS /tmp/ccEimIdZ.s page 293 3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7615 .loc 1 3548 9 is_stmt 1 view .LVU2573 3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7616 .loc 1 3548 40 is_stmt 0 view .LVU2574 7617 0082 384A ldr r2, .L499+4 7618 0084 DA63 str r2, [r3, #60] 3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7619 .loc 1 3551 9 is_stmt 1 view .LVU2575 3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7620 .loc 1 3551 13 is_stmt 0 view .LVU2576 7621 0086 E36B ldr r3, [r4, #60] 3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7622 .loc 1 3551 41 view .LVU2577 7623 0088 374A ldr r2, .L499+8 7624 008a DA64 str r2, [r3, #76] 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7625 .loc 1 3554 9 is_stmt 1 view .LVU2578 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7626 .loc 1 3554 13 is_stmt 0 view .LVU2579 7627 008c E26B ldr r2, [r4, #60] 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7628 .loc 1 3554 44 view .LVU2580 7629 008e 0023 movs r3, #0 7630 0090 1364 str r3, [r2, #64] 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7631 .loc 1 3555 9 is_stmt 1 view .LVU2581 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7632 .loc 1 3555 13 is_stmt 0 view .LVU2582 7633 0092 E26B ldr r2, [r4, #60] 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7634 .loc 1 3555 41 view .LVU2583 7635 0094 1365 str r3, [r2, #80] 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7636 .loc 1 3558 9 is_stmt 1 view .LVU2584 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7637 .loc 1 3558 71 is_stmt 0 view .LVU2585 7638 0096 2168 ldr r1, [r4] 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7639 .loc 1 3558 25 view .LVU2586 7640 0098 238D ldrh r3, [r4, #40] 7641 009a 2A46 mov r2, r5 7642 009c 2431 adds r1, r1, #36 7643 009e E06B ldr r0, [r4, #60] 7644 00a0 FFF7FEFF bl HAL_DMA_Start_IT 7645 .LVL489: 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7646 .loc 1 3575 7 is_stmt 1 view .LVU2587 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7647 .loc 1 3575 10 is_stmt 0 view .LVU2588 7648 00a4 28B3 cbz r0, .L498 3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7649 .loc 1 3598 9 is_stmt 1 view .LVU2589 3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7650 .loc 1 3598 25 is_stmt 0 view .LVU2590 7651 00a6 2023 movs r3, #32 7652 00a8 84F84130 strb r3, [r4, #65] 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 294 7653 .loc 1 3599 9 is_stmt 1 view .LVU2591 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7654 .loc 1 3599 25 is_stmt 0 view .LVU2592 7655 00ac 0022 movs r2, #0 7656 00ae 84F84220 strb r2, [r4, #66] 3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7657 .loc 1 3602 9 is_stmt 1 view .LVU2593 3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7658 .loc 1 3602 25 is_stmt 0 view .LVU2594 7659 00b2 636C ldr r3, [r4, #68] 7660 00b4 43F01003 orr r3, r3, #16 7661 00b8 6364 str r3, [r4, #68] 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7662 .loc 1 3605 9 is_stmt 1 view .LVU2595 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7663 .loc 1 3605 9 view .LVU2596 7664 00ba 84F84020 strb r2, [r4, #64] 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7665 .loc 1 3605 9 view .LVU2597 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7666 .loc 1 3607 9 view .LVU2598 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7667 .loc 1 3607 16 is_stmt 0 view .LVU2599 7668 00be 0120 movs r0, #1 7669 .LVL490: 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7670 .loc 1 3607 16 view .LVU2600 7671 00c0 48E0 b .L482 7672 .LVL491: 7673 .L483: 3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7674 .loc 1 3521 7 is_stmt 1 view .LVU2601 3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7675 .loc 1 3521 28 is_stmt 0 view .LVU2602 7676 00c2 638D ldrh r3, [r4, #42] 3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7677 .loc 1 3521 22 view .LVU2603 7678 00c4 2385 strh r3, [r4, #40] @ movhi 3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7679 .loc 1 3522 7 is_stmt 1 view .LVU2604 3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7680 .loc 1 3522 16 is_stmt 0 view .LVU2605 7681 00c6 E76A ldr r7, [r4, #44] 7682 .LVL492: 3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7683 .loc 1 3522 16 view .LVU2606 7684 00c8 C4E7 b .L484 7685 .L494: 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7686 .loc 1 3529 19 view .LVU2607 7687 00ca 4FF00008 mov r8, #0 7688 00ce D3E7 b .L486 7689 .L495: 3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7690 .loc 1 3492 12 view .LVU2608 7691 00d0 DFF89C80 ldr r8, .L499+16 7692 00d4 D0E7 b .L486 ARM GAS /tmp/ccEimIdZ.s page 295 7693 .LVL493: 7694 .L488: 3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7695 .loc 1 3563 9 is_stmt 1 view .LVU2609 3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7696 .loc 1 3563 25 is_stmt 0 view .LVU2610 7697 00d6 2023 movs r3, #32 7698 00d8 84F84130 strb r3, [r4, #65] 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7699 .loc 1 3564 9 is_stmt 1 view .LVU2611 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7700 .loc 1 3564 25 is_stmt 0 view .LVU2612 7701 00dc 0022 movs r2, #0 7702 00de 84F84220 strb r2, [r4, #66] 3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7703 .loc 1 3567 9 is_stmt 1 view .LVU2613 3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7704 .loc 1 3567 25 is_stmt 0 view .LVU2614 7705 00e2 636C ldr r3, [r4, #68] 7706 00e4 43F08003 orr r3, r3, #128 7707 00e8 6364 str r3, [r4, #68] 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7708 .loc 1 3570 9 is_stmt 1 view .LVU2615 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7709 .loc 1 3570 9 view .LVU2616 7710 00ea 84F84020 strb r2, [r4, #64] 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7711 .loc 1 3570 9 view .LVU2617 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7712 .loc 1 3572 9 view .LVU2618 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7713 .loc 1 3572 16 is_stmt 0 view .LVU2619 7714 00ee 0120 movs r0, #1 7715 00f0 30E0 b .L482 7716 .LVL494: 7717 .L498: 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7718 .loc 1 3578 9 is_stmt 1 view .LVU2620 7719 00f2 CDF80080 str r8, [sp] 7720 00f6 3B46 mov r3, r7 7721 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7722 00fc 3146 mov r1, r6 7723 00fe 2046 mov r0, r4 7724 .LVL495: 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7725 .loc 1 3578 9 is_stmt 0 view .LVU2621 7726 0100 FFF7FEFF bl I2C_TransferConfig 7727 .LVL496: 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7728 .loc 1 3581 9 is_stmt 1 view .LVU2622 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7729 .loc 1 3581 25 is_stmt 0 view .LVU2623 7730 0104 638D ldrh r3, [r4, #42] 7731 0106 9BB2 uxth r3, r3 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7732 .loc 1 3581 32 view .LVU2624 7733 0108 228D ldrh r2, [r4, #40] ARM GAS /tmp/ccEimIdZ.s page 296 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7734 .loc 1 3581 25 view .LVU2625 7735 010a 9B1A subs r3, r3, r2 7736 010c 9BB2 uxth r3, r3 7737 010e 6385 strh r3, [r4, #42] @ movhi 3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7738 .loc 1 3584 9 is_stmt 1 view .LVU2626 3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7739 .loc 1 3584 9 view .LVU2627 7740 0110 0023 movs r3, #0 7741 0112 84F84030 strb r3, [r4, #64] 3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7742 .loc 1 3584 9 view .LVU2628 3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7743 .loc 1 3590 9 view .LVU2629 7744 0116 1021 movs r1, #16 7745 0118 2046 mov r0, r4 7746 011a FFF7FEFF bl I2C_Enable_IRQ 7747 .LVL497: 3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7748 .loc 1 3593 9 view .LVU2630 3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7749 .loc 1 3593 13 is_stmt 0 view .LVU2631 7750 011e 2268 ldr r2, [r4] 3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7751 .loc 1 3593 29 view .LVU2632 7752 0120 1368 ldr r3, [r2] 7753 0122 43F40043 orr r3, r3, #32768 7754 0126 1360 str r3, [r2] 7755 0128 11E0 b .L491 7756 .L487: 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7757 .loc 1 3613 7 is_stmt 1 view .LVU2633 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7758 .loc 1 3613 21 is_stmt 0 view .LVU2634 7759 012a 104B ldr r3, .L499+12 7760 012c 6363 str r3, [r4, #52] 3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7761 .loc 1 3617 7 is_stmt 1 view .LVU2635 7762 012e 104B ldr r3, .L499+16 7763 0130 0093 str r3, [sp] 7764 0132 4FF00073 mov r3, #33554432 7765 0136 D2B2 uxtb r2, r2 7766 0138 3146 mov r1, r6 7767 013a 2046 mov r0, r4 7768 013c FFF7FEFF bl I2C_TransferConfig 7769 .LVL498: 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7770 .loc 1 3620 7 view .LVU2636 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7771 .loc 1 3620 7 view .LVU2637 7772 0140 0023 movs r3, #0 7773 0142 84F84030 strb r3, [r4, #64] 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7774 .loc 1 3620 7 view .LVU2638 3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7775 .loc 1 3628 7 view .LVU2639 ARM GAS /tmp/ccEimIdZ.s page 297 7776 0146 0121 movs r1, #1 7777 0148 2046 mov r0, r4 7778 014a FFF7FEFF bl I2C_Enable_IRQ 7779 .LVL499: 7780 .L491: 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7781 .loc 1 3631 5 view .LVU2640 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7782 .loc 1 3631 12 is_stmt 0 view .LVU2641 7783 014e 0020 movs r0, #0 7784 0150 00E0 b .L482 7785 .LVL500: 7786 .L492: 3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7787 .loc 1 3635 12 view .LVU2642 7788 0152 0220 movs r0, #2 7789 .LVL501: 7790 .L482: 3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7791 .loc 1 3637 1 view .LVU2643 7792 0154 02B0 add sp, sp, #8 7793 .LCFI97: 7794 .cfi_remember_state 7795 .cfi_def_cfa_offset 24 7796 @ sp needed 7797 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7798 .LVL502: 7799 .L493: 7800 .LCFI98: 7801 .cfi_restore_state 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7802 .loc 1 3501 5 view .LVU2644 7803 015a 0220 movs r0, #2 7804 015c FAE7 b .L482 7805 .L500: 7806 015e 00BF .align 2 7807 .L499: 7808 0160 00000000 .word I2C_Master_ISR_DMA 7809 0164 00000000 .word I2C_DMAMasterReceiveCplt 7810 0168 00000000 .word I2C_DMAError 7811 016c 00000000 .word I2C_Master_ISR_IT 7812 0170 00240080 .word -2147474432 7813 .cfi_endproc 7814 .LFE167: 7816 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 7817 .align 1 7818 .global HAL_I2C_Slave_Seq_Transmit_IT 7819 .syntax unified 7820 .thumb 7821 .thumb_func 7822 .fpu fpv5-d16 7824 HAL_I2C_Slave_Seq_Transmit_IT: 7825 .LVL503: 7826 .LFB168: 3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 7827 .loc 1 3650 1 is_stmt 1 view -0 7828 .cfi_startproc ARM GAS /tmp/ccEimIdZ.s page 298 7829 @ args = 0, pretend = 0, frame = 0 7830 @ frame_needed = 0, uses_anonymous_args = 0 3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 7831 .loc 1 3650 1 is_stmt 0 view .LVU2646 7832 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 7833 .LCFI99: 7834 .cfi_def_cfa_offset 24 7835 .cfi_offset 3, -24 7836 .cfi_offset 4, -20 7837 .cfi_offset 5, -16 7838 .cfi_offset 6, -12 7839 .cfi_offset 7, -8 7840 .cfi_offset 14, -4 7841 0002 0446 mov r4, r0 3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7842 .loc 1 3652 3 is_stmt 1 view .LVU2647 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7843 .loc 1 3654 3 view .LVU2648 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7844 .loc 1 3654 22 is_stmt 0 view .LVU2649 7845 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7846 .LVL504: 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7847 .loc 1 3654 6 view .LVU2650 7848 0008 00F02800 and r0, r0, #40 7849 000c 2828 cmp r0, #40 7850 000e 5CD1 bne .L506 7851 0010 0F46 mov r7, r1 7852 0012 1646 mov r6, r2 7853 0014 1D46 mov r5, r3 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7854 .loc 1 3656 5 is_stmt 1 view .LVU2651 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7855 .loc 1 3656 8 is_stmt 0 view .LVU2652 7856 0016 002A cmp r2, #0 7857 0018 18BF it ne 7858 001a 0029 cmpne r1, #0 7859 001c 04D1 bne .L503 3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7860 .loc 1 3658 7 is_stmt 1 view .LVU2653 3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7861 .loc 1 3658 23 is_stmt 0 view .LVU2654 7862 001e 4FF40073 mov r3, #512 7863 .LVL505: 3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7864 .loc 1 3658 23 view .LVU2655 7865 0022 6364 str r3, [r4, #68] 3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7866 .loc 1 3659 7 is_stmt 1 view .LVU2656 3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7867 .loc 1 3659 15 is_stmt 0 view .LVU2657 7868 0024 0120 movs r0, #1 7869 0026 51E0 b .L502 7870 .LVL506: 7871 .L503: 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7872 .loc 1 3663 5 is_stmt 1 view .LVU2658 ARM GAS /tmp/ccEimIdZ.s page 299 7873 0028 48F20101 movw r1, #32769 7874 .LVL507: 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7875 .loc 1 3663 5 is_stmt 0 view .LVU2659 7876 002c 2046 mov r0, r4 7877 002e FFF7FEFF bl I2C_Disable_IRQ 7878 .LVL508: 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7879 .loc 1 3666 5 is_stmt 1 view .LVU2660 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7880 .loc 1 3666 5 view .LVU2661 7881 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 7882 0036 012B cmp r3, #1 7883 0038 49D0 beq .L507 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7884 .loc 1 3666 5 discriminator 2 view .LVU2662 7885 003a 0123 movs r3, #1 7886 003c 84F84030 strb r3, [r4, #64] 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7887 .loc 1 3666 5 discriminator 2 view .LVU2663 3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7888 .loc 1 3670 5 discriminator 2 view .LVU2664 3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7889 .loc 1 3670 13 is_stmt 0 discriminator 2 view .LVU2665 7890 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 7891 0044 DBB2 uxtb r3, r3 3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7892 .loc 1 3670 8 discriminator 2 view .LVU2666 7893 0046 2A2B cmp r3, #42 7894 0048 24D0 beq .L509 7895 .L504: 3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 7896 .loc 1 3696 5 is_stmt 1 view .LVU2667 3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 7897 .loc 1 3696 21 is_stmt 0 view .LVU2668 7898 004a 2923 movs r3, #41 7899 004c 84F84130 strb r3, [r4, #65] 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7900 .loc 1 3697 5 is_stmt 1 view .LVU2669 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7901 .loc 1 3697 21 is_stmt 0 view .LVU2670 7902 0050 2023 movs r3, #32 7903 0052 84F84230 strb r3, [r4, #66] 3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7904 .loc 1 3698 5 is_stmt 1 view .LVU2671 3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7905 .loc 1 3698 21 is_stmt 0 view .LVU2672 7906 0056 0023 movs r3, #0 7907 0058 6364 str r3, [r4, #68] 3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7908 .loc 1 3701 5 is_stmt 1 view .LVU2673 3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7909 .loc 1 3701 9 is_stmt 0 view .LVU2674 7910 005a 2268 ldr r2, [r4] 3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7911 .loc 1 3701 25 view .LVU2675 7912 005c 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccEimIdZ.s page 300 7913 005e 23F40043 bic r3, r3, #32768 7914 0062 5360 str r3, [r2, #4] 3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7915 .loc 1 3704 5 is_stmt 1 view .LVU2676 3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7916 .loc 1 3704 23 is_stmt 0 view .LVU2677 7917 0064 6762 str r7, [r4, #36] 3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 7918 .loc 1 3705 5 is_stmt 1 view .LVU2678 3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 7919 .loc 1 3705 23 is_stmt 0 view .LVU2679 7920 0066 6685 strh r6, [r4, #42] @ movhi 3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7921 .loc 1 3706 5 is_stmt 1 view .LVU2680 3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7922 .loc 1 3706 29 is_stmt 0 view .LVU2681 7923 0068 638D ldrh r3, [r4, #42] 3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7924 .loc 1 3706 23 view .LVU2682 7925 006a 2385 strh r3, [r4, #40] @ movhi 3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 7926 .loc 1 3707 5 is_stmt 1 view .LVU2683 3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 7927 .loc 1 3707 23 is_stmt 0 view .LVU2684 7928 006c E562 str r5, [r4, #44] 3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7929 .loc 1 3708 5 is_stmt 1 view .LVU2685 3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7930 .loc 1 3708 23 is_stmt 0 view .LVU2686 7931 006e 194B ldr r3, .L510 7932 0070 6363 str r3, [r4, #52] 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7933 .loc 1 3710 5 is_stmt 1 view .LVU2687 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7934 .loc 1 3710 9 is_stmt 0 view .LVU2688 7935 0072 2368 ldr r3, [r4] 7936 0074 9A69 ldr r2, [r3, #24] 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7937 .loc 1 3710 8 view .LVU2689 7938 0076 12F4803F tst r2, #65536 7939 007a 01D0 beq .L505 3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7940 .loc 1 3714 7 is_stmt 1 view .LVU2690 7941 007c 0822 movs r2, #8 7942 007e DA61 str r2, [r3, #28] 7943 .L505: 3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7944 .loc 1 3718 5 view .LVU2691 3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7945 .loc 1 3718 5 view .LVU2692 7946 0080 0025 movs r5, #0 7947 .LVL509: 3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7948 .loc 1 3718 5 is_stmt 0 view .LVU2693 7949 0082 84F84050 strb r5, [r4, #64] 3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7950 .loc 1 3718 5 is_stmt 1 view .LVU2694 ARM GAS /tmp/ccEimIdZ.s page 301 3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7951 .loc 1 3724 5 view .LVU2695 7952 0086 48F20101 movw r1, #32769 7953 008a 2046 mov r0, r4 7954 008c FFF7FEFF bl I2C_Enable_IRQ 7955 .LVL510: 3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7956 .loc 1 3726 5 view .LVU2696 3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7957 .loc 1 3726 12 is_stmt 0 view .LVU2697 7958 0090 2846 mov r0, r5 7959 0092 1BE0 b .L502 7960 .LVL511: 7961 .L509: 3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7962 .loc 1 3673 7 is_stmt 1 view .LVU2698 7963 0094 0221 movs r1, #2 7964 0096 2046 mov r0, r4 7965 0098 FFF7FEFF bl I2C_Disable_IRQ 7966 .LVL512: 3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7967 .loc 1 3676 7 view .LVU2699 3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7968 .loc 1 3676 16 is_stmt 0 view .LVU2700 7969 009c 2368 ldr r3, [r4] 3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7970 .loc 1 3676 26 view .LVU2701 7971 009e 1A68 ldr r2, [r3] 3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7972 .loc 1 3676 10 view .LVU2702 7973 00a0 12F4004F tst r2, #32768 7974 00a4 D1D0 beq .L504 3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7975 .loc 1 3678 9 is_stmt 1 view .LVU2703 3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7976 .loc 1 3678 29 is_stmt 0 view .LVU2704 7977 00a6 1A68 ldr r2, [r3] 7978 00a8 22F40042 bic r2, r2, #32768 7979 00ac 1A60 str r2, [r3] 3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7980 .loc 1 3680 9 is_stmt 1 view .LVU2705 3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7981 .loc 1 3680 17 is_stmt 0 view .LVU2706 7982 00ae E36B ldr r3, [r4, #60] 3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7983 .loc 1 3680 12 view .LVU2707 7984 00b0 002B cmp r3, #0 7985 00b2 CAD0 beq .L504 3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7986 .loc 1 3684 11 is_stmt 1 view .LVU2708 3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7987 .loc 1 3684 43 is_stmt 0 view .LVU2709 7988 00b4 084A ldr r2, .L510+4 7989 00b6 1A65 str r2, [r3, #80] 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7990 .loc 1 3687 11 is_stmt 1 view .LVU2710 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 302 7991 .loc 1 3687 15 is_stmt 0 view .LVU2711 7992 00b8 E06B ldr r0, [r4, #60] 7993 00ba FFF7FEFF bl HAL_DMA_Abort_IT 7994 .LVL513: 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7995 .loc 1 3687 14 view .LVU2712 7996 00be 0028 cmp r0, #0 7997 00c0 C3D0 beq .L504 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7998 .loc 1 3690 13 is_stmt 1 view .LVU2713 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7999 .loc 1 3690 17 is_stmt 0 view .LVU2714 8000 00c2 E06B ldr r0, [r4, #60] 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8001 .loc 1 3690 25 view .LVU2715 8002 00c4 036D ldr r3, [r0, #80] 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8003 .loc 1 3690 13 view .LVU2716 8004 00c6 9847 blx r3 8005 .LVL514: 8006 00c8 BFE7 b .L504 8007 .LVL515: 8008 .L506: 3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8009 .loc 1 3730 12 view .LVU2717 8010 00ca 0120 movs r0, #1 8011 .LVL516: 8012 .L502: 3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8013 .loc 1 3732 1 view .LVU2718 8014 00cc F8BD pop {r3, r4, r5, r6, r7, pc} 8015 .LVL517: 8016 .L507: 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8017 .loc 1 3666 5 view .LVU2719 8018 00ce 0220 movs r0, #2 8019 00d0 FCE7 b .L502 8020 .L511: 8021 00d2 00BF .align 2 8022 .L510: 8023 00d4 00000000 .word I2C_Slave_ISR_IT 8024 00d8 00000000 .word I2C_DMAAbort 8025 .cfi_endproc 8026 .LFE168: 8028 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8029 .align 1 8030 .global HAL_I2C_Slave_Seq_Transmit_DMA 8031 .syntax unified 8032 .thumb 8033 .thumb_func 8034 .fpu fpv5-d16 8036 HAL_I2C_Slave_Seq_Transmit_DMA: 8037 .LVL518: 8038 .LFB169: 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8039 .loc 1 3745 1 is_stmt 1 view -0 8040 .cfi_startproc ARM GAS /tmp/ccEimIdZ.s page 303 8041 @ args = 0, pretend = 0, frame = 0 8042 @ frame_needed = 0, uses_anonymous_args = 0 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8043 .loc 1 3745 1 is_stmt 0 view .LVU2721 8044 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8045 .LCFI100: 8046 .cfi_def_cfa_offset 24 8047 .cfi_offset 3, -24 8048 .cfi_offset 4, -20 8049 .cfi_offset 5, -16 8050 .cfi_offset 6, -12 8051 .cfi_offset 7, -8 8052 .cfi_offset 14, -4 8053 0002 0446 mov r4, r0 3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8054 .loc 1 3746 3 is_stmt 1 view .LVU2722 3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8055 .loc 1 3749 3 view .LVU2723 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8056 .loc 1 3751 3 view .LVU2724 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8057 .loc 1 3751 22 is_stmt 0 view .LVU2725 8058 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8059 .LVL519: 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8060 .loc 1 3751 6 view .LVU2726 8061 0008 00F02800 and r0, r0, #40 8062 000c 2828 cmp r0, #40 8063 000e 40F0BB80 bne .L522 8064 0012 0F46 mov r7, r1 8065 0014 1646 mov r6, r2 8066 0016 1D46 mov r5, r3 3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8067 .loc 1 3753 5 is_stmt 1 view .LVU2727 3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8068 .loc 1 3753 8 is_stmt 0 view .LVU2728 8069 0018 002A cmp r2, #0 8070 001a 18BF it ne 8071 001c 0029 cmpne r1, #0 8072 001e 4FD0 beq .L526 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8073 .loc 1 3760 5 is_stmt 1 view .LVU2729 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8074 .loc 1 3760 5 view .LVU2730 8075 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8076 .LVL520: 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8077 .loc 1 3760 5 is_stmt 0 view .LVU2731 8078 0024 012B cmp r3, #1 8079 0026 00F0B280 beq .L523 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8080 .loc 1 3760 5 is_stmt 1 discriminator 2 view .LVU2732 8081 002a 0123 movs r3, #1 8082 002c 84F84030 strb r3, [r4, #64] 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8083 .loc 1 3760 5 discriminator 2 view .LVU2733 3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 304 8084 .loc 1 3763 5 discriminator 2 view .LVU2734 8085 0030 48F20101 movw r1, #32769 8086 .LVL521: 3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8087 .loc 1 3763 5 is_stmt 0 discriminator 2 view .LVU2735 8088 0034 2046 mov r0, r4 8089 0036 FFF7FEFF bl I2C_Disable_IRQ 8090 .LVL522: 3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8091 .loc 1 3767 5 is_stmt 1 discriminator 2 view .LVU2736 3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8092 .loc 1 3767 13 is_stmt 0 discriminator 2 view .LVU2737 8093 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8094 003e DBB2 uxtb r3, r3 3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8095 .loc 1 3767 8 discriminator 2 view .LVU2738 8096 0040 2A2B cmp r3, #42 8097 0042 42D0 beq .L527 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8098 .loc 1 3792 10 is_stmt 1 view .LVU2739 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8099 .loc 1 3792 18 is_stmt 0 view .LVU2740 8100 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8101 0048 DBB2 uxtb r3, r3 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8102 .loc 1 3792 13 view .LVU2741 8103 004a 292B cmp r3, #41 8104 004c 59D0 beq .L528 8105 .L516: 3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8106 .loc 1 3817 5 is_stmt 1 view .LVU2742 3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8107 .loc 1 3819 5 view .LVU2743 3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8108 .loc 1 3819 21 is_stmt 0 view .LVU2744 8109 004e 2923 movs r3, #41 8110 0050 84F84130 strb r3, [r4, #65] 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8111 .loc 1 3820 5 is_stmt 1 view .LVU2745 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8112 .loc 1 3820 21 is_stmt 0 view .LVU2746 8113 0054 2023 movs r3, #32 8114 0056 84F84230 strb r3, [r4, #66] 3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8115 .loc 1 3821 5 is_stmt 1 view .LVU2747 3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8116 .loc 1 3821 21 is_stmt 0 view .LVU2748 8117 005a 0023 movs r3, #0 8118 005c 6364 str r3, [r4, #68] 3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8119 .loc 1 3824 5 is_stmt 1 view .LVU2749 3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8120 .loc 1 3824 9 is_stmt 0 view .LVU2750 8121 005e 2268 ldr r2, [r4] 3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8122 .loc 1 3824 25 view .LVU2751 8123 0060 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccEimIdZ.s page 305 8124 0062 23F40043 bic r3, r3, #32768 8125 0066 5360 str r3, [r2, #4] 3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8126 .loc 1 3827 5 is_stmt 1 view .LVU2752 3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8127 .loc 1 3827 23 is_stmt 0 view .LVU2753 8128 0068 6762 str r7, [r4, #36] 3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8129 .loc 1 3828 5 is_stmt 1 view .LVU2754 3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8130 .loc 1 3828 23 is_stmt 0 view .LVU2755 8131 006a 6685 strh r6, [r4, #42] @ movhi 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8132 .loc 1 3829 5 is_stmt 1 view .LVU2756 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8133 .loc 1 3829 29 is_stmt 0 view .LVU2757 8134 006c 638D ldrh r3, [r4, #42] 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8135 .loc 1 3829 23 view .LVU2758 8136 006e 2385 strh r3, [r4, #40] @ movhi 3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8137 .loc 1 3830 5 is_stmt 1 view .LVU2759 3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8138 .loc 1 3830 23 is_stmt 0 view .LVU2760 8139 0070 E562 str r5, [r4, #44] 3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8140 .loc 1 3831 5 is_stmt 1 view .LVU2761 3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8141 .loc 1 3831 23 is_stmt 0 view .LVU2762 8142 0072 484B ldr r3, .L529 8143 0074 6363 str r3, [r4, #52] 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8144 .loc 1 3833 5 is_stmt 1 view .LVU2763 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8145 .loc 1 3833 13 is_stmt 0 view .LVU2764 8146 0076 A36B ldr r3, [r4, #56] 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8147 .loc 1 3833 8 view .LVU2765 8148 0078 002B cmp r3, #0 8149 007a 59D0 beq .L517 3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8150 .loc 1 3836 7 is_stmt 1 view .LVU2766 3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8151 .loc 1 3836 38 is_stmt 0 view .LVU2767 8152 007c 464A ldr r2, .L529+4 8153 007e DA63 str r2, [r3, #60] 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8154 .loc 1 3839 7 is_stmt 1 view .LVU2768 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8155 .loc 1 3839 11 is_stmt 0 view .LVU2769 8156 0080 A36B ldr r3, [r4, #56] 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8157 .loc 1 3839 39 view .LVU2770 8158 0082 464A ldr r2, .L529+8 8159 0084 DA64 str r2, [r3, #76] 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8160 .loc 1 3842 7 is_stmt 1 view .LVU2771 ARM GAS /tmp/ccEimIdZ.s page 306 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8161 .loc 1 3842 11 is_stmt 0 view .LVU2772 8162 0086 A26B ldr r2, [r4, #56] 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8163 .loc 1 3842 42 view .LVU2773 8164 0088 0023 movs r3, #0 8165 008a 1364 str r3, [r2, #64] 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8166 .loc 1 3843 7 is_stmt 1 view .LVU2774 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8167 .loc 1 3843 11 is_stmt 0 view .LVU2775 8168 008c A26B ldr r2, [r4, #56] 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8169 .loc 1 3843 39 view .LVU2776 8170 008e 1365 str r3, [r2, #80] 3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8171 .loc 1 3846 7 is_stmt 1 view .LVU2777 3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8172 .loc 1 3846 86 is_stmt 0 view .LVU2778 8173 0090 2268 ldr r2, [r4] 3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8174 .loc 1 3846 23 view .LVU2779 8175 0092 238D ldrh r3, [r4, #40] 8176 0094 2832 adds r2, r2, #40 8177 0096 3946 mov r1, r7 8178 0098 A06B ldr r0, [r4, #56] 8179 009a FFF7FEFF bl HAL_DMA_Start_IT 8180 .LVL523: 3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8181 .loc 1 3863 5 is_stmt 1 view .LVU2780 3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8182 .loc 1 3863 8 is_stmt 0 view .LVU2781 8183 009e 0546 mov r5, r0 8184 .LVL524: 3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8185 .loc 1 3863 8 view .LVU2782 8186 00a0 0028 cmp r0, #0 8187 00a2 53D0 beq .L518 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8188 .loc 1 3874 7 is_stmt 1 view .LVU2783 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8189 .loc 1 3874 23 is_stmt 0 view .LVU2784 8190 00a4 2823 movs r3, #40 8191 00a6 84F84130 strb r3, [r4, #65] 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8192 .loc 1 3875 7 is_stmt 1 view .LVU2785 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8193 .loc 1 3875 23 is_stmt 0 view .LVU2786 8194 00aa 0022 movs r2, #0 8195 00ac 84F84220 strb r2, [r4, #66] 3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8196 .loc 1 3878 7 is_stmt 1 view .LVU2787 3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8197 .loc 1 3878 23 is_stmt 0 view .LVU2788 8198 00b0 636C ldr r3, [r4, #68] 8199 00b2 43F01003 orr r3, r3, #16 8200 00b6 6364 str r3, [r4, #68] ARM GAS /tmp/ccEimIdZ.s page 307 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8201 .loc 1 3881 7 is_stmt 1 view .LVU2789 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8202 .loc 1 3881 7 view .LVU2790 8203 00b8 84F84020 strb r2, [r4, #64] 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8204 .loc 1 3881 7 view .LVU2791 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8205 .loc 1 3883 7 view .LVU2792 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8206 .loc 1 3883 14 is_stmt 0 view .LVU2793 8207 00bc 0125 movs r5, #1 8208 00be 64E0 b .L513 8209 .LVL525: 8210 .L526: 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8211 .loc 1 3755 7 is_stmt 1 view .LVU2794 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8212 .loc 1 3755 23 is_stmt 0 view .LVU2795 8213 00c0 4FF40073 mov r3, #512 8214 .LVL526: 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8215 .loc 1 3755 23 view .LVU2796 8216 00c4 6364 str r3, [r4, #68] 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8217 .loc 1 3756 7 is_stmt 1 view .LVU2797 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8218 .loc 1 3756 15 is_stmt 0 view .LVU2798 8219 00c6 0125 movs r5, #1 8220 .LVL527: 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8221 .loc 1 3756 15 view .LVU2799 8222 00c8 5FE0 b .L513 8223 .LVL528: 8224 .L527: 3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8225 .loc 1 3770 7 is_stmt 1 view .LVU2800 8226 00ca 0221 movs r1, #2 8227 00cc 2046 mov r0, r4 8228 00ce FFF7FEFF bl I2C_Disable_IRQ 8229 .LVL529: 3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8230 .loc 1 3772 7 view .LVU2801 3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8231 .loc 1 3772 16 is_stmt 0 view .LVU2802 8232 00d2 2368 ldr r3, [r4] 3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8233 .loc 1 3772 26 view .LVU2803 8234 00d4 1A68 ldr r2, [r3] 3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8235 .loc 1 3772 10 view .LVU2804 8236 00d6 12F4004F tst r2, #32768 8237 00da B8D0 beq .L516 3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8238 .loc 1 3775 9 is_stmt 1 view .LVU2805 3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8239 .loc 1 3775 17 is_stmt 0 view .LVU2806 ARM GAS /tmp/ccEimIdZ.s page 308 8240 00dc E26B ldr r2, [r4, #60] 3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8241 .loc 1 3775 12 view .LVU2807 8242 00de 002A cmp r2, #0 8243 00e0 B5D0 beq .L516 3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8244 .loc 1 3777 11 is_stmt 1 view .LVU2808 3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8245 .loc 1 3777 31 is_stmt 0 view .LVU2809 8246 00e2 1A68 ldr r2, [r3] 8247 00e4 22F40042 bic r2, r2, #32768 8248 00e8 1A60 str r2, [r3] 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8249 .loc 1 3781 11 is_stmt 1 view .LVU2810 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8250 .loc 1 3781 15 is_stmt 0 view .LVU2811 8251 00ea E36B ldr r3, [r4, #60] 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8252 .loc 1 3781 43 view .LVU2812 8253 00ec 2C4A ldr r2, .L529+12 8254 00ee 1A65 str r2, [r3, #80] 3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8255 .loc 1 3784 11 is_stmt 1 view .LVU2813 3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8256 .loc 1 3784 15 is_stmt 0 view .LVU2814 8257 00f0 E06B ldr r0, [r4, #60] 8258 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 8259 .LVL530: 3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8260 .loc 1 3784 14 view .LVU2815 8261 00f6 0028 cmp r0, #0 8262 00f8 A9D0 beq .L516 3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8263 .loc 1 3787 13 is_stmt 1 view .LVU2816 3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8264 .loc 1 3787 17 is_stmt 0 view .LVU2817 8265 00fa E06B ldr r0, [r4, #60] 3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8266 .loc 1 3787 25 view .LVU2818 8267 00fc 036D ldr r3, [r0, #80] 3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8268 .loc 1 3787 13 view .LVU2819 8269 00fe 9847 blx r3 8270 .LVL531: 8271 0100 A5E7 b .L516 8272 .L528: 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8273 .loc 1 3794 7 is_stmt 1 view .LVU2820 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8274 .loc 1 3794 16 is_stmt 0 view .LVU2821 8275 0102 2368 ldr r3, [r4] 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8276 .loc 1 3794 26 view .LVU2822 8277 0104 1A68 ldr r2, [r3] 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8278 .loc 1 3794 10 view .LVU2823 8279 0106 12F4804F tst r2, #16384 ARM GAS /tmp/ccEimIdZ.s page 309 8280 010a A0D0 beq .L516 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8281 .loc 1 3796 9 is_stmt 1 view .LVU2824 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8282 .loc 1 3796 29 is_stmt 0 view .LVU2825 8283 010c 1A68 ldr r2, [r3] 8284 010e 22F48042 bic r2, r2, #16384 8285 0112 1A60 str r2, [r3] 3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8286 .loc 1 3799 9 is_stmt 1 view .LVU2826 3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8287 .loc 1 3799 17 is_stmt 0 view .LVU2827 8288 0114 A36B ldr r3, [r4, #56] 3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8289 .loc 1 3799 12 view .LVU2828 8290 0116 002B cmp r3, #0 8291 0118 99D0 beq .L516 3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8292 .loc 1 3803 11 is_stmt 1 view .LVU2829 3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8293 .loc 1 3803 43 is_stmt 0 view .LVU2830 8294 011a 214A ldr r2, .L529+12 8295 011c 1A65 str r2, [r3, #80] 3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8296 .loc 1 3806 11 is_stmt 1 view .LVU2831 3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8297 .loc 1 3806 15 is_stmt 0 view .LVU2832 8298 011e A06B ldr r0, [r4, #56] 8299 0120 FFF7FEFF bl HAL_DMA_Abort_IT 8300 .LVL532: 3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8301 .loc 1 3806 14 view .LVU2833 8302 0124 0028 cmp r0, #0 8303 0126 92D0 beq .L516 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8304 .loc 1 3809 13 is_stmt 1 view .LVU2834 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8305 .loc 1 3809 17 is_stmt 0 view .LVU2835 8306 0128 A06B ldr r0, [r4, #56] 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8307 .loc 1 3809 25 view .LVU2836 8308 012a 036D ldr r3, [r0, #80] 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8309 .loc 1 3809 13 view .LVU2837 8310 012c 9847 blx r3 8311 .LVL533: 8312 012e 8EE7 b .L516 8313 .L517: 3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8314 .loc 1 3851 7 is_stmt 1 view .LVU2838 3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8315 .loc 1 3851 23 is_stmt 0 view .LVU2839 8316 0130 2823 movs r3, #40 8317 0132 84F84130 strb r3, [r4, #65] 3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8318 .loc 1 3852 7 is_stmt 1 view .LVU2840 3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 310 8319 .loc 1 3852 23 is_stmt 0 view .LVU2841 8320 0136 0022 movs r2, #0 8321 0138 84F84220 strb r2, [r4, #66] 3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8322 .loc 1 3855 7 is_stmt 1 view .LVU2842 3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8323 .loc 1 3855 23 is_stmt 0 view .LVU2843 8324 013c 636C ldr r3, [r4, #68] 8325 013e 43F08003 orr r3, r3, #128 8326 0142 6364 str r3, [r4, #68] 3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8327 .loc 1 3858 7 is_stmt 1 view .LVU2844 3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8328 .loc 1 3858 7 view .LVU2845 8329 0144 84F84020 strb r2, [r4, #64] 3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8330 .loc 1 3858 7 view .LVU2846 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8331 .loc 1 3860 7 view .LVU2847 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8332 .loc 1 3860 14 is_stmt 0 view .LVU2848 8333 0148 0125 movs r5, #1 8334 .LVL534: 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8335 .loc 1 3860 14 view .LVU2849 8336 014a 1EE0 b .L513 8337 .LVL535: 8338 .L518: 3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8339 .loc 1 3866 7 is_stmt 1 view .LVU2850 3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8340 .loc 1 3866 23 is_stmt 0 view .LVU2851 8341 014c 638D ldrh r3, [r4, #42] 8342 014e 9BB2 uxth r3, r3 3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8343 .loc 1 3866 30 view .LVU2852 8344 0150 228D ldrh r2, [r4, #40] 3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8345 .loc 1 3866 23 view .LVU2853 8346 0152 9B1A subs r3, r3, r2 8347 0154 9BB2 uxth r3, r3 8348 0156 6385 strh r3, [r4, #42] @ movhi 3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8349 .loc 1 3869 7 is_stmt 1 view .LVU2854 3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8350 .loc 1 3869 22 is_stmt 0 view .LVU2855 8351 0158 0023 movs r3, #0 8352 015a 2385 strh r3, [r4, #40] @ movhi 3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8353 .loc 1 3886 5 is_stmt 1 view .LVU2856 3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8354 .loc 1 3886 9 is_stmt 0 view .LVU2857 8355 015c 2368 ldr r3, [r4] 8356 015e 9A69 ldr r2, [r3, #24] 3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8357 .loc 1 3886 8 view .LVU2858 8358 0160 12F4803F tst r2, #65536 ARM GAS /tmp/ccEimIdZ.s page 311 8359 0164 0DD1 bne .L520 8360 .L521: 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8361 .loc 1 3894 5 is_stmt 1 view .LVU2859 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8362 .loc 1 3894 5 view .LVU2860 8363 0166 0023 movs r3, #0 8364 0168 84F84030 strb r3, [r4, #64] 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8365 .loc 1 3894 5 view .LVU2861 3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8366 .loc 1 3900 5 view .LVU2862 8367 016c 4FF40041 mov r1, #32768 8368 0170 2046 mov r0, r4 8369 .LVL536: 3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8370 .loc 1 3900 5 is_stmt 0 view .LVU2863 8371 0172 FFF7FEFF bl I2C_Enable_IRQ 8372 .LVL537: 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8373 .loc 1 3903 5 is_stmt 1 view .LVU2864 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8374 .loc 1 3903 9 is_stmt 0 view .LVU2865 8375 0176 2268 ldr r2, [r4] 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8376 .loc 1 3903 25 view .LVU2866 8377 0178 1368 ldr r3, [r2] 8378 017a 43F48043 orr r3, r3, #16384 8379 017e 1360 str r3, [r2] 3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8380 .loc 1 3905 5 is_stmt 1 view .LVU2867 3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8381 .loc 1 3905 12 is_stmt 0 view .LVU2868 8382 0180 03E0 b .L513 8383 .LVL538: 8384 .L520: 3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8385 .loc 1 3890 7 is_stmt 1 view .LVU2869 8386 0182 0822 movs r2, #8 8387 0184 DA61 str r2, [r3, #28] 8388 0186 EEE7 b .L521 8389 .LVL539: 8390 .L522: 3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8391 .loc 1 3909 12 is_stmt 0 view .LVU2870 8392 0188 0125 movs r5, #1 8393 .LVL540: 8394 .L513: 3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8395 .loc 1 3911 1 view .LVU2871 8396 018a 2846 mov r0, r5 8397 018c F8BD pop {r3, r4, r5, r6, r7, pc} 8398 .LVL541: 8399 .L523: 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8400 .loc 1 3760 5 view .LVU2872 8401 018e 0225 movs r5, #2 ARM GAS /tmp/ccEimIdZ.s page 312 8402 .LVL542: 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8403 .loc 1 3760 5 view .LVU2873 8404 0190 FBE7 b .L513 8405 .L530: 8406 0192 00BF .align 2 8407 .L529: 8408 0194 00000000 .word I2C_Slave_ISR_DMA 8409 0198 00000000 .word I2C_DMASlaveTransmitCplt 8410 019c 00000000 .word I2C_DMAError 8411 01a0 00000000 .word I2C_DMAAbort 8412 .cfi_endproc 8413 .LFE169: 8415 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 8416 .align 1 8417 .global HAL_I2C_Slave_Seq_Receive_IT 8418 .syntax unified 8419 .thumb 8420 .thumb_func 8421 .fpu fpv5-d16 8423 HAL_I2C_Slave_Seq_Receive_IT: 8424 .LVL543: 8425 .LFB170: 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 8426 .loc 1 3924 1 is_stmt 1 view -0 8427 .cfi_startproc 8428 @ args = 0, pretend = 0, frame = 0 8429 @ frame_needed = 0, uses_anonymous_args = 0 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 8430 .loc 1 3924 1 is_stmt 0 view .LVU2875 8431 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8432 .LCFI101: 8433 .cfi_def_cfa_offset 24 8434 .cfi_offset 3, -24 8435 .cfi_offset 4, -20 8436 .cfi_offset 5, -16 8437 .cfi_offset 6, -12 8438 .cfi_offset 7, -8 8439 .cfi_offset 14, -4 8440 0002 0446 mov r4, r0 3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8441 .loc 1 3926 3 is_stmt 1 view .LVU2876 3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8442 .loc 1 3928 3 view .LVU2877 3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8443 .loc 1 3928 22 is_stmt 0 view .LVU2878 8444 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8445 .LVL544: 3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8446 .loc 1 3928 6 view .LVU2879 8447 0008 00F02800 and r0, r0, #40 8448 000c 2828 cmp r0, #40 8449 000e 5CD1 bne .L536 8450 0010 0F46 mov r7, r1 8451 0012 1646 mov r6, r2 8452 0014 1D46 mov r5, r3 3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 313 8453 .loc 1 3930 5 is_stmt 1 view .LVU2880 3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8454 .loc 1 3930 8 is_stmt 0 view .LVU2881 8455 0016 002A cmp r2, #0 8456 0018 18BF it ne 8457 001a 0029 cmpne r1, #0 8458 001c 04D1 bne .L533 3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8459 .loc 1 3932 7 is_stmt 1 view .LVU2882 3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8460 .loc 1 3932 23 is_stmt 0 view .LVU2883 8461 001e 4FF40073 mov r3, #512 8462 .LVL545: 3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8463 .loc 1 3932 23 view .LVU2884 8464 0022 6364 str r3, [r4, #68] 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8465 .loc 1 3933 7 is_stmt 1 view .LVU2885 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8466 .loc 1 3933 15 is_stmt 0 view .LVU2886 8467 0024 0120 movs r0, #1 8468 0026 51E0 b .L532 8469 .LVL546: 8470 .L533: 3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8471 .loc 1 3937 5 is_stmt 1 view .LVU2887 8472 0028 48F20201 movw r1, #32770 8473 .LVL547: 3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8474 .loc 1 3937 5 is_stmt 0 view .LVU2888 8475 002c 2046 mov r0, r4 8476 002e FFF7FEFF bl I2C_Disable_IRQ 8477 .LVL548: 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8478 .loc 1 3940 5 is_stmt 1 view .LVU2889 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8479 .loc 1 3940 5 view .LVU2890 8480 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8481 0036 012B cmp r3, #1 8482 0038 49D0 beq .L537 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8483 .loc 1 3940 5 discriminator 2 view .LVU2891 8484 003a 0123 movs r3, #1 8485 003c 84F84030 strb r3, [r4, #64] 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8486 .loc 1 3940 5 discriminator 2 view .LVU2892 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8487 .loc 1 3944 5 discriminator 2 view .LVU2893 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8488 .loc 1 3944 13 is_stmt 0 discriminator 2 view .LVU2894 8489 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8490 0044 DBB2 uxtb r3, r3 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8491 .loc 1 3944 8 discriminator 2 view .LVU2895 8492 0046 292B cmp r3, #41 8493 0048 24D0 beq .L539 8494 .L534: ARM GAS /tmp/ccEimIdZ.s page 314 3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8495 .loc 1 3970 5 is_stmt 1 view .LVU2896 3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8496 .loc 1 3970 21 is_stmt 0 view .LVU2897 8497 004a 2A23 movs r3, #42 8498 004c 84F84130 strb r3, [r4, #65] 3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8499 .loc 1 3971 5 is_stmt 1 view .LVU2898 3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8500 .loc 1 3971 21 is_stmt 0 view .LVU2899 8501 0050 2023 movs r3, #32 8502 0052 84F84230 strb r3, [r4, #66] 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8503 .loc 1 3972 5 is_stmt 1 view .LVU2900 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8504 .loc 1 3972 21 is_stmt 0 view .LVU2901 8505 0056 0023 movs r3, #0 8506 0058 6364 str r3, [r4, #68] 3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8507 .loc 1 3975 5 is_stmt 1 view .LVU2902 3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8508 .loc 1 3975 9 is_stmt 0 view .LVU2903 8509 005a 2268 ldr r2, [r4] 3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8510 .loc 1 3975 25 view .LVU2904 8511 005c 5368 ldr r3, [r2, #4] 8512 005e 23F40043 bic r3, r3, #32768 8513 0062 5360 str r3, [r2, #4] 3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8514 .loc 1 3978 5 is_stmt 1 view .LVU2905 3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8515 .loc 1 3978 23 is_stmt 0 view .LVU2906 8516 0064 6762 str r7, [r4, #36] 3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8517 .loc 1 3979 5 is_stmt 1 view .LVU2907 3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8518 .loc 1 3979 23 is_stmt 0 view .LVU2908 8519 0066 6685 strh r6, [r4, #42] @ movhi 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8520 .loc 1 3980 5 is_stmt 1 view .LVU2909 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8521 .loc 1 3980 29 is_stmt 0 view .LVU2910 8522 0068 638D ldrh r3, [r4, #42] 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8523 .loc 1 3980 23 view .LVU2911 8524 006a 2385 strh r3, [r4, #40] @ movhi 3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8525 .loc 1 3981 5 is_stmt 1 view .LVU2912 3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8526 .loc 1 3981 23 is_stmt 0 view .LVU2913 8527 006c E562 str r5, [r4, #44] 3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8528 .loc 1 3982 5 is_stmt 1 view .LVU2914 3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8529 .loc 1 3982 23 is_stmt 0 view .LVU2915 8530 006e 194B ldr r3, .L540 8531 0070 6363 str r3, [r4, #52] ARM GAS /tmp/ccEimIdZ.s page 315 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8532 .loc 1 3984 5 is_stmt 1 view .LVU2916 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8533 .loc 1 3984 9 is_stmt 0 view .LVU2917 8534 0072 2368 ldr r3, [r4] 8535 0074 9A69 ldr r2, [r3, #24] 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8536 .loc 1 3984 8 view .LVU2918 8537 0076 12F4803F tst r2, #65536 8538 007a 01D1 bne .L535 3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8539 .loc 1 3988 7 is_stmt 1 view .LVU2919 8540 007c 0822 movs r2, #8 8541 007e DA61 str r2, [r3, #28] 8542 .L535: 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8543 .loc 1 3992 5 view .LVU2920 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8544 .loc 1 3992 5 view .LVU2921 8545 0080 0025 movs r5, #0 8546 .LVL549: 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8547 .loc 1 3992 5 is_stmt 0 view .LVU2922 8548 0082 84F84050 strb r5, [r4, #64] 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8549 .loc 1 3992 5 is_stmt 1 view .LVU2923 3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8550 .loc 1 3998 5 view .LVU2924 8551 0086 48F20201 movw r1, #32770 8552 008a 2046 mov r0, r4 8553 008c FFF7FEFF bl I2C_Enable_IRQ 8554 .LVL550: 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8555 .loc 1 4000 5 view .LVU2925 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8556 .loc 1 4000 12 is_stmt 0 view .LVU2926 8557 0090 2846 mov r0, r5 8558 0092 1BE0 b .L532 8559 .LVL551: 8560 .L539: 3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8561 .loc 1 3947 7 is_stmt 1 view .LVU2927 8562 0094 0121 movs r1, #1 8563 0096 2046 mov r0, r4 8564 0098 FFF7FEFF bl I2C_Disable_IRQ 8565 .LVL552: 3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8566 .loc 1 3949 7 view .LVU2928 3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8567 .loc 1 3949 16 is_stmt 0 view .LVU2929 8568 009c 2368 ldr r3, [r4] 3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8569 .loc 1 3949 26 view .LVU2930 8570 009e 1A68 ldr r2, [r3] 3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8571 .loc 1 3949 10 view .LVU2931 8572 00a0 12F4804F tst r2, #16384 ARM GAS /tmp/ccEimIdZ.s page 316 8573 00a4 D1D0 beq .L534 3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8574 .loc 1 3951 9 is_stmt 1 view .LVU2932 3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8575 .loc 1 3951 29 is_stmt 0 view .LVU2933 8576 00a6 1A68 ldr r2, [r3] 8577 00a8 22F48042 bic r2, r2, #16384 8578 00ac 1A60 str r2, [r3] 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8579 .loc 1 3954 9 is_stmt 1 view .LVU2934 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8580 .loc 1 3954 17 is_stmt 0 view .LVU2935 8581 00ae A36B ldr r3, [r4, #56] 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8582 .loc 1 3954 12 view .LVU2936 8583 00b0 002B cmp r3, #0 8584 00b2 CAD0 beq .L534 3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8585 .loc 1 3958 11 is_stmt 1 view .LVU2937 3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8586 .loc 1 3958 43 is_stmt 0 view .LVU2938 8587 00b4 084A ldr r2, .L540+4 8588 00b6 1A65 str r2, [r3, #80] 3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8589 .loc 1 3961 11 is_stmt 1 view .LVU2939 3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8590 .loc 1 3961 15 is_stmt 0 view .LVU2940 8591 00b8 A06B ldr r0, [r4, #56] 8592 00ba FFF7FEFF bl HAL_DMA_Abort_IT 8593 .LVL553: 3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8594 .loc 1 3961 14 view .LVU2941 8595 00be 0028 cmp r0, #0 8596 00c0 C3D0 beq .L534 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8597 .loc 1 3964 13 is_stmt 1 view .LVU2942 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8598 .loc 1 3964 17 is_stmt 0 view .LVU2943 8599 00c2 A06B ldr r0, [r4, #56] 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8600 .loc 1 3964 25 view .LVU2944 8601 00c4 036D ldr r3, [r0, #80] 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8602 .loc 1 3964 13 view .LVU2945 8603 00c6 9847 blx r3 8604 .LVL554: 8605 00c8 BFE7 b .L534 8606 .LVL555: 8607 .L536: 4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8608 .loc 1 4004 12 view .LVU2946 8609 00ca 0120 movs r0, #1 8610 .LVL556: 8611 .L532: 4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8612 .loc 1 4006 1 view .LVU2947 8613 00cc F8BD pop {r3, r4, r5, r6, r7, pc} ARM GAS /tmp/ccEimIdZ.s page 317 8614 .LVL557: 8615 .L537: 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8616 .loc 1 3940 5 view .LVU2948 8617 00ce 0220 movs r0, #2 8618 00d0 FCE7 b .L532 8619 .L541: 8620 00d2 00BF .align 2 8621 .L540: 8622 00d4 00000000 .word I2C_Slave_ISR_IT 8623 00d8 00000000 .word I2C_DMAAbort 8624 .cfi_endproc 8625 .LFE170: 8627 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 8628 .align 1 8629 .global HAL_I2C_Slave_Seq_Receive_DMA 8630 .syntax unified 8631 .thumb 8632 .thumb_func 8633 .fpu fpv5-d16 8635 HAL_I2C_Slave_Seq_Receive_DMA: 8636 .LVL558: 8637 .LFB171: 4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8638 .loc 1 4019 1 is_stmt 1 view -0 8639 .cfi_startproc 8640 @ args = 0, pretend = 0, frame = 0 8641 @ frame_needed = 0, uses_anonymous_args = 0 4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8642 .loc 1 4019 1 is_stmt 0 view .LVU2950 8643 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8644 .LCFI102: 8645 .cfi_def_cfa_offset 24 8646 .cfi_offset 3, -24 8647 .cfi_offset 4, -20 8648 .cfi_offset 5, -16 8649 .cfi_offset 6, -12 8650 .cfi_offset 7, -8 8651 .cfi_offset 14, -4 8652 0002 0446 mov r4, r0 4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8653 .loc 1 4020 3 is_stmt 1 view .LVU2951 4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8654 .loc 1 4023 3 view .LVU2952 4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8655 .loc 1 4025 3 view .LVU2953 4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8656 .loc 1 4025 22 is_stmt 0 view .LVU2954 8657 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8658 .LVL559: 4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8659 .loc 1 4025 6 view .LVU2955 8660 0008 00F02800 and r0, r0, #40 8661 000c 2828 cmp r0, #40 8662 000e 40F0BB80 bne .L552 8663 0012 0F46 mov r7, r1 8664 0014 1646 mov r6, r2 ARM GAS /tmp/ccEimIdZ.s page 318 8665 0016 1D46 mov r5, r3 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8666 .loc 1 4027 5 is_stmt 1 view .LVU2956 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8667 .loc 1 4027 8 is_stmt 0 view .LVU2957 8668 0018 002A cmp r2, #0 8669 001a 18BF it ne 8670 001c 0029 cmpne r1, #0 8671 001e 04D1 bne .L544 4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8672 .loc 1 4029 7 is_stmt 1 view .LVU2958 4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8673 .loc 1 4029 23 is_stmt 0 view .LVU2959 8674 0020 4FF40073 mov r3, #512 8675 .LVL560: 4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8676 .loc 1 4029 23 view .LVU2960 8677 0024 6364 str r3, [r4, #68] 4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8678 .loc 1 4030 7 is_stmt 1 view .LVU2961 4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8679 .loc 1 4030 15 is_stmt 0 view .LVU2962 8680 0026 0125 movs r5, #1 8681 .LVL561: 4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8682 .loc 1 4030 15 view .LVU2963 8683 0028 AFE0 b .L543 8684 .LVL562: 8685 .L544: 4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8686 .loc 1 4034 5 is_stmt 1 view .LVU2964 8687 002a 48F20201 movw r1, #32770 8688 .LVL563: 4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8689 .loc 1 4034 5 is_stmt 0 view .LVU2965 8690 002e 2046 mov r0, r4 8691 0030 FFF7FEFF bl I2C_Disable_IRQ 8692 .LVL564: 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8693 .loc 1 4037 5 is_stmt 1 view .LVU2966 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8694 .loc 1 4037 5 view .LVU2967 8695 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8696 0038 012B cmp r3, #1 8697 003a 00F0A880 beq .L553 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8698 .loc 1 4037 5 discriminator 2 view .LVU2968 8699 003e 0123 movs r3, #1 8700 0040 84F84030 strb r3, [r4, #64] 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8701 .loc 1 4037 5 discriminator 2 view .LVU2969 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8702 .loc 1 4041 5 discriminator 2 view .LVU2970 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8703 .loc 1 4041 13 is_stmt 0 discriminator 2 view .LVU2971 8704 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8705 0048 DBB2 uxtb r3, r3 ARM GAS /tmp/ccEimIdZ.s page 319 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8706 .loc 1 4041 8 discriminator 2 view .LVU2972 8707 004a 292B cmp r3, #41 8708 004c 3DD0 beq .L556 4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8709 .loc 1 4066 10 is_stmt 1 view .LVU2973 4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8710 .loc 1 4066 18 is_stmt 0 view .LVU2974 8711 004e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8712 0052 DBB2 uxtb r3, r3 4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8713 .loc 1 4066 13 view .LVU2975 8714 0054 2A2B cmp r3, #42 8715 0056 54D0 beq .L557 8716 .L546: 4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8717 .loc 1 4091 5 is_stmt 1 view .LVU2976 4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8718 .loc 1 4093 5 view .LVU2977 4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8719 .loc 1 4093 21 is_stmt 0 view .LVU2978 8720 0058 2A23 movs r3, #42 8721 005a 84F84130 strb r3, [r4, #65] 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8722 .loc 1 4094 5 is_stmt 1 view .LVU2979 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8723 .loc 1 4094 21 is_stmt 0 view .LVU2980 8724 005e 2023 movs r3, #32 8725 0060 84F84230 strb r3, [r4, #66] 4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8726 .loc 1 4095 5 is_stmt 1 view .LVU2981 4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8727 .loc 1 4095 21 is_stmt 0 view .LVU2982 8728 0064 0023 movs r3, #0 8729 0066 6364 str r3, [r4, #68] 4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8730 .loc 1 4098 5 is_stmt 1 view .LVU2983 4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8731 .loc 1 4098 9 is_stmt 0 view .LVU2984 8732 0068 2268 ldr r2, [r4] 4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8733 .loc 1 4098 25 view .LVU2985 8734 006a 5368 ldr r3, [r2, #4] 8735 006c 23F40043 bic r3, r3, #32768 8736 0070 5360 str r3, [r2, #4] 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8737 .loc 1 4101 5 is_stmt 1 view .LVU2986 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8738 .loc 1 4101 23 is_stmt 0 view .LVU2987 8739 0072 6762 str r7, [r4, #36] 4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8740 .loc 1 4102 5 is_stmt 1 view .LVU2988 4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8741 .loc 1 4102 23 is_stmt 0 view .LVU2989 8742 0074 6685 strh r6, [r4, #42] @ movhi 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8743 .loc 1 4103 5 is_stmt 1 view .LVU2990 ARM GAS /tmp/ccEimIdZ.s page 320 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8744 .loc 1 4103 29 is_stmt 0 view .LVU2991 8745 0076 638D ldrh r3, [r4, #42] 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8746 .loc 1 4103 23 view .LVU2992 8747 0078 2385 strh r3, [r4, #40] @ movhi 4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8748 .loc 1 4104 5 is_stmt 1 view .LVU2993 4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8749 .loc 1 4104 23 is_stmt 0 view .LVU2994 8750 007a E562 str r5, [r4, #44] 4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8751 .loc 1 4105 5 is_stmt 1 view .LVU2995 4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8752 .loc 1 4105 23 is_stmt 0 view .LVU2996 8753 007c 454B ldr r3, .L558 8754 007e 6363 str r3, [r4, #52] 4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8755 .loc 1 4107 5 is_stmt 1 view .LVU2997 4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8756 .loc 1 4107 13 is_stmt 0 view .LVU2998 8757 0080 E36B ldr r3, [r4, #60] 4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8758 .loc 1 4107 8 view .LVU2999 8759 0082 002B cmp r3, #0 8760 0084 54D0 beq .L547 4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8761 .loc 1 4110 7 is_stmt 1 view .LVU3000 4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8762 .loc 1 4110 38 is_stmt 0 view .LVU3001 8763 0086 444A ldr r2, .L558+4 8764 0088 DA63 str r2, [r3, #60] 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8765 .loc 1 4113 7 is_stmt 1 view .LVU3002 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8766 .loc 1 4113 11 is_stmt 0 view .LVU3003 8767 008a E36B ldr r3, [r4, #60] 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8768 .loc 1 4113 39 view .LVU3004 8769 008c 434A ldr r2, .L558+8 8770 008e DA64 str r2, [r3, #76] 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8771 .loc 1 4116 7 is_stmt 1 view .LVU3005 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8772 .loc 1 4116 11 is_stmt 0 view .LVU3006 8773 0090 E26B ldr r2, [r4, #60] 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8774 .loc 1 4116 42 view .LVU3007 8775 0092 0023 movs r3, #0 8776 0094 1364 str r3, [r2, #64] 4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8777 .loc 1 4117 7 is_stmt 1 view .LVU3008 4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8778 .loc 1 4117 11 is_stmt 0 view .LVU3009 8779 0096 E26B ldr r2, [r4, #60] 4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8780 .loc 1 4117 39 view .LVU3010 ARM GAS /tmp/ccEimIdZ.s page 321 8781 0098 1365 str r3, [r2, #80] 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8782 .loc 1 4120 7 is_stmt 1 view .LVU3011 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8783 .loc 1 4120 69 is_stmt 0 view .LVU3012 8784 009a 2168 ldr r1, [r4] 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8785 .loc 1 4120 23 view .LVU3013 8786 009c 238D ldrh r3, [r4, #40] 8787 009e 3A46 mov r2, r7 8788 00a0 2431 adds r1, r1, #36 8789 00a2 E06B ldr r0, [r4, #60] 8790 00a4 FFF7FEFF bl HAL_DMA_Start_IT 8791 .LVL565: 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8792 .loc 1 4137 5 is_stmt 1 view .LVU3014 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8793 .loc 1 4137 8 is_stmt 0 view .LVU3015 8794 00a8 0546 mov r5, r0 8795 .LVL566: 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8796 .loc 1 4137 8 view .LVU3016 8797 00aa 0028 cmp r0, #0 8798 00ac 4ED0 beq .L548 4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8799 .loc 1 4148 7 is_stmt 1 view .LVU3017 4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8800 .loc 1 4148 23 is_stmt 0 view .LVU3018 8801 00ae 2823 movs r3, #40 8802 00b0 84F84130 strb r3, [r4, #65] 4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8803 .loc 1 4149 7 is_stmt 1 view .LVU3019 4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8804 .loc 1 4149 23 is_stmt 0 view .LVU3020 8805 00b4 0022 movs r2, #0 8806 00b6 84F84220 strb r2, [r4, #66] 4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8807 .loc 1 4152 7 is_stmt 1 view .LVU3021 4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8808 .loc 1 4152 23 is_stmt 0 view .LVU3022 8809 00ba 636C ldr r3, [r4, #68] 8810 00bc 43F01003 orr r3, r3, #16 8811 00c0 6364 str r3, [r4, #68] 4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8812 .loc 1 4155 7 is_stmt 1 view .LVU3023 4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8813 .loc 1 4155 7 view .LVU3024 8814 00c2 84F84020 strb r2, [r4, #64] 4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8815 .loc 1 4155 7 view .LVU3025 4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8816 .loc 1 4157 7 view .LVU3026 4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8817 .loc 1 4157 14 is_stmt 0 view .LVU3027 8818 00c6 0125 movs r5, #1 8819 00c8 5FE0 b .L543 8820 .LVL567: ARM GAS /tmp/ccEimIdZ.s page 322 8821 .L556: 4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8822 .loc 1 4044 7 is_stmt 1 view .LVU3028 8823 00ca 0121 movs r1, #1 8824 00cc 2046 mov r0, r4 8825 00ce FFF7FEFF bl I2C_Disable_IRQ 8826 .LVL568: 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8827 .loc 1 4046 7 view .LVU3029 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8828 .loc 1 4046 16 is_stmt 0 view .LVU3030 8829 00d2 2368 ldr r3, [r4] 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8830 .loc 1 4046 26 view .LVU3031 8831 00d4 1A68 ldr r2, [r3] 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8832 .loc 1 4046 10 view .LVU3032 8833 00d6 12F4804F tst r2, #16384 8834 00da BDD0 beq .L546 4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8835 .loc 1 4049 9 is_stmt 1 view .LVU3033 4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8836 .loc 1 4049 17 is_stmt 0 view .LVU3034 8837 00dc A26B ldr r2, [r4, #56] 4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8838 .loc 1 4049 12 view .LVU3035 8839 00de 002A cmp r2, #0 8840 00e0 BAD0 beq .L546 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8841 .loc 1 4051 11 is_stmt 1 view .LVU3036 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8842 .loc 1 4051 31 is_stmt 0 view .LVU3037 8843 00e2 1A68 ldr r2, [r3] 8844 00e4 22F48042 bic r2, r2, #16384 8845 00e8 1A60 str r2, [r3] 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8846 .loc 1 4055 11 is_stmt 1 view .LVU3038 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8847 .loc 1 4055 15 is_stmt 0 view .LVU3039 8848 00ea A36B ldr r3, [r4, #56] 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8849 .loc 1 4055 43 view .LVU3040 8850 00ec 2C4A ldr r2, .L558+12 8851 00ee 1A65 str r2, [r3, #80] 4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8852 .loc 1 4058 11 is_stmt 1 view .LVU3041 4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8853 .loc 1 4058 15 is_stmt 0 view .LVU3042 8854 00f0 A06B ldr r0, [r4, #56] 8855 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 8856 .LVL569: 4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8857 .loc 1 4058 14 view .LVU3043 8858 00f6 0028 cmp r0, #0 8859 00f8 AED0 beq .L546 4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8860 .loc 1 4061 13 is_stmt 1 view .LVU3044 ARM GAS /tmp/ccEimIdZ.s page 323 4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8861 .loc 1 4061 17 is_stmt 0 view .LVU3045 8862 00fa A06B ldr r0, [r4, #56] 4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8863 .loc 1 4061 25 view .LVU3046 8864 00fc 036D ldr r3, [r0, #80] 4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8865 .loc 1 4061 13 view .LVU3047 8866 00fe 9847 blx r3 8867 .LVL570: 8868 0100 AAE7 b .L546 8869 .L557: 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8870 .loc 1 4068 7 is_stmt 1 view .LVU3048 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8871 .loc 1 4068 16 is_stmt 0 view .LVU3049 8872 0102 2368 ldr r3, [r4] 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8873 .loc 1 4068 26 view .LVU3050 8874 0104 1A68 ldr r2, [r3] 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8875 .loc 1 4068 10 view .LVU3051 8876 0106 12F4004F tst r2, #32768 8877 010a A5D0 beq .L546 4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8878 .loc 1 4070 9 is_stmt 1 view .LVU3052 4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8879 .loc 1 4070 29 is_stmt 0 view .LVU3053 8880 010c 1A68 ldr r2, [r3] 8881 010e 22F40042 bic r2, r2, #32768 8882 0112 1A60 str r2, [r3] 4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8883 .loc 1 4073 9 is_stmt 1 view .LVU3054 4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8884 .loc 1 4073 17 is_stmt 0 view .LVU3055 8885 0114 E36B ldr r3, [r4, #60] 4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8886 .loc 1 4073 12 view .LVU3056 8887 0116 002B cmp r3, #0 8888 0118 9ED0 beq .L546 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8889 .loc 1 4077 11 is_stmt 1 view .LVU3057 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8890 .loc 1 4077 43 is_stmt 0 view .LVU3058 8891 011a 214A ldr r2, .L558+12 8892 011c 1A65 str r2, [r3, #80] 4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8893 .loc 1 4080 11 is_stmt 1 view .LVU3059 4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8894 .loc 1 4080 15 is_stmt 0 view .LVU3060 8895 011e E06B ldr r0, [r4, #60] 8896 0120 FFF7FEFF bl HAL_DMA_Abort_IT 8897 .LVL571: 4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8898 .loc 1 4080 14 view .LVU3061 8899 0124 0028 cmp r0, #0 8900 0126 97D0 beq .L546 ARM GAS /tmp/ccEimIdZ.s page 324 4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8901 .loc 1 4083 13 is_stmt 1 view .LVU3062 4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8902 .loc 1 4083 17 is_stmt 0 view .LVU3063 8903 0128 E06B ldr r0, [r4, #60] 4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8904 .loc 1 4083 25 view .LVU3064 8905 012a 036D ldr r3, [r0, #80] 4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8906 .loc 1 4083 13 view .LVU3065 8907 012c 9847 blx r3 8908 .LVL572: 8909 012e 93E7 b .L546 8910 .L547: 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8911 .loc 1 4125 7 is_stmt 1 view .LVU3066 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8912 .loc 1 4125 23 is_stmt 0 view .LVU3067 8913 0130 2823 movs r3, #40 8914 0132 84F84130 strb r3, [r4, #65] 4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8915 .loc 1 4126 7 is_stmt 1 view .LVU3068 4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8916 .loc 1 4126 23 is_stmt 0 view .LVU3069 8917 0136 0022 movs r2, #0 8918 0138 84F84220 strb r2, [r4, #66] 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8919 .loc 1 4129 7 is_stmt 1 view .LVU3070 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8920 .loc 1 4129 23 is_stmt 0 view .LVU3071 8921 013c 636C ldr r3, [r4, #68] 8922 013e 43F08003 orr r3, r3, #128 8923 0142 6364 str r3, [r4, #68] 4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8924 .loc 1 4132 7 is_stmt 1 view .LVU3072 4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8925 .loc 1 4132 7 view .LVU3073 8926 0144 84F84020 strb r2, [r4, #64] 4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8927 .loc 1 4132 7 view .LVU3074 4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8928 .loc 1 4134 7 view .LVU3075 4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8929 .loc 1 4134 14 is_stmt 0 view .LVU3076 8930 0148 0125 movs r5, #1 8931 .LVL573: 4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8932 .loc 1 4134 14 view .LVU3077 8933 014a 1EE0 b .L543 8934 .LVL574: 8935 .L548: 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8936 .loc 1 4140 7 is_stmt 1 view .LVU3078 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8937 .loc 1 4140 23 is_stmt 0 view .LVU3079 8938 014c 638D ldrh r3, [r4, #42] 8939 014e 9BB2 uxth r3, r3 ARM GAS /tmp/ccEimIdZ.s page 325 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8940 .loc 1 4140 30 view .LVU3080 8941 0150 228D ldrh r2, [r4, #40] 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8942 .loc 1 4140 23 view .LVU3081 8943 0152 9B1A subs r3, r3, r2 8944 0154 9BB2 uxth r3, r3 8945 0156 6385 strh r3, [r4, #42] @ movhi 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8946 .loc 1 4143 7 is_stmt 1 view .LVU3082 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8947 .loc 1 4143 22 is_stmt 0 view .LVU3083 8948 0158 0023 movs r3, #0 8949 015a 2385 strh r3, [r4, #40] @ movhi 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8950 .loc 1 4160 5 is_stmt 1 view .LVU3084 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8951 .loc 1 4160 9 is_stmt 0 view .LVU3085 8952 015c 2368 ldr r3, [r4] 8953 015e 9A69 ldr r2, [r3, #24] 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8954 .loc 1 4160 8 view .LVU3086 8955 0160 12F4803F tst r2, #65536 8956 0164 0DD0 beq .L550 8957 .L551: 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8958 .loc 1 4168 5 is_stmt 1 view .LVU3087 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8959 .loc 1 4168 5 view .LVU3088 8960 0166 0023 movs r3, #0 8961 0168 84F84030 strb r3, [r4, #64] 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8962 .loc 1 4168 5 view .LVU3089 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8963 .loc 1 4174 5 view .LVU3090 8964 016c 48F20201 movw r1, #32770 8965 0170 2046 mov r0, r4 8966 .LVL575: 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8967 .loc 1 4174 5 is_stmt 0 view .LVU3091 8968 0172 FFF7FEFF bl I2C_Enable_IRQ 8969 .LVL576: 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8970 .loc 1 4177 5 is_stmt 1 view .LVU3092 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8971 .loc 1 4177 9 is_stmt 0 view .LVU3093 8972 0176 2268 ldr r2, [r4] 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8973 .loc 1 4177 25 view .LVU3094 8974 0178 1368 ldr r3, [r2] 8975 017a 43F40043 orr r3, r3, #32768 8976 017e 1360 str r3, [r2] 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8977 .loc 1 4179 5 is_stmt 1 view .LVU3095 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8978 .loc 1 4179 12 is_stmt 0 view .LVU3096 8979 0180 03E0 b .L543 ARM GAS /tmp/ccEimIdZ.s page 326 8980 .LVL577: 8981 .L550: 4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8982 .loc 1 4164 7 is_stmt 1 view .LVU3097 8983 0182 0822 movs r2, #8 8984 0184 DA61 str r2, [r3, #28] 8985 0186 EEE7 b .L551 8986 .LVL578: 8987 .L552: 4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8988 .loc 1 4183 12 is_stmt 0 view .LVU3098 8989 0188 0125 movs r5, #1 8990 .LVL579: 8991 .L543: 4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8992 .loc 1 4185 1 view .LVU3099 8993 018a 2846 mov r0, r5 8994 018c F8BD pop {r3, r4, r5, r6, r7, pc} 8995 .LVL580: 8996 .L553: 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8997 .loc 1 4037 5 view .LVU3100 8998 018e 0225 movs r5, #2 8999 .LVL581: 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9000 .loc 1 4037 5 view .LVU3101 9001 0190 FBE7 b .L543 9002 .L559: 9003 0192 00BF .align 2 9004 .L558: 9005 0194 00000000 .word I2C_Slave_ISR_DMA 9006 0198 00000000 .word I2C_DMASlaveReceiveCplt 9007 019c 00000000 .word I2C_DMAError 9008 01a0 00000000 .word I2C_DMAAbort 9009 .cfi_endproc 9010 .LFE171: 9012 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9013 .align 1 9014 .global HAL_I2C_EnableListen_IT 9015 .syntax unified 9016 .thumb 9017 .thumb_func 9018 .fpu fpv5-d16 9020 HAL_I2C_EnableListen_IT: 9021 .LVL582: 9022 .LFB172: 4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9023 .loc 1 4194 1 is_stmt 1 view -0 9024 .cfi_startproc 9025 @ args = 0, pretend = 0, frame = 0 9026 @ frame_needed = 0, uses_anonymous_args = 0 4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9027 .loc 1 4194 1 is_stmt 0 view .LVU3103 9028 0000 08B5 push {r3, lr} 9029 .LCFI103: 9030 .cfi_def_cfa_offset 8 9031 .cfi_offset 3, -8 ARM GAS /tmp/ccEimIdZ.s page 327 9032 .cfi_offset 14, -4 4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9033 .loc 1 4195 3 is_stmt 1 view .LVU3104 4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9034 .loc 1 4195 11 is_stmt 0 view .LVU3105 9035 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9036 0006 DBB2 uxtb r3, r3 4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9037 .loc 1 4195 6 view .LVU3106 9038 0008 202B cmp r3, #32 9039 000a 01D0 beq .L564 4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9040 .loc 1 4207 12 view .LVU3107 9041 000c 0220 movs r0, #2 9042 .LVL583: 9043 .L561: 4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9044 .loc 1 4209 1 view .LVU3108 9045 000e 08BD pop {r3, pc} 9046 .LVL584: 9047 .L564: 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9048 .loc 1 4197 5 is_stmt 1 view .LVU3109 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9049 .loc 1 4197 17 is_stmt 0 view .LVU3110 9050 0010 2823 movs r3, #40 9051 0012 80F84130 strb r3, [r0, #65] 4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9052 .loc 1 4198 5 is_stmt 1 view .LVU3111 4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9053 .loc 1 4198 19 is_stmt 0 view .LVU3112 9054 0016 044B ldr r3, .L565 9055 0018 4363 str r3, [r0, #52] 4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9056 .loc 1 4201 5 is_stmt 1 view .LVU3113 9057 001a 4FF40041 mov r1, #32768 9058 001e FFF7FEFF bl I2C_Enable_IRQ 9059 .LVL585: 4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9060 .loc 1 4203 5 view .LVU3114 4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9061 .loc 1 4203 12 is_stmt 0 view .LVU3115 9062 0022 0020 movs r0, #0 9063 0024 F3E7 b .L561 9064 .L566: 9065 0026 00BF .align 2 9066 .L565: 9067 0028 00000000 .word I2C_Slave_ISR_IT 9068 .cfi_endproc 9069 .LFE172: 9071 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9072 .align 1 9073 .global HAL_I2C_DisableListen_IT 9074 .syntax unified 9075 .thumb 9076 .thumb_func 9077 .fpu fpv5-d16 ARM GAS /tmp/ccEimIdZ.s page 328 9079 HAL_I2C_DisableListen_IT: 9080 .LVL586: 9081 .LFB173: 4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9082 .loc 1 4218 1 is_stmt 1 view -0 9083 .cfi_startproc 9084 @ args = 0, pretend = 0, frame = 0 9085 @ frame_needed = 0, uses_anonymous_args = 0 4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9086 .loc 1 4220 3 view .LVU3117 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9087 .loc 1 4223 3 view .LVU3118 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9088 .loc 1 4223 11 is_stmt 0 view .LVU3119 9089 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9090 0004 DBB2 uxtb r3, r3 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9091 .loc 1 4223 6 view .LVU3120 9092 0006 282B cmp r3, #40 9093 0008 01D0 beq .L574 4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9094 .loc 1 4238 12 view .LVU3121 9095 000a 0220 movs r0, #2 9096 .LVL587: 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9097 .loc 1 4240 1 view .LVU3122 9098 000c 7047 bx lr 9099 .LVL588: 9100 .L574: 4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9101 .loc 1 4218 1 view .LVU3123 9102 000e 10B5 push {r4, lr} 9103 .LCFI104: 9104 .cfi_def_cfa_offset 8 9105 .cfi_offset 4, -8 9106 .cfi_offset 14, -4 4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9107 .loc 1 4225 5 is_stmt 1 view .LVU3124 4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9108 .loc 1 4225 26 is_stmt 0 view .LVU3125 9109 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9110 .LVL589: 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9111 .loc 1 4226 5 is_stmt 1 view .LVU3126 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9112 .loc 1 4226 48 is_stmt 0 view .LVU3127 9113 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9114 .loc 1 4226 31 view .LVU3128 9115 0018 02F00302 and r2, r2, #3 9116 .LVL590: 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9117 .loc 1 4226 31 view .LVU3129 9118 001c 1343 orrs r3, r3, r2 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9119 .loc 1 4226 25 view .LVU3130 9120 001e 0363 str r3, [r0, #48] ARM GAS /tmp/ccEimIdZ.s page 329 4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9121 .loc 1 4227 5 is_stmt 1 view .LVU3131 4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9122 .loc 1 4227 17 is_stmt 0 view .LVU3132 9123 0020 2023 movs r3, #32 9124 0022 80F84130 strb r3, [r0, #65] 4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9125 .loc 1 4228 5 is_stmt 1 view .LVU3133 4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9126 .loc 1 4228 16 is_stmt 0 view .LVU3134 9127 0026 0024 movs r4, #0 9128 0028 80F84240 strb r4, [r0, #66] 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9129 .loc 1 4229 5 is_stmt 1 view .LVU3135 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9130 .loc 1 4229 19 is_stmt 0 view .LVU3136 9131 002c 4463 str r4, [r0, #52] 4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9132 .loc 1 4232 5 is_stmt 1 view .LVU3137 9133 002e 4FF40041 mov r1, #32768 9134 0032 FFF7FEFF bl I2C_Disable_IRQ 9135 .LVL591: 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9136 .loc 1 4234 5 view .LVU3138 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9137 .loc 1 4234 12 is_stmt 0 view .LVU3139 9138 0036 2046 mov r0, r4 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9139 .loc 1 4240 1 view .LVU3140 9140 0038 10BD pop {r4, pc} 9141 .cfi_endproc 9142 .LFE173: 9144 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9145 .align 1 9146 .global HAL_I2C_Master_Abort_IT 9147 .syntax unified 9148 .thumb 9149 .thumb_func 9150 .fpu fpv5-d16 9152 HAL_I2C_Master_Abort_IT: 9153 .LVL592: 9154 .LFB174: 4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9155 .loc 1 4251 1 is_stmt 1 view -0 9156 .cfi_startproc 9157 @ args = 0, pretend = 0, frame = 0 9158 @ frame_needed = 0, uses_anonymous_args = 0 4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9159 .loc 1 4252 3 view .LVU3142 4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9160 .loc 1 4252 11 is_stmt 0 view .LVU3143 9161 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9162 0004 DBB2 uxtb r3, r3 4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9163 .loc 1 4252 6 view .LVU3144 9164 0006 102B cmp r3, #16 9165 0008 36D1 bne .L579 ARM GAS /tmp/ccEimIdZ.s page 330 4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9166 .loc 1 4251 1 view .LVU3145 9167 000a 30B5 push {r4, r5, lr} 9168 .LCFI105: 9169 .cfi_def_cfa_offset 12 9170 .cfi_offset 4, -12 9171 .cfi_offset 5, -8 9172 .cfi_offset 14, -4 9173 000c 83B0 sub sp, sp, #12 9174 .LCFI106: 9175 .cfi_def_cfa_offset 24 9176 000e 0446 mov r4, r0 9177 0010 0D46 mov r5, r1 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9178 .loc 1 4255 5 is_stmt 1 view .LVU3146 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9179 .loc 1 4255 5 view .LVU3147 9180 0012 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 9181 0016 012B cmp r3, #1 9182 0018 30D0 beq .L580 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9183 .loc 1 4255 5 discriminator 2 view .LVU3148 9184 001a 0123 movs r3, #1 9185 001c 80F84030 strb r3, [r0, #64] 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9186 .loc 1 4255 5 discriminator 2 view .LVU3149 4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9187 .loc 1 4258 5 discriminator 2 view .LVU3150 4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9188 .loc 1 4258 13 is_stmt 0 discriminator 2 view .LVU3151 9189 0020 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9190 0024 DBB2 uxtb r3, r3 4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9191 .loc 1 4258 8 discriminator 2 view .LVU3152 9192 0026 212B cmp r3, #33 9193 0028 1AD0 beq .L585 4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9194 .loc 1 4263 10 is_stmt 1 view .LVU3153 4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9195 .loc 1 4263 18 is_stmt 0 view .LVU3154 9196 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9197 002e DBB2 uxtb r3, r3 4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9198 .loc 1 4263 13 view .LVU3155 9199 0030 222B cmp r3, #34 9200 0032 1BD0 beq .L586 9201 .LVL593: 9202 .L578: 4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9203 .loc 1 4271 5 is_stmt 1 view .LVU3156 4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9204 .loc 1 4274 5 view .LVU3157 4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9205 .loc 1 4274 17 is_stmt 0 view .LVU3158 9206 0034 6023 movs r3, #96 9207 0036 84F84130 strb r3, [r4, #65] 4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 331 9208 .loc 1 4278 5 is_stmt 1 view .LVU3159 9209 003a 114B ldr r3, .L587 9210 003c 0093 str r3, [sp] 9211 003e 4FF00073 mov r3, #33554432 9212 0042 0122 movs r2, #1 9213 0044 2946 mov r1, r5 9214 0046 2046 mov r0, r4 9215 0048 FFF7FEFF bl I2C_TransferConfig 9216 .LVL594: 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9217 .loc 1 4281 5 view .LVU3160 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9218 .loc 1 4281 5 view .LVU3161 9219 004c 0025 movs r5, #0 9220 004e 84F84050 strb r5, [r4, #64] 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9221 .loc 1 4281 5 view .LVU3162 4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9222 .loc 1 4286 5 view .LVU3163 9223 0052 2021 movs r1, #32 9224 0054 2046 mov r0, r4 9225 0056 FFF7FEFF bl I2C_Enable_IRQ 9226 .LVL595: 4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9227 .loc 1 4288 5 view .LVU3164 4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9228 .loc 1 4288 12 is_stmt 0 view .LVU3165 9229 005a 2846 mov r0, r5 9230 .L576: 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9231 .loc 1 4296 1 view .LVU3166 9232 005c 03B0 add sp, sp, #12 9233 .LCFI107: 9234 .cfi_remember_state 9235 .cfi_def_cfa_offset 12 9236 @ sp needed 9237 005e 30BD pop {r4, r5, pc} 9238 .LVL596: 9239 .L585: 9240 .LCFI108: 9241 .cfi_restore_state 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9242 .loc 1 4260 7 is_stmt 1 view .LVU3167 9243 0060 0121 movs r1, #1 9244 .LVL597: 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9245 .loc 1 4260 7 is_stmt 0 view .LVU3168 9246 0062 FFF7FEFF bl I2C_Disable_IRQ 9247 .LVL598: 4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9248 .loc 1 4261 7 is_stmt 1 view .LVU3169 4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9249 .loc 1 4261 27 is_stmt 0 view .LVU3170 9250 0066 1123 movs r3, #17 9251 0068 2363 str r3, [r4, #48] 9252 006a E3E7 b .L578 9253 .LVL599: ARM GAS /tmp/ccEimIdZ.s page 332 9254 .L586: 4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9255 .loc 1 4265 7 is_stmt 1 view .LVU3171 9256 006c 0221 movs r1, #2 9257 .LVL600: 4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9258 .loc 1 4265 7 is_stmt 0 view .LVU3172 9259 006e FFF7FEFF bl I2C_Disable_IRQ 9260 .LVL601: 4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9261 .loc 1 4266 7 is_stmt 1 view .LVU3173 4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9262 .loc 1 4266 27 is_stmt 0 view .LVU3174 9263 0072 1223 movs r3, #18 9264 0074 2363 str r3, [r4, #48] 9265 0076 DDE7 b .L578 9266 .LVL602: 9267 .L579: 9268 .LCFI109: 9269 .cfi_def_cfa_offset 0 9270 .cfi_restore 4 9271 .cfi_restore 5 9272 .cfi_restore 14 4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9273 .loc 1 4294 12 view .LVU3175 9274 0078 0120 movs r0, #1 9275 .LVL603: 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9276 .loc 1 4296 1 view .LVU3176 9277 007a 7047 bx lr 9278 .LVL604: 9279 .L580: 9280 .LCFI110: 9281 .cfi_def_cfa_offset 24 9282 .cfi_offset 4, -12 9283 .cfi_offset 5, -8 9284 .cfi_offset 14, -4 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9285 .loc 1 4255 5 view .LVU3177 9286 007c 0220 movs r0, #2 9287 .LVL605: 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9288 .loc 1 4255 5 view .LVU3178 9289 007e EDE7 b .L576 9290 .L588: 9291 .align 2 9292 .L587: 9293 0080 00400080 .word -2147467264 9294 .cfi_endproc 9295 .LFE174: 9297 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 9298 .align 1 9299 .global HAL_I2C_EV_IRQHandler 9300 .syntax unified 9301 .thumb 9302 .thumb_func 9303 .fpu fpv5-d16 ARM GAS /tmp/ccEimIdZ.s page 333 9305 HAL_I2C_EV_IRQHandler: 9306 .LVL606: 9307 .LFB175: 4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9308 .loc 1 4313 1 is_stmt 1 view -0 9309 .cfi_startproc 9310 @ args = 0, pretend = 0, frame = 0 9311 @ frame_needed = 0, uses_anonymous_args = 0 4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9312 .loc 1 4313 1 is_stmt 0 view .LVU3180 9313 0000 08B5 push {r3, lr} 9314 .LCFI111: 9315 .cfi_def_cfa_offset 8 9316 .cfi_offset 3, -8 9317 .cfi_offset 14, -4 4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9318 .loc 1 4315 3 is_stmt 1 view .LVU3181 4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9319 .loc 1 4315 24 is_stmt 0 view .LVU3182 9320 0002 0368 ldr r3, [r0] 4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9321 .loc 1 4315 12 view .LVU3183 9322 0004 9969 ldr r1, [r3, #24] 9323 .LVL607: 4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9324 .loc 1 4316 3 is_stmt 1 view .LVU3184 4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9325 .loc 1 4316 12 is_stmt 0 view .LVU3185 9326 0006 1A68 ldr r2, [r3] 9327 .LVL608: 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9328 .loc 1 4319 3 is_stmt 1 view .LVU3186 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9329 .loc 1 4319 11 is_stmt 0 view .LVU3187 9330 0008 436B ldr r3, [r0, #52] 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9331 .loc 1 4319 6 view .LVU3188 9332 000a 03B1 cbz r3, .L589 4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9333 .loc 1 4321 5 is_stmt 1 view .LVU3189 9334 000c 9847 blx r3 9335 .LVL609: 9336 .L589: 4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9337 .loc 1 4323 1 is_stmt 0 view .LVU3190 9338 000e 08BD pop {r3, pc} 9339 .cfi_endproc 9340 .LFE175: 9342 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 9343 .align 1 9344 .weak HAL_I2C_MasterTxCpltCallback 9345 .syntax unified 9346 .thumb 9347 .thumb_func 9348 .fpu fpv5-d16 9350 HAL_I2C_MasterTxCpltCallback: 9351 .LVL610: ARM GAS /tmp/ccEimIdZ.s page 334 9352 .LFB177: 4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9353 .loc 1 4381 1 is_stmt 1 view -0 9354 .cfi_startproc 9355 @ args = 0, pretend = 0, frame = 0 9356 @ frame_needed = 0, uses_anonymous_args = 0 9357 @ link register save eliminated. 4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9358 .loc 1 4383 3 view .LVU3192 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9359 .loc 1 4388 1 is_stmt 0 view .LVU3193 9360 0000 7047 bx lr 9361 .cfi_endproc 9362 .LFE177: 9364 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 9365 .align 1 9366 .weak HAL_I2C_MasterRxCpltCallback 9367 .syntax unified 9368 .thumb 9369 .thumb_func 9370 .fpu fpv5-d16 9372 HAL_I2C_MasterRxCpltCallback: 9373 .LVL611: 9374 .LFB178: 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9375 .loc 1 4397 1 is_stmt 1 view -0 9376 .cfi_startproc 9377 @ args = 0, pretend = 0, frame = 0 9378 @ frame_needed = 0, uses_anonymous_args = 0 9379 @ link register save eliminated. 4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9380 .loc 1 4399 3 view .LVU3195 4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9381 .loc 1 4404 1 is_stmt 0 view .LVU3196 9382 0000 7047 bx lr 9383 .cfi_endproc 9384 .LFE178: 9386 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 9387 .align 1 9388 .syntax unified 9389 .thumb 9390 .thumb_func 9391 .fpu fpv5-d16 9393 I2C_ITMasterSeqCplt: 9394 .LVL612: 9395 .LFB197: 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 9396 .loc 1 5350 1 is_stmt 1 view -0 9397 .cfi_startproc 9398 @ args = 0, pretend = 0, frame = 0 9399 @ frame_needed = 0, uses_anonymous_args = 0 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 9400 .loc 1 5350 1 is_stmt 0 view .LVU3198 9401 0000 38B5 push {r3, r4, r5, lr} 9402 .LCFI112: 9403 .cfi_def_cfa_offset 16 9404 .cfi_offset 3, -16 ARM GAS /tmp/ccEimIdZ.s page 335 9405 .cfi_offset 4, -12 9406 .cfi_offset 5, -8 9407 .cfi_offset 14, -4 9408 0002 0446 mov r4, r0 5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9409 .loc 1 5352 3 is_stmt 1 view .LVU3199 5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9410 .loc 1 5352 14 is_stmt 0 view .LVU3200 9411 0004 0023 movs r3, #0 9412 0006 80F84230 strb r3, [r0, #66] 5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9413 .loc 1 5356 3 is_stmt 1 view .LVU3201 5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9414 .loc 1 5356 11 is_stmt 0 view .LVU3202 9415 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9416 000e DBB2 uxtb r3, r3 5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9417 .loc 1 5356 6 view .LVU3203 9418 0010 212B cmp r3, #33 9419 0012 0FD0 beq .L598 5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9420 .loc 1 5378 5 is_stmt 1 view .LVU3204 5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9421 .loc 1 5378 25 is_stmt 0 view .LVU3205 9422 0014 2023 movs r3, #32 9423 0016 80F84130 strb r3, [r0, #65] 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9424 .loc 1 5379 5 is_stmt 1 view .LVU3206 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9425 .loc 1 5379 25 is_stmt 0 view .LVU3207 9426 001a 1223 movs r3, #18 9427 001c 0363 str r3, [r0, #48] 5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9428 .loc 1 5380 5 is_stmt 1 view .LVU3208 5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9429 .loc 1 5380 25 is_stmt 0 view .LVU3209 9430 001e 0025 movs r5, #0 9431 0020 4563 str r5, [r0, #52] 5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9432 .loc 1 5383 5 is_stmt 1 view .LVU3210 9433 0022 0221 movs r1, #2 9434 0024 FFF7FEFF bl I2C_Disable_IRQ 9435 .LVL613: 5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9436 .loc 1 5386 5 view .LVU3211 5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9437 .loc 1 5386 5 view .LVU3212 9438 0028 84F84050 strb r5, [r4, #64] 5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9439 .loc 1 5386 5 view .LVU3213 5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9440 .loc 1 5392 5 view .LVU3214 9441 002c 2046 mov r0, r4 9442 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 9443 .LVL614: 9444 .L594: 5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 336 9445 .loc 1 5395 1 is_stmt 0 view .LVU3215 9446 0032 38BD pop {r3, r4, r5, pc} 9447 .LVL615: 9448 .L598: 5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9449 .loc 1 5358 5 is_stmt 1 view .LVU3216 5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9450 .loc 1 5358 25 is_stmt 0 view .LVU3217 9451 0034 2023 movs r3, #32 9452 0036 80F84130 strb r3, [r0, #65] 5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9453 .loc 1 5359 5 is_stmt 1 view .LVU3218 5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9454 .loc 1 5359 25 is_stmt 0 view .LVU3219 9455 003a 1123 movs r3, #17 9456 003c 0363 str r3, [r0, #48] 5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9457 .loc 1 5360 5 is_stmt 1 view .LVU3220 5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9458 .loc 1 5360 25 is_stmt 0 view .LVU3221 9459 003e 0025 movs r5, #0 9460 0040 4563 str r5, [r0, #52] 5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9461 .loc 1 5363 5 is_stmt 1 view .LVU3222 9462 0042 0121 movs r1, #1 9463 0044 FFF7FEFF bl I2C_Disable_IRQ 9464 .LVL616: 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9465 .loc 1 5366 5 view .LVU3223 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9466 .loc 1 5366 5 view .LVU3224 9467 0048 84F84050 strb r5, [r4, #64] 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9468 .loc 1 5366 5 view .LVU3225 5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9469 .loc 1 5372 5 view .LVU3226 9470 004c 2046 mov r0, r4 9471 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 9472 .LVL617: 9473 0052 EEE7 b .L594 9474 .cfi_endproc 9475 .LFE197: 9477 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 9478 .align 1 9479 .weak HAL_I2C_SlaveTxCpltCallback 9480 .syntax unified 9481 .thumb 9482 .thumb_func 9483 .fpu fpv5-d16 9485 HAL_I2C_SlaveTxCpltCallback: 9486 .LVL618: 9487 .LFB179: 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9488 .loc 1 4412 1 view -0 9489 .cfi_startproc 9490 @ args = 0, pretend = 0, frame = 0 9491 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccEimIdZ.s page 337 9492 @ link register save eliminated. 4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9493 .loc 1 4414 3 view .LVU3228 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9494 .loc 1 4419 1 is_stmt 0 view .LVU3229 9495 0000 7047 bx lr 9496 .cfi_endproc 9497 .LFE179: 9499 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 9500 .align 1 9501 .weak HAL_I2C_SlaveRxCpltCallback 9502 .syntax unified 9503 .thumb 9504 .thumb_func 9505 .fpu fpv5-d16 9507 HAL_I2C_SlaveRxCpltCallback: 9508 .LVL619: 9509 .LFB180: 4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9510 .loc 1 4428 1 is_stmt 1 view -0 9511 .cfi_startproc 9512 @ args = 0, pretend = 0, frame = 0 9513 @ frame_needed = 0, uses_anonymous_args = 0 9514 @ link register save eliminated. 4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9515 .loc 1 4430 3 view .LVU3231 4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9516 .loc 1 4435 1 is_stmt 0 view .LVU3232 9517 0000 7047 bx lr 9518 .cfi_endproc 9519 .LFE180: 9521 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 9522 .align 1 9523 .syntax unified 9524 .thumb 9525 .thumb_func 9526 .fpu fpv5-d16 9528 I2C_ITSlaveSeqCplt: 9529 .LVL620: 9530 .LFB198: 5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 9531 .loc 1 5403 1 is_stmt 1 view -0 9532 .cfi_startproc 9533 @ args = 0, pretend = 0, frame = 0 9534 @ frame_needed = 0, uses_anonymous_args = 0 5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 9535 .loc 1 5403 1 is_stmt 0 view .LVU3234 9536 0000 10B5 push {r4, lr} 9537 .LCFI113: 9538 .cfi_def_cfa_offset 8 9539 .cfi_offset 4, -8 9540 .cfi_offset 14, -4 9541 0002 0446 mov r4, r0 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9542 .loc 1 5404 3 is_stmt 1 view .LVU3235 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9543 .loc 1 5404 26 is_stmt 0 view .LVU3236 ARM GAS /tmp/ccEimIdZ.s page 338 9544 0004 0368 ldr r3, [r0] 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9545 .loc 1 5404 12 view .LVU3237 9546 0006 1A68 ldr r2, [r3] 9547 .LVL621: 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9548 .loc 1 5407 3 is_stmt 1 view .LVU3238 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9549 .loc 1 5407 14 is_stmt 0 view .LVU3239 9550 0008 0021 movs r1, #0 9551 000a 80F84210 strb r1, [r0, #66] 5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9552 .loc 1 5410 3 is_stmt 1 view .LVU3240 5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9553 .loc 1 5410 6 is_stmt 0 view .LVU3241 9554 000e 12F4804F tst r2, #16384 9555 0012 0ED0 beq .L602 5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9556 .loc 1 5413 5 is_stmt 1 view .LVU3242 5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9557 .loc 1 5413 25 is_stmt 0 view .LVU3243 9558 0014 1A68 ldr r2, [r3] 9559 .LVL622: 5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9560 .loc 1 5413 25 view .LVU3244 9561 0016 22F48042 bic r2, r2, #16384 9562 001a 1A60 str r2, [r3] 9563 .L603: 5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9564 .loc 1 5423 3 is_stmt 1 view .LVU3245 5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9565 .loc 1 5425 3 view .LVU3246 5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9566 .loc 1 5425 11 is_stmt 0 view .LVU3247 9567 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9568 0020 DBB2 uxtb r3, r3 5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9569 .loc 1 5425 6 view .LVU3248 9570 0022 292B cmp r3, #41 9571 0024 0DD0 beq .L607 5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9572 .loc 1 5445 8 is_stmt 1 view .LVU3249 5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9573 .loc 1 5445 16 is_stmt 0 view .LVU3250 9574 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9575 002a DBB2 uxtb r3, r3 5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9576 .loc 1 5445 11 view .LVU3251 9577 002c 2A2B cmp r3, #42 9578 002e 18D0 beq .L608 9579 .LVL623: 9580 .L601: 5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9581 .loc 1 5468 1 view .LVU3252 9582 0030 10BD pop {r4, pc} 9583 .LVL624: 9584 .L602: ARM GAS /tmp/ccEimIdZ.s page 339 5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9585 .loc 1 5415 8 is_stmt 1 view .LVU3253 5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9586 .loc 1 5415 11 is_stmt 0 view .LVU3254 9587 0032 12F4004F tst r2, #32768 9588 0036 F1D0 beq .L603 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9589 .loc 1 5418 5 is_stmt 1 view .LVU3255 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9590 .loc 1 5418 25 is_stmt 0 view .LVU3256 9591 0038 1A68 ldr r2, [r3] 9592 .LVL625: 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9593 .loc 1 5418 25 view .LVU3257 9594 003a 22F40042 bic r2, r2, #32768 9595 003e 1A60 str r2, [r3] 9596 0040 ECE7 b .L603 9597 .L607: 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 9598 .loc 1 5428 5 is_stmt 1 view .LVU3258 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 9599 .loc 1 5428 25 is_stmt 0 view .LVU3259 9600 0042 2823 movs r3, #40 9601 0044 84F84130 strb r3, [r4, #65] 5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9602 .loc 1 5429 5 is_stmt 1 view .LVU3260 5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9603 .loc 1 5429 25 is_stmt 0 view .LVU3261 9604 0048 2123 movs r3, #33 9605 004a 2363 str r3, [r4, #48] 5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9606 .loc 1 5432 5 is_stmt 1 view .LVU3262 9607 004c 0121 movs r1, #1 9608 004e 2046 mov r0, r4 9609 .LVL626: 5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9610 .loc 1 5432 5 is_stmt 0 view .LVU3263 9611 0050 FFF7FEFF bl I2C_Disable_IRQ 9612 .LVL627: 5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9613 .loc 1 5435 5 is_stmt 1 view .LVU3264 5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9614 .loc 1 5435 5 view .LVU3265 9615 0054 0023 movs r3, #0 9616 0056 84F84030 strb r3, [r4, #64] 5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9617 .loc 1 5435 5 view .LVU3266 5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9618 .loc 1 5441 5 view .LVU3267 9619 005a 2046 mov r0, r4 9620 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 9621 .LVL628: 9622 0060 E6E7 b .L601 9623 .LVL629: 9624 .L608: 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 9625 .loc 1 5448 5 view .LVU3268 ARM GAS /tmp/ccEimIdZ.s page 340 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 9626 .loc 1 5448 25 is_stmt 0 view .LVU3269 9627 0062 2823 movs r3, #40 9628 0064 84F84130 strb r3, [r4, #65] 5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9629 .loc 1 5449 5 is_stmt 1 view .LVU3270 5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9630 .loc 1 5449 25 is_stmt 0 view .LVU3271 9631 0068 2223 movs r3, #34 9632 006a 2363 str r3, [r4, #48] 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9633 .loc 1 5452 5 is_stmt 1 view .LVU3272 9634 006c 0221 movs r1, #2 9635 006e 2046 mov r0, r4 9636 .LVL630: 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9637 .loc 1 5452 5 is_stmt 0 view .LVU3273 9638 0070 FFF7FEFF bl I2C_Disable_IRQ 9639 .LVL631: 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9640 .loc 1 5455 5 is_stmt 1 view .LVU3274 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9641 .loc 1 5455 5 view .LVU3275 9642 0074 0023 movs r3, #0 9643 0076 84F84030 strb r3, [r4, #64] 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9644 .loc 1 5455 5 view .LVU3276 5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9645 .loc 1 5461 5 view .LVU3277 9646 007a 2046 mov r0, r4 9647 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 9648 .LVL632: 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9649 .loc 1 5467 3 view .LVU3278 5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9650 .loc 1 5468 1 is_stmt 0 view .LVU3279 9651 0080 D6E7 b .L601 9652 .cfi_endproc 9653 .LFE198: 9655 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 9656 .align 1 9657 .syntax unified 9658 .thumb 9659 .thumb_func 9660 .fpu fpv5-d16 9662 I2C_DMASlaveTransmitCplt: 9663 .LVL633: 9664 .LFB206: 6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 9665 .loc 1 6047 1 is_stmt 1 view -0 9666 .cfi_startproc 9667 @ args = 0, pretend = 0, frame = 0 9668 @ frame_needed = 0, uses_anonymous_args = 0 6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 9669 .loc 1 6047 1 is_stmt 0 view .LVU3281 9670 0000 08B5 push {r3, lr} 9671 .LCFI114: ARM GAS /tmp/ccEimIdZ.s page 341 9672 .cfi_def_cfa_offset 8 9673 .cfi_offset 3, -8 9674 .cfi_offset 14, -4 6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9675 .loc 1 6048 3 is_stmt 1 view .LVU3282 6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9676 .loc 1 6048 22 is_stmt 0 view .LVU3283 9677 0002 806B ldr r0, [r0, #56] 9678 .LVL634: 6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9679 .loc 1 6049 3 is_stmt 1 view .LVU3284 6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9680 .loc 1 6049 12 is_stmt 0 view .LVU3285 9681 0004 C36A ldr r3, [r0, #44] 9682 .LVL635: 6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9683 .loc 1 6051 3 is_stmt 1 view .LVU3286 6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9684 .loc 1 6051 6 is_stmt 0 view .LVU3287 9685 0006 002B cmp r3, #0 9686 0008 18BF it ne 9687 000a B3F1807F cmpne r3, #16777216 9688 000e 00D0 beq .L612 9689 .LVL636: 9690 .L609: 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9691 .loc 1 6066 1 view .LVU3288 9692 0010 08BD pop {r3, pc} 9693 .LVL637: 9694 .L612: 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9695 .loc 1 6054 5 is_stmt 1 view .LVU3289 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9696 .loc 1 6054 9 is_stmt 0 view .LVU3290 9697 0012 0268 ldr r2, [r0] 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9698 .loc 1 6054 25 view .LVU3291 9699 0014 1368 ldr r3, [r2] 9700 .LVL638: 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9701 .loc 1 6054 25 view .LVU3292 9702 0016 23F48043 bic r3, r3, #16384 9703 001a 1360 str r3, [r2] 6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9704 .loc 1 6058 5 is_stmt 1 view .LVU3293 9705 001c FFF7FEFF bl I2C_ITSlaveSeqCplt 9706 .LVL639: 6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9707 .loc 1 6065 3 view .LVU3294 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9708 .loc 1 6066 1 is_stmt 0 view .LVU3295 9709 0020 F6E7 b .L609 9710 .cfi_endproc 9711 .LFE206: 9713 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 9714 .align 1 9715 .syntax unified ARM GAS /tmp/ccEimIdZ.s page 342 9716 .thumb 9717 .thumb_func 9718 .fpu fpv5-d16 9720 I2C_DMASlaveReceiveCplt: 9721 .LVL640: 9722 .LFB208: 6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 9723 .loc 1 6122 1 is_stmt 1 view -0 9724 .cfi_startproc 9725 @ args = 0, pretend = 0, frame = 0 9726 @ frame_needed = 0, uses_anonymous_args = 0 6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 9727 .loc 1 6122 1 is_stmt 0 view .LVU3297 9728 0000 10B5 push {r4, lr} 9729 .LCFI115: 9730 .cfi_def_cfa_offset 8 9731 .cfi_offset 4, -8 9732 .cfi_offset 14, -4 6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9733 .loc 1 6123 3 is_stmt 1 view .LVU3298 6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9734 .loc 1 6123 22 is_stmt 0 view .LVU3299 9735 0002 806B ldr r0, [r0, #56] 9736 .LVL641: 6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9737 .loc 1 6124 3 is_stmt 1 view .LVU3300 6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9738 .loc 1 6124 12 is_stmt 0 view .LVU3301 9739 0004 C46A ldr r4, [r0, #44] 9740 .LVL642: 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9741 .loc 1 6126 3 is_stmt 1 view .LVU3302 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9742 .loc 1 6126 8 is_stmt 0 view .LVU3303 9743 0006 C36B ldr r3, [r0, #60] 9744 0008 1B68 ldr r3, [r3] 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9745 .loc 1 6126 44 view .LVU3304 9746 000a 2349 ldr r1, .L620 9747 000c 234A ldr r2, .L620+4 9748 000e 9342 cmp r3, r2 9749 0010 18BF it ne 9750 0012 8B42 cmpne r3, r1 9751 0014 2FD0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9752 .loc 1 6126 8 discriminator 2 view .LVU3305 9753 0016 1832 adds r2, r2, #24 9754 0018 9342 cmp r3, r2 9755 001a 2CD0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9756 .loc 1 6126 8 discriminator 4 view .LVU3306 9757 001c 1832 adds r2, r2, #24 9758 001e 9342 cmp r3, r2 9759 0020 29D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9760 .loc 1 6126 8 discriminator 6 view .LVU3307 9761 0022 1832 adds r2, r2, #24 ARM GAS /tmp/ccEimIdZ.s page 343 9762 0024 9342 cmp r3, r2 9763 0026 26D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9764 .loc 1 6126 8 discriminator 8 view .LVU3308 9765 0028 1832 adds r2, r2, #24 9766 002a 9342 cmp r3, r2 9767 002c 23D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9768 .loc 1 6126 8 discriminator 10 view .LVU3309 9769 002e 1832 adds r2, r2, #24 9770 0030 9342 cmp r3, r2 9771 0032 20D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9772 .loc 1 6126 8 discriminator 12 view .LVU3310 9773 0034 1832 adds r2, r2, #24 9774 0036 9342 cmp r3, r2 9775 0038 1DD0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9776 .loc 1 6126 8 discriminator 14 view .LVU3311 9777 003a 02F55672 add r2, r2, #856 9778 003e 9342 cmp r3, r2 9779 0040 19D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9780 .loc 1 6126 8 discriminator 16 view .LVU3312 9781 0042 1832 adds r2, r2, #24 9782 0044 9342 cmp r3, r2 9783 0046 16D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9784 .loc 1 6126 8 discriminator 18 view .LVU3313 9785 0048 1832 adds r2, r2, #24 9786 004a 9342 cmp r3, r2 9787 004c 13D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9788 .loc 1 6126 8 discriminator 20 view .LVU3314 9789 004e 1832 adds r2, r2, #24 9790 0050 9342 cmp r3, r2 9791 0052 10D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9792 .loc 1 6126 8 discriminator 22 view .LVU3315 9793 0054 1832 adds r2, r2, #24 9794 0056 9342 cmp r3, r2 9795 0058 0DD0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9796 .loc 1 6126 8 discriminator 24 view .LVU3316 9797 005a 1832 adds r2, r2, #24 9798 005c 9342 cmp r3, r2 9799 005e 0AD0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9800 .loc 1 6126 8 discriminator 26 view .LVU3317 9801 0060 1832 adds r2, r2, #24 9802 0062 9342 cmp r3, r2 9803 0064 07D0 beq .L614 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9804 .loc 1 6126 8 discriminator 28 view .LVU3318 9805 0066 1832 adds r2, r2, #24 9806 0068 9342 cmp r3, r2 9807 006a 04D0 beq .L614 ARM GAS /tmp/ccEimIdZ.s page 344 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9808 .loc 1 6126 8 discriminator 30 view .LVU3319 9809 006c 5B68 ldr r3, [r3, #4] 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9810 .loc 1 6126 44 discriminator 30 view .LVU3320 9811 006e B3FA83F3 clz r3, r3 9812 0072 5B09 lsrs r3, r3, #5 9813 0074 03E0 b .L616 9814 .L614: 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9815 .loc 1 6126 8 discriminator 29 view .LVU3321 9816 0076 5B68 ldr r3, [r3, #4] 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9817 .loc 1 6126 44 discriminator 29 view .LVU3322 9818 0078 B3FA83F3 clz r3, r3 9819 007c 5B09 lsrs r3, r3, #5 9820 .L616: 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9821 .loc 1 6126 6 discriminator 32 view .LVU3323 9822 007e 13B1 cbz r3, .L613 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9823 .loc 1 6126 51 discriminator 33 view .LVU3324 9824 0080 14F5803F cmn r4, #65536 9825 0084 00D1 bne .L619 9826 .LVL643: 9827 .L613: 6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9828 .loc 1 6141 1 view .LVU3325 9829 0086 10BD pop {r4, pc} 9830 .LVL644: 9831 .L619: 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9832 .loc 1 6130 5 is_stmt 1 view .LVU3326 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9833 .loc 1 6130 9 is_stmt 0 view .LVU3327 9834 0088 0268 ldr r2, [r0] 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9835 .loc 1 6130 25 view .LVU3328 9836 008a 1368 ldr r3, [r2] 9837 008c 23F40043 bic r3, r3, #32768 9838 0090 1360 str r3, [r2] 6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9839 .loc 1 6133 5 is_stmt 1 view .LVU3329 9840 0092 FFF7FEFF bl I2C_ITSlaveSeqCplt 9841 .LVL645: 6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9842 .loc 1 6140 3 view .LVU3330 6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9843 .loc 1 6141 1 is_stmt 0 view .LVU3331 9844 0096 F6E7 b .L613 9845 .L621: 9846 .align 2 9847 .L620: 9848 0098 10000240 .word 1073872912 9849 009c 28000240 .word 1073872936 9850 .cfi_endproc 9851 .LFE208: ARM GAS /tmp/ccEimIdZ.s page 345 9853 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 9854 .align 1 9855 .weak HAL_I2C_AddrCallback 9856 .syntax unified 9857 .thumb 9858 .thumb_func 9859 .fpu fpv5-d16 9861 HAL_I2C_AddrCallback: 9862 .LVL646: 9863 .LFB181: 4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9864 .loc 1 4446 1 is_stmt 1 view -0 9865 .cfi_startproc 9866 @ args = 0, pretend = 0, frame = 0 9867 @ frame_needed = 0, uses_anonymous_args = 0 9868 @ link register save eliminated. 4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection); 9869 .loc 1 4448 3 view .LVU3333 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 9870 .loc 1 4449 3 view .LVU3334 4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9871 .loc 1 4450 3 view .LVU3335 4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9872 .loc 1 4455 1 is_stmt 0 view .LVU3336 9873 0000 7047 bx lr 9874 .cfi_endproc 9875 .LFE181: 9877 .section .text.I2C_ITAddrCplt,"ax",%progbits 9878 .align 1 9879 .syntax unified 9880 .thumb 9881 .thumb_func 9882 .fpu fpv5-d16 9884 I2C_ITAddrCplt: 9885 .LVL647: 9886 .LFB196: 5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 9887 .loc 1 5255 1 is_stmt 1 view -0 9888 .cfi_startproc 9889 @ args = 0, pretend = 0, frame = 0 9890 @ frame_needed = 0, uses_anonymous_args = 0 5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 9891 .loc 1 5255 1 is_stmt 0 view .LVU3338 9892 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9893 .LCFI116: 9894 .cfi_def_cfa_offset 24 9895 .cfi_offset 3, -24 9896 .cfi_offset 4, -20 9897 .cfi_offset 5, -16 9898 .cfi_offset 6, -12 9899 .cfi_offset 7, -8 9900 .cfi_offset 14, -4 9901 0002 0446 mov r4, r0 5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode; 9902 .loc 1 5256 3 is_stmt 1 view .LVU3339 5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code; 9903 .loc 1 5257 3 view .LVU3340 ARM GAS /tmp/ccEimIdZ.s page 346 5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code; 9904 .loc 1 5258 3 view .LVU3341 5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9905 .loc 1 5259 3 view .LVU3342 5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9906 .loc 1 5262 3 view .LVU3343 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9907 .loc 1 5265 3 view .LVU3344 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9908 .loc 1 5265 22 is_stmt 0 view .LVU3345 9909 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9910 .loc 1 5265 6 view .LVU3346 9911 0008 03F02803 and r3, r3, #40 9912 000c 282B cmp r3, #40 9913 000e 06D0 beq .L629 5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9914 .loc 1 5337 5 is_stmt 1 view .LVU3347 9915 0010 0368 ldr r3, [r0] 9916 0012 0822 movs r2, #8 9917 0014 DA61 str r2, [r3, #28] 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9918 .loc 1 5340 5 view .LVU3348 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9919 .loc 1 5340 5 view .LVU3349 9920 0016 0023 movs r3, #0 9921 0018 80F84030 strb r3, [r0, #64] 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9922 .loc 1 5340 5 view .LVU3350 9923 .LVL648: 9924 .L623: 5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9925 .loc 1 5342 1 is_stmt 0 view .LVU3351 9926 001c F8BD pop {r3, r4, r5, r6, r7, pc} 9927 .LVL649: 9928 .L629: 5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 9929 .loc 1 5267 5 is_stmt 1 view .LVU3352 5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 9930 .loc 1 5267 25 is_stmt 0 view .LVU3353 9931 001e 0368 ldr r3, [r0] 9932 0020 9E69 ldr r6, [r3, #24] 5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 9933 .loc 1 5267 23 view .LVU3354 9934 0022 C6F30046 ubfx r6, r6, #16, #1 9935 .LVL650: 5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 9936 .loc 1 5268 5 is_stmt 1 view .LVU3355 5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 9937 .loc 1 5268 25 is_stmt 0 view .LVU3356 9938 0026 9A69 ldr r2, [r3, #24] 9939 0028 120C lsrs r2, r2, #16 5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 9940 .loc 1 5268 23 view .LVU3357 9941 002a 02F0FE05 and r5, r2, #254 9942 .LVL651: 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); ARM GAS /tmp/ccEimIdZ.s page 347 9943 .loc 1 5269 5 is_stmt 1 view .LVU3358 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 9944 .loc 1 5269 25 is_stmt 0 view .LVU3359 9945 002e 9A68 ldr r2, [r3, #8] 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 9946 .loc 1 5269 23 view .LVU3360 9947 0030 C2F30902 ubfx r2, r2, #0, #10 9948 .LVL652: 5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9949 .loc 1 5270 5 is_stmt 1 view .LVU3361 5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9950 .loc 1 5270 25 is_stmt 0 view .LVU3362 9951 0034 DF68 ldr r7, [r3, #12] 5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9952 .loc 1 5270 23 view .LVU3363 9953 0036 07F0FE07 and r7, r7, #254 9954 .LVL653: 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9955 .loc 1 5273 5 is_stmt 1 view .LVU3364 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9956 .loc 1 5273 19 is_stmt 0 view .LVU3365 9957 003a C168 ldr r1, [r0, #12] 9958 .LVL654: 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9959 .loc 1 5273 8 view .LVU3366 9960 003c 0229 cmp r1, #2 9961 003e 22D1 bne .L625 5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9962 .loc 1 5275 7 is_stmt 1 view .LVU3367 5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9963 .loc 1 5275 43 is_stmt 0 view .LVU3368 9964 0040 85EAD215 eor r5, r5, r2, lsr #7 9965 .LVL655: 5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9966 .loc 1 5275 10 view .LVU3369 9967 0044 15F0060F tst r5, #6 9968 0048 10D1 bne .L626 5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++; 9969 .loc 1 5277 9 is_stmt 1 view .LVU3370 9970 .LVL656: 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 9971 .loc 1 5278 9 view .LVU3371 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 9972 .loc 1 5278 13 is_stmt 0 view .LVU3372 9973 004a 816C ldr r1, [r0, #72] 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 9974 .loc 1 5278 29 view .LVU3373 9975 004c 0131 adds r1, r1, #1 9976 004e 8164 str r1, [r0, #72] 5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9977 .loc 1 5279 9 is_stmt 1 view .LVU3374 5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9978 .loc 1 5279 17 is_stmt 0 view .LVU3375 9979 0050 816C ldr r1, [r0, #72] 5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9980 .loc 1 5279 12 view .LVU3376 9981 0052 0229 cmp r1, #2 ARM GAS /tmp/ccEimIdZ.s page 348 9982 0054 E2D1 bne .L623 5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9983 .loc 1 5282 11 is_stmt 1 view .LVU3377 5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9984 .loc 1 5282 32 is_stmt 0 view .LVU3378 9985 0056 0021 movs r1, #0 9986 0058 8164 str r1, [r0, #72] 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9987 .loc 1 5285 11 is_stmt 1 view .LVU3379 9988 005a 0820 movs r0, #8 9989 .LVL657: 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9990 .loc 1 5285 11 is_stmt 0 view .LVU3380 9991 005c D861 str r0, [r3, #28] 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9992 .loc 1 5288 11 is_stmt 1 view .LVU3381 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9993 .loc 1 5288 11 view .LVU3382 9994 005e 84F84010 strb r1, [r4, #64] 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9995 .loc 1 5288 11 view .LVU3383 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9996 .loc 1 5294 11 view .LVU3384 9997 0062 3146 mov r1, r6 9998 0064 2046 mov r0, r4 9999 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10000 .LVL658: 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10001 .loc 1 5294 11 is_stmt 0 view .LVU3385 10002 006a D7E7 b .L623 10003 .LVL659: 10004 .L626: 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10005 .loc 1 5300 9 is_stmt 1 view .LVU3386 5303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10006 .loc 1 5303 9 view .LVU3387 10007 006c 4FF40041 mov r1, #32768 10008 0070 FFF7FEFF bl I2C_Disable_IRQ 10009 .LVL660: 5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10010 .loc 1 5306 9 view .LVU3388 5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10011 .loc 1 5306 9 view .LVU3389 10012 0074 0023 movs r3, #0 10013 0076 84F84030 strb r3, [r4, #64] 5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10014 .loc 1 5306 9 view .LVU3390 5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10015 .loc 1 5312 9 view .LVU3391 10016 007a 3A46 mov r2, r7 10017 007c 3146 mov r1, r6 10018 007e 2046 mov r0, r4 10019 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10020 .LVL661: 10021 0084 CAE7 b .L623 10022 .LVL662: 10023 .L625: ARM GAS /tmp/ccEimIdZ.s page 349 5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10024 .loc 1 5320 7 view .LVU3392 10025 0086 4FF40041 mov r1, #32768 10026 008a FFF7FEFF bl I2C_Disable_IRQ 10027 .LVL663: 5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10028 .loc 1 5323 7 view .LVU3393 5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10029 .loc 1 5323 7 view .LVU3394 10030 008e 0023 movs r3, #0 10031 0090 84F84030 strb r3, [r4, #64] 5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10032 .loc 1 5323 7 view .LVU3395 5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10033 .loc 1 5329 7 view .LVU3396 10034 0094 2A46 mov r2, r5 10035 0096 3146 mov r1, r6 10036 0098 2046 mov r0, r4 10037 009a FFF7FEFF bl HAL_I2C_AddrCallback 10038 .LVL664: 10039 009e BDE7 b .L623 10040 .cfi_endproc 10041 .LFE196: 10043 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10044 .align 1 10045 .weak HAL_I2C_ListenCpltCallback 10046 .syntax unified 10047 .thumb 10048 .thumb_func 10049 .fpu fpv5-d16 10051 HAL_I2C_ListenCpltCallback: 10052 .LVL665: 10053 .LFB182: 4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10054 .loc 1 4464 1 view -0 10055 .cfi_startproc 10056 @ args = 0, pretend = 0, frame = 0 10057 @ frame_needed = 0, uses_anonymous_args = 0 10058 @ link register save eliminated. 4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10059 .loc 1 4466 3 view .LVU3398 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10060 .loc 1 4471 1 is_stmt 0 view .LVU3399 10061 0000 7047 bx lr 10062 .cfi_endproc 10063 .LFE182: 10065 .section .text.I2C_ITListenCplt,"ax",%progbits 10066 .align 1 10067 .syntax unified 10068 .thumb 10069 .thumb_func 10070 .fpu fpv5-d16 10072 I2C_ITListenCplt: 10073 .LVL666: 10074 .LFB201: 5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 10075 .loc 1 5779 1 is_stmt 1 view -0 ARM GAS /tmp/ccEimIdZ.s page 350 10076 .cfi_startproc 10077 @ args = 0, pretend = 0, frame = 0 10078 @ frame_needed = 0, uses_anonymous_args = 0 5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 10079 .loc 1 5779 1 is_stmt 0 view .LVU3401 10080 0000 10B5 push {r4, lr} 10081 .LCFI117: 10082 .cfi_def_cfa_offset 8 10083 .cfi_offset 4, -8 10084 .cfi_offset 14, -4 10085 0002 0446 mov r4, r0 5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10086 .loc 1 5781 3 is_stmt 1 view .LVU3402 5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10087 .loc 1 5781 21 is_stmt 0 view .LVU3403 10088 0004 174B ldr r3, .L634 10089 0006 C362 str r3, [r0, #44] 5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10090 .loc 1 5782 3 is_stmt 1 view .LVU3404 5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10091 .loc 1 5782 23 is_stmt 0 view .LVU3405 10092 0008 0023 movs r3, #0 10093 000a 0363 str r3, [r0, #48] 5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10094 .loc 1 5783 3 is_stmt 1 view .LVU3406 5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10095 .loc 1 5783 15 is_stmt 0 view .LVU3407 10096 000c 2022 movs r2, #32 10097 000e 80F84120 strb r2, [r0, #65] 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10098 .loc 1 5784 3 is_stmt 1 view .LVU3408 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10099 .loc 1 5784 14 is_stmt 0 view .LVU3409 10100 0012 80F84230 strb r3, [r0, #66] 5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10101 .loc 1 5785 3 is_stmt 1 view .LVU3410 5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10102 .loc 1 5785 17 is_stmt 0 view .LVU3411 10103 0016 4363 str r3, [r0, #52] 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10104 .loc 1 5788 3 is_stmt 1 view .LVU3412 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10105 .loc 1 5788 6 is_stmt 0 view .LVU3413 10106 0018 11F0040F tst r1, #4 10107 001c 13D0 beq .L632 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10108 .loc 1 5791 5 is_stmt 1 view .LVU3414 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10109 .loc 1 5791 36 is_stmt 0 view .LVU3415 10110 001e 0368 ldr r3, [r0] 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10111 .loc 1 5791 46 view .LVU3416 10112 0020 5A6A ldr r2, [r3, #36] 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10113 .loc 1 5791 10 view .LVU3417 10114 0022 436A ldr r3, [r0, #36] 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 351 10115 .loc 1 5791 21 view .LVU3418 10116 0024 1A70 strb r2, [r3] 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10117 .loc 1 5794 5 is_stmt 1 view .LVU3419 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10118 .loc 1 5794 9 is_stmt 0 view .LVU3420 10119 0026 436A ldr r3, [r0, #36] 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10120 .loc 1 5794 19 view .LVU3421 10121 0028 0133 adds r3, r3, #1 10122 002a 4362 str r3, [r0, #36] 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10123 .loc 1 5796 5 is_stmt 1 view .LVU3422 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10124 .loc 1 5796 14 is_stmt 0 view .LVU3423 10125 002c 038D ldrh r3, [r0, #40] 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10126 .loc 1 5796 8 view .LVU3424 10127 002e 53B1 cbz r3, .L632 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10128 .loc 1 5798 7 is_stmt 1 view .LVU3425 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10129 .loc 1 5798 21 is_stmt 0 view .LVU3426 10130 0030 013B subs r3, r3, #1 10131 0032 0385 strh r3, [r0, #40] @ movhi 5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10132 .loc 1 5799 7 is_stmt 1 view .LVU3427 5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10133 .loc 1 5799 11 is_stmt 0 view .LVU3428 10134 0034 438D ldrh r3, [r0, #42] 10135 0036 9BB2 uxth r3, r3 5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10136 .loc 1 5799 22 view .LVU3429 10137 0038 013B subs r3, r3, #1 10138 003a 9BB2 uxth r3, r3 10139 003c 4385 strh r3, [r0, #42] @ movhi 5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10140 .loc 1 5802 7 is_stmt 1 view .LVU3430 5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10141 .loc 1 5802 23 is_stmt 0 view .LVU3431 10142 003e 436C ldr r3, [r0, #68] 10143 0040 43F00403 orr r3, r3, #4 10144 0044 4364 str r3, [r0, #68] 10145 .L632: 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10146 .loc 1 5807 3 is_stmt 1 view .LVU3432 10147 0046 48F20301 movw r1, #32771 10148 .LVL667: 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10149 .loc 1 5807 3 is_stmt 0 view .LVU3433 10150 004a 2046 mov r0, r4 10151 .LVL668: 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10152 .loc 1 5807 3 view .LVU3434 10153 004c FFF7FEFF bl I2C_Disable_IRQ 10154 .LVL669: 5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 352 10155 .loc 1 5810 3 is_stmt 1 view .LVU3435 10156 0050 2368 ldr r3, [r4] 10157 0052 1022 movs r2, #16 10158 0054 DA61 str r2, [r3, #28] 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10159 .loc 1 5813 3 view .LVU3436 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10160 .loc 1 5813 3 view .LVU3437 10161 0056 0023 movs r3, #0 10162 0058 84F84030 strb r3, [r4, #64] 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10163 .loc 1 5813 3 view .LVU3438 5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10164 .loc 1 5819 3 view .LVU3439 10165 005c 2046 mov r0, r4 10166 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10167 .LVL670: 5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10168 .loc 1 5821 1 is_stmt 0 view .LVU3440 10169 0062 10BD pop {r4, pc} 10170 .LVL671: 10171 .L635: 5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10172 .loc 1 5821 1 view .LVU3441 10173 .align 2 10174 .L634: 10175 0064 0000FFFF .word -65536 10176 .cfi_endproc 10177 .LFE201: 10179 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10180 .align 1 10181 .weak HAL_I2C_MemTxCpltCallback 10182 .syntax unified 10183 .thumb 10184 .thumb_func 10185 .fpu fpv5-d16 10187 HAL_I2C_MemTxCpltCallback: 10188 .LVL672: 10189 .LFB183: 4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10190 .loc 1 4480 1 is_stmt 1 view -0 10191 .cfi_startproc 10192 @ args = 0, pretend = 0, frame = 0 10193 @ frame_needed = 0, uses_anonymous_args = 0 10194 @ link register save eliminated. 4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10195 .loc 1 4482 3 view .LVU3443 4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10196 .loc 1 4487 1 is_stmt 0 view .LVU3444 10197 0000 7047 bx lr 10198 .cfi_endproc 10199 .LFE183: 10201 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10202 .align 1 10203 .weak HAL_I2C_MemRxCpltCallback 10204 .syntax unified 10205 .thumb ARM GAS /tmp/ccEimIdZ.s page 353 10206 .thumb_func 10207 .fpu fpv5-d16 10209 HAL_I2C_MemRxCpltCallback: 10210 .LVL673: 10211 .LFB184: 4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10212 .loc 1 4496 1 is_stmt 1 view -0 10213 .cfi_startproc 10214 @ args = 0, pretend = 0, frame = 0 10215 @ frame_needed = 0, uses_anonymous_args = 0 10216 @ link register save eliminated. 4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10217 .loc 1 4498 3 view .LVU3446 4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10218 .loc 1 4503 1 is_stmt 0 view .LVU3447 10219 0000 7047 bx lr 10220 .cfi_endproc 10221 .LFE184: 10223 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10224 .align 1 10225 .weak HAL_I2C_ErrorCallback 10226 .syntax unified 10227 .thumb 10228 .thumb_func 10229 .fpu fpv5-d16 10231 HAL_I2C_ErrorCallback: 10232 .LVL674: 10233 .LFB185: 4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10234 .loc 1 4512 1 is_stmt 1 view -0 10235 .cfi_startproc 10236 @ args = 0, pretend = 0, frame = 0 10237 @ frame_needed = 0, uses_anonymous_args = 0 10238 @ link register save eliminated. 4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10239 .loc 1 4514 3 view .LVU3449 4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10240 .loc 1 4519 1 is_stmt 0 view .LVU3450 10241 0000 7047 bx lr 10242 .cfi_endproc 10243 .LFE185: 10245 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10246 .align 1 10247 .weak HAL_I2C_AbortCpltCallback 10248 .syntax unified 10249 .thumb 10250 .thumb_func 10251 .fpu fpv5-d16 10253 HAL_I2C_AbortCpltCallback: 10254 .LVL675: 10255 .LFB186: 4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10256 .loc 1 4528 1 is_stmt 1 view -0 10257 .cfi_startproc 10258 @ args = 0, pretend = 0, frame = 0 10259 @ frame_needed = 0, uses_anonymous_args = 0 10260 @ link register save eliminated. ARM GAS /tmp/ccEimIdZ.s page 354 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10261 .loc 1 4530 3 view .LVU3452 4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10262 .loc 1 4535 1 is_stmt 0 view .LVU3453 10263 0000 7047 bx lr 10264 .cfi_endproc 10265 .LFE186: 10267 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10268 .align 1 10269 .syntax unified 10270 .thumb 10271 .thumb_func 10272 .fpu fpv5-d16 10274 I2C_TreatErrorCallback: 10275 .LVL676: 10276 .LFB203: 5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10277 .loc 1 5940 1 is_stmt 1 view -0 10278 .cfi_startproc 10279 @ args = 0, pretend = 0, frame = 0 10280 @ frame_needed = 0, uses_anonymous_args = 0 5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10281 .loc 1 5940 1 is_stmt 0 view .LVU3455 10282 0000 08B5 push {r3, lr} 10283 .LCFI118: 10284 .cfi_def_cfa_offset 8 10285 .cfi_offset 3, -8 10286 .cfi_offset 14, -4 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10287 .loc 1 5941 3 is_stmt 1 view .LVU3456 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10288 .loc 1 5941 11 is_stmt 0 view .LVU3457 10289 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10290 0006 DBB2 uxtb r3, r3 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10291 .loc 1 5941 6 view .LVU3458 10292 0008 602B cmp r3, #96 10293 000a 06D0 beq .L644 5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10294 .loc 1 5958 5 is_stmt 1 view .LVU3459 5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10295 .loc 1 5958 25 is_stmt 0 view .LVU3460 10296 000c 0023 movs r3, #0 10297 000e 0363 str r3, [r0, #48] 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10298 .loc 1 5961 5 is_stmt 1 view .LVU3461 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10299 .loc 1 5961 5 view .LVU3462 10300 0010 80F84030 strb r3, [r0, #64] 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10301 .loc 1 5961 5 view .LVU3463 5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10302 .loc 1 5967 5 view .LVU3464 10303 0014 FFF7FEFF bl HAL_I2C_ErrorCallback 10304 .LVL677: 10305 .L640: 5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 355 10306 .loc 1 5970 1 is_stmt 0 view .LVU3465 10307 0018 08BD pop {r3, pc} 10308 .LVL678: 10309 .L644: 5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10310 .loc 1 5943 5 is_stmt 1 view .LVU3466 5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10311 .loc 1 5943 17 is_stmt 0 view .LVU3467 10312 001a 2023 movs r3, #32 10313 001c 80F84130 strb r3, [r0, #65] 5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10314 .loc 1 5944 5 is_stmt 1 view .LVU3468 5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10315 .loc 1 5944 25 is_stmt 0 view .LVU3469 10316 0020 0023 movs r3, #0 10317 0022 0363 str r3, [r0, #48] 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10318 .loc 1 5947 5 is_stmt 1 view .LVU3470 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10319 .loc 1 5947 5 view .LVU3471 10320 0024 80F84030 strb r3, [r0, #64] 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10321 .loc 1 5947 5 view .LVU3472 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10322 .loc 1 5953 5 view .LVU3473 10323 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10324 .LVL679: 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10325 .loc 1 5953 5 is_stmt 0 view .LVU3474 10326 002c F4E7 b .L640 10327 .cfi_endproc 10328 .LFE203: 10330 .section .text.I2C_ITError,"ax",%progbits 10331 .align 1 10332 .syntax unified 10333 .thumb 10334 .thumb_func 10335 .fpu fpv5-d16 10337 I2C_ITError: 10338 .LVL680: 10339 .LFB202: 5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10340 .loc 1 5830 1 is_stmt 1 view -0 10341 .cfi_startproc 10342 @ args = 0, pretend = 0, frame = 0 10343 @ frame_needed = 0, uses_anonymous_args = 0 5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10344 .loc 1 5830 1 is_stmt 0 view .LVU3476 10345 0000 10B5 push {r4, lr} 10346 .LCFI119: 10347 .cfi_def_cfa_offset 8 10348 .cfi_offset 4, -8 10349 .cfi_offset 14, -4 10350 0002 0446 mov r4, r0 5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate; 10351 .loc 1 5831 3 is_stmt 1 view .LVU3477 5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate; ARM GAS /tmp/ccEimIdZ.s page 356 10352 .loc 1 5831 24 is_stmt 0 view .LVU3478 10353 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10354 .LVL681: 5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10355 .loc 1 5832 3 is_stmt 1 view .LVU3479 5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10356 .loc 1 5835 3 view .LVU3480 5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10357 .loc 1 5835 23 is_stmt 0 view .LVU3481 10358 0008 0020 movs r0, #0 10359 .LVL682: 5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10360 .loc 1 5835 23 view .LVU3482 10361 000a 84F84200 strb r0, [r4, #66] 5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10362 .loc 1 5836 3 is_stmt 1 view .LVU3483 5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10363 .loc 1 5836 23 is_stmt 0 view .LVU3484 10364 000e 3B4A ldr r2, .L657 10365 0010 E262 str r2, [r4, #44] 5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10366 .loc 1 5837 3 is_stmt 1 view .LVU3485 5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10367 .loc 1 5837 23 is_stmt 0 view .LVU3486 10368 0012 6085 strh r0, [r4, #42] @ movhi 5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10369 .loc 1 5840 3 is_stmt 1 view .LVU3487 5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10370 .loc 1 5840 19 is_stmt 0 view .LVU3488 10371 0014 626C ldr r2, [r4, #68] 10372 0016 0A43 orrs r2, r2, r1 10373 0018 6264 str r2, [r4, #68] 5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10374 .loc 1 5843 3 is_stmt 1 view .LVU3489 5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10375 .loc 1 5844 50 is_stmt 0 view .LVU3490 10376 001a 283B subs r3, r3, #40 10377 .LVL683: 5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10378 .loc 1 5844 50 view .LVU3491 10379 001c DBB2 uxtb r3, r3 5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10380 .loc 1 5843 6 view .LVU3492 10381 001e 022B cmp r3, #2 10382 0020 2DD8 bhi .L646 5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10383 .loc 1 5848 5 is_stmt 1 view .LVU3493 10384 0022 0321 movs r1, #3 10385 .LVL684: 5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10386 .loc 1 5848 5 is_stmt 0 view .LVU3494 10387 0024 2046 mov r0, r4 10388 0026 FFF7FEFF bl I2C_Disable_IRQ 10389 .LVL685: 5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10390 .loc 1 5851 5 is_stmt 1 view .LVU3495 5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; ARM GAS /tmp/ccEimIdZ.s page 357 10391 .loc 1 5851 25 is_stmt 0 view .LVU3496 10392 002a 2823 movs r3, #40 10393 002c 84F84130 strb r3, [r4, #65] 5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10394 .loc 1 5852 5 is_stmt 1 view .LVU3497 5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10395 .loc 1 5852 25 is_stmt 0 view .LVU3498 10396 0030 334B ldr r3, .L657+4 10397 0032 6363 str r3, [r4, #52] 10398 .L647: 5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || (tmppreviousstat 10399 .loc 1 5870 3 is_stmt 1 view .LVU3499 5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || (tmppreviousstat 10400 .loc 1 5870 20 is_stmt 0 view .LVU3500 10401 0034 236B ldr r3, [r4, #48] 10402 .LVL686: 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10403 .loc 1 5871 3 is_stmt 1 view .LVU3501 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10404 .loc 1 5871 12 is_stmt 0 view .LVU3502 10405 0036 A26B ldr r2, [r4, #56] 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10406 .loc 1 5871 6 view .LVU3503 10407 0038 002A cmp r2, #0 10408 003a 34D0 beq .L649 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10409 .loc 1 5871 30 discriminator 1 view .LVU3504 10410 003c 212B cmp r3, #33 10411 003e 18BF it ne 10412 0040 112B cmpne r3, #17 10413 0042 30D1 bne .L649 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10414 .loc 1 5873 5 is_stmt 1 view .LVU3505 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10415 .loc 1 5873 14 is_stmt 0 view .LVU3506 10416 0044 2368 ldr r3, [r4] 10417 .LVL687: 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10418 .loc 1 5873 24 view .LVU3507 10419 0046 1A68 ldr r2, [r3] 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10420 .loc 1 5873 8 view .LVU3508 10421 0048 12F4804F tst r2, #16384 10422 004c 03D0 beq .L650 5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10423 .loc 1 5875 7 is_stmt 1 view .LVU3509 5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10424 .loc 1 5875 27 is_stmt 0 view .LVU3510 10425 004e 1A68 ldr r2, [r3] 10426 0050 22F48042 bic r2, r2, #16384 10427 0054 1A60 str r2, [r3] 10428 .L650: 5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10429 .loc 1 5878 5 is_stmt 1 view .LVU3511 5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10430 .loc 1 5878 9 is_stmt 0 view .LVU3512 10431 0056 A06B ldr r0, [r4, #56] ARM GAS /tmp/ccEimIdZ.s page 358 10432 0058 FFF7FEFF bl HAL_DMA_GetState 10433 .LVL688: 5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10434 .loc 1 5878 8 view .LVU3513 10435 005c 0128 cmp r0, #1 10436 005e 1ED0 beq .L651 5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10437 .loc 1 5882 7 is_stmt 1 view .LVU3514 5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10438 .loc 1 5882 11 is_stmt 0 view .LVU3515 10439 0060 A36B ldr r3, [r4, #56] 5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10440 .loc 1 5882 39 view .LVU3516 10441 0062 284A ldr r2, .L657+8 10442 0064 1A65 str r2, [r3, #80] 5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10443 .loc 1 5885 7 is_stmt 1 view .LVU3517 5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10444 .loc 1 5885 7 view .LVU3518 10445 0066 0023 movs r3, #0 10446 0068 84F84030 strb r3, [r4, #64] 5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10447 .loc 1 5885 7 view .LVU3519 5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10448 .loc 1 5888 7 view .LVU3520 5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10449 .loc 1 5888 11 is_stmt 0 view .LVU3521 10450 006c A06B ldr r0, [r4, #56] 10451 006e FFF7FEFF bl HAL_DMA_Abort_IT 10452 .LVL689: 5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10453 .loc 1 5888 10 view .LVU3522 10454 0072 0028 cmp r0, #0 10455 0074 40D0 beq .L645 5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10456 .loc 1 5891 9 is_stmt 1 view .LVU3523 5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10457 .loc 1 5891 13 is_stmt 0 view .LVU3524 10458 0076 A06B ldr r0, [r4, #56] 5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10459 .loc 1 5891 21 view .LVU3525 10460 0078 036D ldr r3, [r0, #80] 5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10461 .loc 1 5891 9 view .LVU3526 10462 007a 9847 blx r3 10463 .LVL690: 10464 007c 3CE0 b .L645 10465 .LVL691: 10466 .L646: 5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10467 .loc 1 5857 5 is_stmt 1 view .LVU3527 10468 007e 48F20301 movw r1, #32771 10469 .LVL692: 5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10470 .loc 1 5857 5 is_stmt 0 view .LVU3528 10471 0082 2046 mov r0, r4 10472 0084 FFF7FEFF bl I2C_Disable_IRQ ARM GAS /tmp/ccEimIdZ.s page 359 10473 .LVL693: 5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10474 .loc 1 5861 5 is_stmt 1 view .LVU3529 5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10475 .loc 1 5861 13 is_stmt 0 view .LVU3530 10476 0088 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10477 008c DBB2 uxtb r3, r3 5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10478 .loc 1 5861 8 view .LVU3531 10479 008e 602B cmp r3, #96 10480 0090 02D0 beq .L648 5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10481 .loc 1 5864 7 is_stmt 1 view .LVU3532 5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10482 .loc 1 5864 27 is_stmt 0 view .LVU3533 10483 0092 2023 movs r3, #32 10484 0094 84F84130 strb r3, [r4, #65] 10485 .L648: 5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10486 .loc 1 5866 5 is_stmt 1 view .LVU3534 5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10487 .loc 1 5866 25 is_stmt 0 view .LVU3535 10488 0098 0023 movs r3, #0 10489 009a 6363 str r3, [r4, #52] 10490 009c CAE7 b .L647 10491 .L651: 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10492 .loc 1 5896 7 is_stmt 1 view .LVU3536 10493 009e 2046 mov r0, r4 10494 00a0 FFF7FEFF bl I2C_TreatErrorCallback 10495 .LVL694: 10496 00a4 28E0 b .L645 10497 .LVL695: 10498 .L649: 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10499 .loc 1 5900 8 view .LVU3537 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10500 .loc 1 5900 17 is_stmt 0 view .LVU3538 10501 00a6 E26B ldr r2, [r4, #60] 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10502 .loc 1 5900 11 view .LVU3539 10503 00a8 1AB3 cbz r2, .L653 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10504 .loc 1 5900 35 discriminator 1 view .LVU3540 10505 00aa 222B cmp r3, #34 10506 00ac 18BF it ne 10507 00ae 122B cmpne r3, #18 10508 00b0 1FD1 bne .L653 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10509 .loc 1 5902 5 is_stmt 1 view .LVU3541 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10510 .loc 1 5902 14 is_stmt 0 view .LVU3542 10511 00b2 2368 ldr r3, [r4] 10512 .LVL696: 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10513 .loc 1 5902 24 view .LVU3543 10514 00b4 1A68 ldr r2, [r3] ARM GAS /tmp/ccEimIdZ.s page 360 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10515 .loc 1 5902 8 view .LVU3544 10516 00b6 12F4004F tst r2, #32768 10517 00ba 03D0 beq .L654 5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10518 .loc 1 5904 7 is_stmt 1 view .LVU3545 5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10519 .loc 1 5904 27 is_stmt 0 view .LVU3546 10520 00bc 1A68 ldr r2, [r3] 10521 00be 22F40042 bic r2, r2, #32768 10522 00c2 1A60 str r2, [r3] 10523 .L654: 5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10524 .loc 1 5907 5 is_stmt 1 view .LVU3547 5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10525 .loc 1 5907 9 is_stmt 0 view .LVU3548 10526 00c4 E06B ldr r0, [r4, #60] 10527 00c6 FFF7FEFF bl HAL_DMA_GetState 10528 .LVL697: 5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10529 .loc 1 5907 8 view .LVU3549 10530 00ca 0128 cmp r0, #1 10531 00cc 0DD0 beq .L655 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10532 .loc 1 5911 7 is_stmt 1 view .LVU3550 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10533 .loc 1 5911 11 is_stmt 0 view .LVU3551 10534 00ce E36B ldr r3, [r4, #60] 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10535 .loc 1 5911 39 view .LVU3552 10536 00d0 0C4A ldr r2, .L657+8 10537 00d2 1A65 str r2, [r3, #80] 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10538 .loc 1 5914 7 is_stmt 1 view .LVU3553 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10539 .loc 1 5914 7 view .LVU3554 10540 00d4 0023 movs r3, #0 10541 00d6 84F84030 strb r3, [r4, #64] 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10542 .loc 1 5914 7 view .LVU3555 5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10543 .loc 1 5917 7 view .LVU3556 5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10544 .loc 1 5917 11 is_stmt 0 view .LVU3557 10545 00da E06B ldr r0, [r4, #60] 10546 00dc FFF7FEFF bl HAL_DMA_Abort_IT 10547 .LVL698: 5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10548 .loc 1 5917 10 view .LVU3558 10549 00e0 50B1 cbz r0, .L645 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10550 .loc 1 5920 9 is_stmt 1 view .LVU3559 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10551 .loc 1 5920 13 is_stmt 0 view .LVU3560 10552 00e2 E06B ldr r0, [r4, #60] 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10553 .loc 1 5920 21 view .LVU3561 ARM GAS /tmp/ccEimIdZ.s page 361 10554 00e4 036D ldr r3, [r0, #80] 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10555 .loc 1 5920 9 view .LVU3562 10556 00e6 9847 blx r3 10557 .LVL699: 10558 00e8 06E0 b .L645 10559 .L655: 5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10560 .loc 1 5925 7 is_stmt 1 view .LVU3563 10561 00ea 2046 mov r0, r4 10562 00ec FFF7FEFF bl I2C_TreatErrorCallback 10563 .LVL700: 10564 00f0 02E0 b .L645 10565 .LVL701: 10566 .L653: 5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10567 .loc 1 5930 5 view .LVU3564 10568 00f2 2046 mov r0, r4 10569 00f4 FFF7FEFF bl I2C_TreatErrorCallback 10570 .LVL702: 10571 .L645: 5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10572 .loc 1 5932 1 is_stmt 0 view .LVU3565 10573 00f8 10BD pop {r4, pc} 10574 .LVL703: 10575 .L658: 5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10576 .loc 1 5932 1 view .LVU3566 10577 00fa 00BF .align 2 10578 .L657: 10579 00fc 0000FFFF .word -65536 10580 0100 00000000 .word I2C_Slave_ISR_IT 10581 0104 00000000 .word I2C_DMAAbort 10582 .cfi_endproc 10583 .LFE202: 10585 .section .text.I2C_ITSlaveCplt,"ax",%progbits 10586 .align 1 10587 .syntax unified 10588 .thumb 10589 .thumb_func 10590 .fpu fpv5-d16 10592 I2C_ITSlaveCplt: 10593 .LVL704: 10594 .LFB200: 5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10595 .loc 1 5620 1 is_stmt 1 view -0 10596 .cfi_startproc 10597 @ args = 0, pretend = 0, frame = 0 10598 @ frame_needed = 0, uses_anonymous_args = 0 5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10599 .loc 1 5620 1 is_stmt 0 view .LVU3568 10600 0000 70B5 push {r4, r5, r6, lr} 10601 .LCFI120: 10602 .cfi_def_cfa_offset 16 10603 .cfi_offset 4, -16 10604 .cfi_offset 5, -12 10605 .cfi_offset 6, -8 ARM GAS /tmp/ccEimIdZ.s page 362 10606 .cfi_offset 14, -4 10607 0002 0446 mov r4, r0 10608 0004 0D46 mov r5, r1 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10609 .loc 1 5621 3 is_stmt 1 view .LVU3569 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10610 .loc 1 5621 26 is_stmt 0 view .LVU3570 10611 0006 0268 ldr r2, [r0] 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10612 .loc 1 5621 12 view .LVU3571 10613 0008 1668 ldr r6, [r2] 10614 .LVL705: 5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10615 .loc 1 5622 3 is_stmt 1 view .LVU3572 5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10616 .loc 1 5623 3 view .LVU3573 5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10617 .loc 1 5623 24 is_stmt 0 view .LVU3574 10618 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10619 000e DBB2 uxtb r3, r3 10620 .LVL706: 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10621 .loc 1 5626 3 is_stmt 1 view .LVU3575 10622 0010 2021 movs r1, #32 10623 .LVL707: 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10624 .loc 1 5626 3 is_stmt 0 view .LVU3576 10625 0012 D161 str r1, [r2, #28] 5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10626 .loc 1 5629 3 is_stmt 1 view .LVU3577 5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10627 .loc 1 5629 6 is_stmt 0 view .LVU3578 10628 0014 292B cmp r3, #41 10629 0016 18BF it ne 10630 0018 212B cmpne r3, #33 10631 001a 57D0 beq .L677 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10632 .loc 1 5634 8 is_stmt 1 view .LVU3579 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10633 .loc 1 5634 11 is_stmt 0 view .LVU3580 10634 001c 2A2B cmp r3, #42 10635 001e 18BF it ne 10636 0020 222B cmpne r3, #34 10637 0022 5AD0 beq .L678 10638 .LVL708: 10639 .L661: 5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10640 .loc 1 5642 3 is_stmt 1 view .LVU3581 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10641 .loc 1 5645 3 view .LVU3582 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10642 .loc 1 5645 7 is_stmt 0 view .LVU3583 10643 0024 2268 ldr r2, [r4] 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10644 .loc 1 5645 23 view .LVU3584 10645 0026 5368 ldr r3, [r2, #4] 10646 0028 43F40043 orr r3, r3, #32768 ARM GAS /tmp/ccEimIdZ.s page 363 10647 002c 5360 str r3, [r2, #4] 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10648 .loc 1 5648 3 is_stmt 1 view .LVU3585 10649 002e 2268 ldr r2, [r4] 10650 0030 5368 ldr r3, [r2, #4] 10651 0032 23F0FF73 bic r3, r3, #33423360 10652 0036 23F48B33 bic r3, r3, #71168 10653 003a 23F4FF73 bic r3, r3, #510 10654 003e 23F00103 bic r3, r3, #1 10655 0042 5360 str r3, [r2, #4] 5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10656 .loc 1 5651 3 view .LVU3586 10657 0044 2046 mov r0, r4 10658 0046 FFF7FEFF bl I2C_Flush_TXDR 10659 .LVL709: 5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10660 .loc 1 5654 3 view .LVU3587 5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10661 .loc 1 5654 6 is_stmt 0 view .LVU3588 10662 004a 16F4804F tst r6, #16384 10663 004e 00F08580 beq .L662 5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10664 .loc 1 5657 5 is_stmt 1 view .LVU3589 5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10665 .loc 1 5657 9 is_stmt 0 view .LVU3590 10666 0052 2268 ldr r2, [r4] 5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10667 .loc 1 5657 25 view .LVU3591 10668 0054 1368 ldr r3, [r2] 10669 0056 23F48043 bic r3, r3, #16384 10670 005a 1360 str r3, [r2] 5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10671 .loc 1 5659 5 is_stmt 1 view .LVU3592 5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10672 .loc 1 5659 13 is_stmt 0 view .LVU3593 10673 005c A36B ldr r3, [r4, #56] 5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10674 .loc 1 5659 8 view .LVU3594 10675 005e 002B cmp r3, #0 10676 0060 45D0 beq .L663 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10677 .loc 1 5661 7 is_stmt 1 view .LVU3595 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10678 .loc 1 5661 35 is_stmt 0 view .LVU3596 10679 0062 1B68 ldr r3, [r3] 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10680 .loc 1 5661 25 view .LVU3597 10681 0064 7449 ldr r1, .L682 10682 0066 754A ldr r2, .L682+4 10683 0068 9342 cmp r3, r2 10684 006a 18BF it ne 10685 006c 8B42 cmpne r3, r1 10686 006e 3BD0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10687 .loc 1 5661 35 discriminator 2 view .LVU3598 10688 0070 1832 adds r2, r2, #24 10689 0072 9342 cmp r3, r2 ARM GAS /tmp/ccEimIdZ.s page 364 10690 0074 38D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10691 .loc 1 5661 35 discriminator 4 view .LVU3599 10692 0076 1832 adds r2, r2, #24 10693 0078 9342 cmp r3, r2 10694 007a 35D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10695 .loc 1 5661 35 discriminator 6 view .LVU3600 10696 007c 1832 adds r2, r2, #24 10697 007e 9342 cmp r3, r2 10698 0080 32D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10699 .loc 1 5661 35 discriminator 8 view .LVU3601 10700 0082 1832 adds r2, r2, #24 10701 0084 9342 cmp r3, r2 10702 0086 2FD0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10703 .loc 1 5661 35 discriminator 10 view .LVU3602 10704 0088 1832 adds r2, r2, #24 10705 008a 9342 cmp r3, r2 10706 008c 2CD0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10707 .loc 1 5661 35 discriminator 12 view .LVU3603 10708 008e 1832 adds r2, r2, #24 10709 0090 9342 cmp r3, r2 10710 0092 29D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10711 .loc 1 5661 35 discriminator 14 view .LVU3604 10712 0094 02F55672 add r2, r2, #856 10713 0098 9342 cmp r3, r2 10714 009a 25D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10715 .loc 1 5661 35 discriminator 16 view .LVU3605 10716 009c 1832 adds r2, r2, #24 10717 009e 9342 cmp r3, r2 10718 00a0 22D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10719 .loc 1 5661 35 discriminator 18 view .LVU3606 10720 00a2 1832 adds r2, r2, #24 10721 00a4 9342 cmp r3, r2 10722 00a6 1FD0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10723 .loc 1 5661 35 discriminator 20 view .LVU3607 10724 00a8 1832 adds r2, r2, #24 10725 00aa 9342 cmp r3, r2 10726 00ac 1CD0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10727 .loc 1 5661 35 discriminator 22 view .LVU3608 10728 00ae 1832 adds r2, r2, #24 10729 00b0 9342 cmp r3, r2 10730 00b2 19D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10731 .loc 1 5661 35 discriminator 24 view .LVU3609 10732 00b4 1832 adds r2, r2, #24 10733 00b6 9342 cmp r3, r2 10734 00b8 16D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 365 10735 .loc 1 5661 35 discriminator 26 view .LVU3610 10736 00ba 1832 adds r2, r2, #24 10737 00bc 9342 cmp r3, r2 10738 00be 13D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10739 .loc 1 5661 35 discriminator 28 view .LVU3611 10740 00c0 1832 adds r2, r2, #24 10741 00c2 9342 cmp r3, r2 10742 00c4 10D0 beq .L664 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10743 .loc 1 5661 35 discriminator 30 view .LVU3612 10744 00c6 5B68 ldr r3, [r3, #4] 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10745 .loc 1 5661 25 discriminator 30 view .LVU3613 10746 00c8 9BB2 uxth r3, r3 10747 00ca 0FE0 b .L666 10748 .LVL710: 10749 .L677: 5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10750 .loc 1 5631 5 is_stmt 1 view .LVU3614 10751 00cc 48F20101 movw r1, #32769 10752 00d0 FFF7FEFF bl I2C_Disable_IRQ 10753 .LVL711: 5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10754 .loc 1 5632 5 view .LVU3615 5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10755 .loc 1 5632 25 is_stmt 0 view .LVU3616 10756 00d4 2123 movs r3, #33 10757 00d6 2363 str r3, [r4, #48] 10758 00d8 A4E7 b .L661 10759 .LVL712: 10760 .L678: 5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10761 .loc 1 5636 5 is_stmt 1 view .LVU3617 10762 00da 48F20201 movw r1, #32770 10763 00de FFF7FEFF bl I2C_Disable_IRQ 10764 .LVL713: 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10765 .loc 1 5637 5 view .LVU3618 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10766 .loc 1 5637 25 is_stmt 0 view .LVU3619 10767 00e2 2223 movs r3, #34 10768 00e4 2363 str r3, [r4, #48] 10769 00e6 9DE7 b .L661 10770 .L664: 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10771 .loc 1 5661 35 discriminator 29 view .LVU3620 10772 00e8 5B68 ldr r3, [r3, #4] 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10773 .loc 1 5661 25 discriminator 29 view .LVU3621 10774 00ea 9BB2 uxth r3, r3 10775 .L666: 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10776 .loc 1 5661 23 discriminator 32 view .LVU3622 10777 00ec 6385 strh r3, [r4, #42] @ movhi 10778 .L663: 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 366 10779 .loc 1 5677 3 is_stmt 1 view .LVU3623 5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10780 .loc 1 5680 3 view .LVU3624 5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10781 .loc 1 5680 6 is_stmt 0 view .LVU3625 10782 00ee 15F0040F tst r5, #4 10783 00f2 11D0 beq .L670 5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10784 .loc 1 5683 5 is_stmt 1 view .LVU3626 5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10785 .loc 1 5683 16 is_stmt 0 view .LVU3627 10786 00f4 25F00405 bic r5, r5, #4 10787 .LVL714: 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10788 .loc 1 5686 5 is_stmt 1 view .LVU3628 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10789 .loc 1 5686 36 is_stmt 0 view .LVU3629 10790 00f8 2368 ldr r3, [r4] 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10791 .loc 1 5686 46 view .LVU3630 10792 00fa 5A6A ldr r2, [r3, #36] 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10793 .loc 1 5686 10 view .LVU3631 10794 00fc 636A ldr r3, [r4, #36] 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10795 .loc 1 5686 21 view .LVU3632 10796 00fe 1A70 strb r2, [r3] 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10797 .loc 1 5689 5 is_stmt 1 view .LVU3633 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10798 .loc 1 5689 9 is_stmt 0 view .LVU3634 10799 0100 636A ldr r3, [r4, #36] 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10800 .loc 1 5689 19 view .LVU3635 10801 0102 0133 adds r3, r3, #1 10802 0104 6362 str r3, [r4, #36] 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10803 .loc 1 5691 5 is_stmt 1 view .LVU3636 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10804 .loc 1 5691 14 is_stmt 0 view .LVU3637 10805 0106 238D ldrh r3, [r4, #40] 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10806 .loc 1 5691 8 view .LVU3638 10807 0108 33B1 cbz r3, .L670 5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10808 .loc 1 5693 7 is_stmt 1 view .LVU3639 5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10809 .loc 1 5693 21 is_stmt 0 view .LVU3640 10810 010a 013B subs r3, r3, #1 10811 010c 2385 strh r3, [r4, #40] @ movhi 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10812 .loc 1 5694 7 is_stmt 1 view .LVU3641 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10813 .loc 1 5694 11 is_stmt 0 view .LVU3642 10814 010e 638D ldrh r3, [r4, #42] 10815 0110 9BB2 uxth r3, r3 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 367 10816 .loc 1 5694 22 view .LVU3643 10817 0112 013B subs r3, r3, #1 10818 0114 9BB2 uxth r3, r3 10819 0116 6385 strh r3, [r4, #42] @ movhi 10820 .L670: 5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10821 .loc 1 5699 3 is_stmt 1 view .LVU3644 5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10822 .loc 1 5699 11 is_stmt 0 view .LVU3645 10823 0118 638D ldrh r3, [r4, #42] 10824 011a 9BB2 uxth r3, r3 5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10825 .loc 1 5699 6 view .LVU3646 10826 011c 1BB1 cbz r3, .L671 5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10827 .loc 1 5702 5 is_stmt 1 view .LVU3647 5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10828 .loc 1 5702 21 is_stmt 0 view .LVU3648 10829 011e 636C ldr r3, [r4, #68] 10830 0120 43F00403 orr r3, r3, #4 10831 0124 6364 str r3, [r4, #68] 10832 .L671: 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10833 .loc 1 5705 3 is_stmt 1 view .LVU3649 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10834 .loc 1 5705 14 is_stmt 0 view .LVU3650 10835 0126 0023 movs r3, #0 10836 0128 84F84230 strb r3, [r4, #66] 5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10837 .loc 1 5706 3 is_stmt 1 view .LVU3651 5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10838 .loc 1 5706 17 is_stmt 0 view .LVU3652 10839 012c 6363 str r3, [r4, #52] 5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10840 .loc 1 5708 3 is_stmt 1 view .LVU3653 5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10841 .loc 1 5708 11 is_stmt 0 view .LVU3654 10842 012e 636C ldr r3, [r4, #68] 5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10843 .loc 1 5708 6 view .LVU3655 10844 0130 002B cmp r3, #0 10845 0132 57D1 bne .L679 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10846 .loc 1 5720 8 is_stmt 1 view .LVU3656 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10847 .loc 1 5720 16 is_stmt 0 view .LVU3657 10848 0134 E36A ldr r3, [r4, #44] 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10849 .loc 1 5720 11 view .LVU3658 10850 0136 13F5803F cmn r3, #65536 10851 013a 61D1 bne .L680 5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10852 .loc 1 5740 8 is_stmt 1 view .LVU3659 5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10853 .loc 1 5740 16 is_stmt 0 view .LVU3660 10854 013c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10855 0140 DBB2 uxtb r3, r3 ARM GAS /tmp/ccEimIdZ.s page 368 5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10856 .loc 1 5740 11 view .LVU3661 10857 0142 222B cmp r3, #34 10858 0144 6CD0 beq .L681 5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10859 .loc 1 5757 5 is_stmt 1 view .LVU3662 5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10860 .loc 1 5757 17 is_stmt 0 view .LVU3663 10861 0146 2023 movs r3, #32 10862 0148 84F84130 strb r3, [r4, #65] 5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10863 .loc 1 5758 5 is_stmt 1 view .LVU3664 5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10864 .loc 1 5758 25 is_stmt 0 view .LVU3665 10865 014c 0023 movs r3, #0 10866 014e 2363 str r3, [r4, #48] 5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10867 .loc 1 5761 5 is_stmt 1 view .LVU3666 5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10868 .loc 1 5761 5 view .LVU3667 10869 0150 84F84030 strb r3, [r4, #64] 5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10870 .loc 1 5761 5 view .LVU3668 5767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10871 .loc 1 5767 5 view .LVU3669 10872 0154 2046 mov r0, r4 10873 0156 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10874 .LVL715: 5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10875 .loc 1 5770 1 is_stmt 0 view .LVU3670 10876 015a 60E0 b .L659 10877 .LVL716: 10878 .L662: 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10879 .loc 1 5664 8 is_stmt 1 view .LVU3671 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10880 .loc 1 5664 11 is_stmt 0 view .LVU3672 10881 015c 16F4004F tst r6, #32768 10882 0160 C5D0 beq .L663 5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10883 .loc 1 5667 5 is_stmt 1 view .LVU3673 5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10884 .loc 1 5667 9 is_stmt 0 view .LVU3674 10885 0162 2268 ldr r2, [r4] 5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10886 .loc 1 5667 25 view .LVU3675 10887 0164 1368 ldr r3, [r2] 10888 0166 23F40043 bic r3, r3, #32768 10889 016a 1360 str r3, [r2] 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10890 .loc 1 5669 5 is_stmt 1 view .LVU3676 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10891 .loc 1 5669 13 is_stmt 0 view .LVU3677 10892 016c E36B ldr r3, [r4, #60] 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10893 .loc 1 5669 8 view .LVU3678 10894 016e 002B cmp r3, #0 ARM GAS /tmp/ccEimIdZ.s page 369 10895 0170 BDD0 beq .L663 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10896 .loc 1 5671 7 is_stmt 1 view .LVU3679 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10897 .loc 1 5671 35 is_stmt 0 view .LVU3680 10898 0172 1B68 ldr r3, [r3] 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10899 .loc 1 5671 25 view .LVU3681 10900 0174 3049 ldr r1, .L682 10901 0176 314A ldr r2, .L682+4 10902 0178 9342 cmp r3, r2 10903 017a 18BF it ne 10904 017c 8B42 cmpne r3, r1 10905 017e 2DD0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10906 .loc 1 5671 35 discriminator 2 view .LVU3682 10907 0180 1832 adds r2, r2, #24 10908 0182 9342 cmp r3, r2 10909 0184 2AD0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10910 .loc 1 5671 35 discriminator 4 view .LVU3683 10911 0186 1832 adds r2, r2, #24 10912 0188 9342 cmp r3, r2 10913 018a 27D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10914 .loc 1 5671 35 discriminator 6 view .LVU3684 10915 018c 1832 adds r2, r2, #24 10916 018e 9342 cmp r3, r2 10917 0190 24D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10918 .loc 1 5671 35 discriminator 8 view .LVU3685 10919 0192 1832 adds r2, r2, #24 10920 0194 9342 cmp r3, r2 10921 0196 21D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10922 .loc 1 5671 35 discriminator 10 view .LVU3686 10923 0198 1832 adds r2, r2, #24 10924 019a 9342 cmp r3, r2 10925 019c 1ED0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10926 .loc 1 5671 35 discriminator 12 view .LVU3687 10927 019e 1832 adds r2, r2, #24 10928 01a0 9342 cmp r3, r2 10929 01a2 1BD0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10930 .loc 1 5671 35 discriminator 14 view .LVU3688 10931 01a4 02F55672 add r2, r2, #856 10932 01a8 9342 cmp r3, r2 10933 01aa 17D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10934 .loc 1 5671 35 discriminator 16 view .LVU3689 10935 01ac 1832 adds r2, r2, #24 10936 01ae 9342 cmp r3, r2 10937 01b0 14D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10938 .loc 1 5671 35 discriminator 18 view .LVU3690 10939 01b2 1832 adds r2, r2, #24 ARM GAS /tmp/ccEimIdZ.s page 370 10940 01b4 9342 cmp r3, r2 10941 01b6 11D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10942 .loc 1 5671 35 discriminator 20 view .LVU3691 10943 01b8 1832 adds r2, r2, #24 10944 01ba 9342 cmp r3, r2 10945 01bc 0ED0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10946 .loc 1 5671 35 discriminator 22 view .LVU3692 10947 01be 1832 adds r2, r2, #24 10948 01c0 9342 cmp r3, r2 10949 01c2 0BD0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10950 .loc 1 5671 35 discriminator 24 view .LVU3693 10951 01c4 1832 adds r2, r2, #24 10952 01c6 9342 cmp r3, r2 10953 01c8 08D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10954 .loc 1 5671 35 discriminator 26 view .LVU3694 10955 01ca 1832 adds r2, r2, #24 10956 01cc 9342 cmp r3, r2 10957 01ce 05D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10958 .loc 1 5671 35 discriminator 28 view .LVU3695 10959 01d0 1832 adds r2, r2, #24 10960 01d2 9342 cmp r3, r2 10961 01d4 02D0 beq .L667 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10962 .loc 1 5671 35 discriminator 30 view .LVU3696 10963 01d6 5B68 ldr r3, [r3, #4] 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10964 .loc 1 5671 25 discriminator 30 view .LVU3697 10965 01d8 9BB2 uxth r3, r3 10966 01da 01E0 b .L669 10967 .L667: 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10968 .loc 1 5671 35 discriminator 29 view .LVU3698 10969 01dc 5B68 ldr r3, [r3, #4] 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10970 .loc 1 5671 25 discriminator 29 view .LVU3699 10971 01de 9BB2 uxth r3, r3 10972 .L669: 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10973 .loc 1 5671 23 discriminator 32 view .LVU3700 10974 01e0 6385 strh r3, [r4, #42] @ movhi 10975 01e2 84E7 b .L663 10976 .LVL717: 10977 .L679: 5711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10978 .loc 1 5711 5 is_stmt 1 view .LVU3701 10979 01e4 616C ldr r1, [r4, #68] 10980 01e6 2046 mov r0, r4 10981 01e8 FFF7FEFF bl I2C_ITError 10982 .LVL718: 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10983 .loc 1 5714 5 view .LVU3702 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 371 10984 .loc 1 5714 13 is_stmt 0 view .LVU3703 10985 01ec 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10986 01f0 DBB2 uxtb r3, r3 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10987 .loc 1 5714 8 view .LVU3704 10988 01f2 282B cmp r3, #40 10989 01f4 13D1 bne .L659 5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10990 .loc 1 5717 7 is_stmt 1 view .LVU3705 10991 01f6 2946 mov r1, r5 10992 01f8 2046 mov r0, r4 10993 01fa FFF7FEFF bl I2C_ITListenCplt 10994 .LVL719: 10995 01fe 0EE0 b .L659 10996 .L680: 5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10997 .loc 1 5723 5 view .LVU3706 10998 0200 2046 mov r0, r4 10999 0202 FFF7FEFF bl I2C_ITSlaveSeqCplt 11000 .LVL720: 5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11001 .loc 1 5725 5 view .LVU3707 5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11002 .loc 1 5725 23 is_stmt 0 view .LVU3708 11003 0206 0E4B ldr r3, .L682+8 11004 0208 E362 str r3, [r4, #44] 5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11005 .loc 1 5726 5 is_stmt 1 view .LVU3709 5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11006 .loc 1 5726 17 is_stmt 0 view .LVU3710 11007 020a 2023 movs r3, #32 11008 020c 84F84130 strb r3, [r4, #65] 5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11009 .loc 1 5727 5 is_stmt 1 view .LVU3711 5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11010 .loc 1 5727 25 is_stmt 0 view .LVU3712 11011 0210 0023 movs r3, #0 11012 0212 2363 str r3, [r4, #48] 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11013 .loc 1 5730 5 is_stmt 1 view .LVU3713 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11014 .loc 1 5730 5 view .LVU3714 11015 0214 84F84030 strb r3, [r4, #64] 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11016 .loc 1 5730 5 view .LVU3715 5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11017 .loc 1 5736 5 view .LVU3716 11018 0218 2046 mov r0, r4 11019 021a FFF7FEFF bl HAL_I2C_ListenCpltCallback 11020 .LVL721: 11021 .L659: 5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11022 .loc 1 5770 1 is_stmt 0 view .LVU3717 11023 021e 70BD pop {r4, r5, r6, pc} 11024 .LVL722: 11025 .L681: 5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; ARM GAS /tmp/ccEimIdZ.s page 372 11026 .loc 1 5742 5 is_stmt 1 view .LVU3718 5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11027 .loc 1 5742 17 is_stmt 0 view .LVU3719 11028 0220 2023 movs r3, #32 11029 0222 84F84130 strb r3, [r4, #65] 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11030 .loc 1 5743 5 is_stmt 1 view .LVU3720 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11031 .loc 1 5743 25 is_stmt 0 view .LVU3721 11032 0226 0023 movs r3, #0 11033 0228 2363 str r3, [r4, #48] 5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11034 .loc 1 5746 5 is_stmt 1 view .LVU3722 5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11035 .loc 1 5746 5 view .LVU3723 11036 022a 84F84030 strb r3, [r4, #64] 5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11037 .loc 1 5746 5 view .LVU3724 5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11038 .loc 1 5752 5 view .LVU3725 11039 022e 2046 mov r0, r4 11040 0230 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11041 .LVL723: 11042 0234 F3E7 b .L659 11043 .L683: 11044 0236 00BF .align 2 11045 .L682: 11046 0238 10000240 .word 1073872912 11047 023c 28000240 .word 1073872936 11048 0240 0000FFFF .word -65536 11049 .cfi_endproc 11050 .LFE200: 11052 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11053 .align 1 11054 .syntax unified 11055 .thumb 11056 .thumb_func 11057 .fpu fpv5-d16 11059 I2C_Slave_ISR_IT: 11060 .LVL724: 11061 .LFB191: 4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11062 .loc 1 4748 1 view -0 11063 .cfi_startproc 11064 @ args = 0, pretend = 0, frame = 0 11065 @ frame_needed = 0, uses_anonymous_args = 0 4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11066 .loc 1 4748 1 is_stmt 0 view .LVU3727 11067 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11068 .LCFI121: 11069 .cfi_def_cfa_offset 24 11070 .cfi_offset 3, -24 11071 .cfi_offset 4, -20 11072 .cfi_offset 5, -16 11073 .cfi_offset 6, -12 11074 .cfi_offset 7, -8 11075 .cfi_offset 14, -4 ARM GAS /tmp/ccEimIdZ.s page 373 4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11076 .loc 1 4749 3 is_stmt 1 view .LVU3728 4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11077 .loc 1 4749 12 is_stmt 0 view .LVU3729 11078 0002 C76A ldr r7, [r0, #44] 11079 .LVL725: 4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11080 .loc 1 4750 3 is_stmt 1 view .LVU3730 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11081 .loc 1 4753 3 view .LVU3731 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11082 .loc 1 4753 3 view .LVU3732 11083 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 11084 0008 012B cmp r3, #1 11085 000a 00F09F80 beq .L696 11086 000e 0446 mov r4, r0 11087 0010 0D46 mov r5, r1 11088 0012 1646 mov r6, r2 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11089 .loc 1 4753 3 discriminator 2 view .LVU3733 11090 0014 0123 movs r3, #1 11091 0016 80F84030 strb r3, [r0, #64] 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11092 .loc 1 4753 3 discriminator 2 view .LVU3734 4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11093 .loc 1 4756 3 discriminator 2 view .LVU3735 4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11094 .loc 1 4756 6 is_stmt 0 discriminator 2 view .LVU3736 11095 001a 11F0200F tst r1, #32 11096 001e 02D0 beq .L686 4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11097 .loc 1 4756 61 discriminator 1 view .LVU3737 11098 0020 12F0200F tst r2, #32 11099 0024 19D1 bne .L698 11100 .LVL726: 11101 .L686: 4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11102 .loc 1 4762 3 is_stmt 1 view .LVU3738 4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11103 .loc 1 4762 6 is_stmt 0 view .LVU3739 11104 0026 15F0100F tst r5, #16 11105 002a 3FD0 beq .L687 4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11106 .loc 1 4762 58 discriminator 1 view .LVU3740 11107 002c 16F0100F tst r6, #16 11108 0030 3CD0 beq .L687 4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11109 .loc 1 4768 5 is_stmt 1 view .LVU3741 4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11110 .loc 1 4768 13 is_stmt 0 view .LVU3742 11111 0032 638D ldrh r3, [r4, #42] 11112 0034 9BB2 uxth r3, r3 4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11113 .loc 1 4768 8 view .LVU3743 11114 0036 43BB cbnz r3, .L688 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11115 .loc 1 4770 7 is_stmt 1 view .LVU3744 ARM GAS /tmp/ccEimIdZ.s page 374 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11116 .loc 1 4770 16 is_stmt 0 view .LVU3745 11117 0038 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11118 003c DBB2 uxtb r3, r3 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11119 .loc 1 4770 10 view .LVU3746 11120 003e 282B cmp r3, #40 11121 0040 0ED0 beq .L699 11122 .L689: 4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11123 .loc 1 4775 12 is_stmt 1 view .LVU3747 4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11124 .loc 1 4775 21 is_stmt 0 view .LVU3748 11125 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11126 0046 DBB2 uxtb r3, r3 4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11127 .loc 1 4775 15 view .LVU3749 11128 0048 292B cmp r3, #41 11129 004a 11D0 beq .L700 11130 .L691: 4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11131 .loc 1 4790 9 is_stmt 1 view .LVU3750 11132 004c 2368 ldr r3, [r4] 11133 004e 1022 movs r2, #16 11134 0050 DA61 str r2, [r3, #28] 11135 .L690: 4864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11136 .loc 1 4864 3 view .LVU3751 4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11137 .loc 1 4867 3 view .LVU3752 4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11138 .loc 1 4867 3 view .LVU3753 11139 0052 0020 movs r0, #0 11140 0054 84F84000 strb r0, [r4, #64] 4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11141 .loc 1 4867 3 view .LVU3754 4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11142 .loc 1 4869 3 view .LVU3755 11143 .LVL727: 11144 .L685: 4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11145 .loc 1 4870 1 is_stmt 0 view .LVU3756 11146 0058 F8BD pop {r3, r4, r5, r6, r7, pc} 11147 .LVL728: 11148 .L698: 4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11149 .loc 1 4759 5 is_stmt 1 view .LVU3757 11150 005a FFF7FEFF bl I2C_ITSlaveCplt 11151 .LVL729: 4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11152 .loc 1 4759 5 is_stmt 0 view .LVU3758 11153 005e E2E7 b .L686 11154 .L699: 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11155 .loc 1 4770 49 discriminator 1 view .LVU3759 11156 0060 B7F1007F cmp r7, #33554432 11157 0064 EDD1 bne .L689 ARM GAS /tmp/ccEimIdZ.s page 375 4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11158 .loc 1 4773 9 is_stmt 1 view .LVU3760 11159 0066 2946 mov r1, r5 11160 0068 2046 mov r0, r4 11161 006a FFF7FEFF bl I2C_ITListenCplt 11162 .LVL730: 11163 006e F0E7 b .L690 11164 .L700: 4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11165 .loc 1 4775 62 is_stmt 0 discriminator 1 view .LVU3761 11166 0070 17F5803F cmn r7, #65536 11167 0074 EAD0 beq .L691 4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11168 .loc 1 4778 9 is_stmt 1 view .LVU3762 11169 0076 2368 ldr r3, [r4] 11170 0078 1022 movs r2, #16 11171 007a DA61 str r2, [r3, #28] 4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11172 .loc 1 4781 9 view .LVU3763 11173 007c 2046 mov r0, r4 11174 007e FFF7FEFF bl I2C_Flush_TXDR 11175 .LVL731: 4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11176 .loc 1 4785 9 view .LVU3764 11177 0082 2046 mov r0, r4 11178 0084 FFF7FEFF bl I2C_ITSlaveSeqCplt 11179 .LVL732: 11180 0088 E3E7 b .L690 11181 .L688: 4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11182 .loc 1 4797 7 view .LVU3765 11183 008a 2368 ldr r3, [r4] 11184 008c 1022 movs r2, #16 11185 008e DA61 str r2, [r3, #28] 4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11186 .loc 1 4800 7 view .LVU3766 4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11187 .loc 1 4800 23 is_stmt 0 view .LVU3767 11188 0090 636C ldr r3, [r4, #68] 11189 0092 43F00403 orr r3, r3, #4 11190 0096 6364 str r3, [r4, #68] 4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11191 .loc 1 4802 7 is_stmt 1 view .LVU3768 4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11192 .loc 1 4802 10 is_stmt 0 view .LVU3769 11193 0098 B7F1807F cmp r7, #16777216 11194 009c 18BF it ne 11195 009e 002F cmpne r7, #0 11196 00a0 D7D1 bne .L690 4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11197 .loc 1 4805 9 is_stmt 1 view .LVU3770 11198 00a2 616C ldr r1, [r4, #68] 11199 00a4 2046 mov r0, r4 11200 00a6 FFF7FEFF bl I2C_ITError 11201 .LVL733: 11202 00aa D2E7 b .L690 11203 .L687: ARM GAS /tmp/ccEimIdZ.s page 376 4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11204 .loc 1 4809 8 view .LVU3771 4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11205 .loc 1 4809 11 is_stmt 0 view .LVU3772 11206 00ac 15F0040F tst r5, #4 11207 00b0 1FD0 beq .L692 4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11208 .loc 1 4809 65 discriminator 1 view .LVU3773 11209 00b2 16F0040F tst r6, #4 11210 00b6 1CD0 beq .L692 4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11211 .loc 1 4811 5 is_stmt 1 view .LVU3774 4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11212 .loc 1 4811 13 is_stmt 0 view .LVU3775 11213 00b8 638D ldrh r3, [r4, #42] 11214 00ba 9BB2 uxth r3, r3 4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11215 .loc 1 4811 8 view .LVU3776 11216 00bc 73B1 cbz r3, .L693 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11217 .loc 1 4814 7 is_stmt 1 view .LVU3777 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11218 .loc 1 4814 38 is_stmt 0 view .LVU3778 11219 00be 2368 ldr r3, [r4] 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11220 .loc 1 4814 48 view .LVU3779 11221 00c0 5A6A ldr r2, [r3, #36] 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11222 .loc 1 4814 12 view .LVU3780 11223 00c2 636A ldr r3, [r4, #36] 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11224 .loc 1 4814 23 view .LVU3781 11225 00c4 1A70 strb r2, [r3] 4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11226 .loc 1 4817 7 is_stmt 1 view .LVU3782 4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11227 .loc 1 4817 11 is_stmt 0 view .LVU3783 11228 00c6 636A ldr r3, [r4, #36] 4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11229 .loc 1 4817 21 view .LVU3784 11230 00c8 0133 adds r3, r3, #1 11231 00ca 6362 str r3, [r4, #36] 4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11232 .loc 1 4819 7 is_stmt 1 view .LVU3785 4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11233 .loc 1 4819 11 is_stmt 0 view .LVU3786 11234 00cc 238D ldrh r3, [r4, #40] 4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11235 .loc 1 4819 21 view .LVU3787 11236 00ce 013B subs r3, r3, #1 11237 00d0 2385 strh r3, [r4, #40] @ movhi 4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11238 .loc 1 4820 7 is_stmt 1 view .LVU3788 4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11239 .loc 1 4820 11 is_stmt 0 view .LVU3789 11240 00d2 638D ldrh r3, [r4, #42] 11241 00d4 9BB2 uxth r3, r3 ARM GAS /tmp/ccEimIdZ.s page 377 4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11242 .loc 1 4820 22 view .LVU3790 11243 00d6 013B subs r3, r3, #1 11244 00d8 9BB2 uxth r3, r3 11245 00da 6385 strh r3, [r4, #42] @ movhi 11246 .L693: 4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11247 .loc 1 4823 5 is_stmt 1 view .LVU3791 4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11248 .loc 1 4823 14 is_stmt 0 view .LVU3792 11249 00dc 638D ldrh r3, [r4, #42] 11250 00de 9BB2 uxth r3, r3 4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11251 .loc 1 4823 8 view .LVU3793 11252 00e0 002B cmp r3, #0 11253 00e2 B6D1 bne .L690 4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11254 .loc 1 4823 33 discriminator 1 view .LVU3794 11255 00e4 17F5803F cmn r7, #65536 11256 00e8 B3D0 beq .L690 4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11257 .loc 1 4827 7 is_stmt 1 view .LVU3795 11258 00ea 2046 mov r0, r4 11259 00ec FFF7FEFF bl I2C_ITSlaveSeqCplt 11260 .LVL734: 11261 00f0 AFE7 b .L690 11262 .L692: 4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11263 .loc 1 4830 8 view .LVU3796 4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11264 .loc 1 4830 11 is_stmt 0 view .LVU3797 11265 00f2 15F0080F tst r5, #8 11266 00f6 02D0 beq .L694 4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11267 .loc 1 4830 65 discriminator 1 view .LVU3798 11268 00f8 16F0080F tst r6, #8 11269 00fc 18D1 bne .L701 11270 .L694: 4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11271 .loc 1 4834 8 is_stmt 1 view .LVU3799 4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11272 .loc 1 4834 11 is_stmt 0 view .LVU3800 11273 00fe 15F0020F tst r5, #2 11274 0102 A6D0 beq .L690 4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11275 .loc 1 4834 65 discriminator 1 view .LVU3801 11276 0104 16F0020F tst r6, #2 11277 0108 A3D0 beq .L690 4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11278 .loc 1 4840 5 is_stmt 1 view .LVU3802 4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11279 .loc 1 4840 13 is_stmt 0 view .LVU3803 11280 010a 638D ldrh r3, [r4, #42] 11281 010c 9BB2 uxth r3, r3 4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11282 .loc 1 4840 8 view .LVU3804 11283 010e A3B1 cbz r3, .L695 ARM GAS /tmp/ccEimIdZ.s page 378 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11284 .loc 1 4843 7 is_stmt 1 view .LVU3805 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11285 .loc 1 4843 35 is_stmt 0 view .LVU3806 11286 0110 626A ldr r2, [r4, #36] 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11287 .loc 1 4843 11 view .LVU3807 11288 0112 2368 ldr r3, [r4] 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11289 .loc 1 4843 30 view .LVU3808 11290 0114 1278 ldrb r2, [r2] @ zero_extendqisi2 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11291 .loc 1 4843 28 view .LVU3809 11292 0116 9A62 str r2, [r3, #40] 4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11293 .loc 1 4846 7 is_stmt 1 view .LVU3810 4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11294 .loc 1 4846 11 is_stmt 0 view .LVU3811 11295 0118 636A ldr r3, [r4, #36] 4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11296 .loc 1 4846 21 view .LVU3812 11297 011a 0133 adds r3, r3, #1 11298 011c 6362 str r3, [r4, #36] 4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 11299 .loc 1 4848 7 is_stmt 1 view .LVU3813 4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 11300 .loc 1 4848 11 is_stmt 0 view .LVU3814 11301 011e 638D ldrh r3, [r4, #42] 11302 0120 9BB2 uxth r3, r3 4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 11303 .loc 1 4848 22 view .LVU3815 11304 0122 013B subs r3, r3, #1 11305 0124 9BB2 uxth r3, r3 11306 0126 6385 strh r3, [r4, #42] @ movhi 4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11307 .loc 1 4849 7 is_stmt 1 view .LVU3816 4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11308 .loc 1 4849 11 is_stmt 0 view .LVU3817 11309 0128 238D ldrh r3, [r4, #40] 4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11310 .loc 1 4849 21 view .LVU3818 11311 012a 013B subs r3, r3, #1 11312 012c 2385 strh r3, [r4, #40] @ movhi 11313 012e 90E7 b .L690 11314 .L701: 4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11315 .loc 1 4832 5 is_stmt 1 view .LVU3819 11316 0130 2946 mov r1, r5 11317 0132 2046 mov r0, r4 11318 0134 FFF7FEFF bl I2C_ITAddrCplt 11319 .LVL735: 11320 0138 8BE7 b .L690 11321 .L695: 4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11322 .loc 1 4853 7 view .LVU3820 4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11323 .loc 1 4853 10 is_stmt 0 view .LVU3821 ARM GAS /tmp/ccEimIdZ.s page 379 11324 013a 002F cmp r7, #0 11325 013c 18BF it ne 11326 013e B7F1807F cmpne r7, #16777216 11327 0142 86D1 bne .L690 4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11328 .loc 1 4857 9 is_stmt 1 view .LVU3822 11329 0144 2046 mov r0, r4 11330 0146 FFF7FEFF bl I2C_ITSlaveSeqCplt 11331 .LVL736: 11332 014a 82E7 b .L690 11333 .LVL737: 11334 .L696: 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11335 .loc 1 4753 3 is_stmt 0 view .LVU3823 11336 014c 0220 movs r0, #2 11337 .LVL738: 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11338 .loc 1 4753 3 view .LVU3824 11339 014e 83E7 b .L685 11340 .cfi_endproc 11341 .LFE191: 11343 .section .text.I2C_ITMasterCplt,"ax",%progbits 11344 .align 1 11345 .syntax unified 11346 .thumb 11347 .thumb_func 11348 .fpu fpv5-d16 11350 I2C_ITMasterCplt: 11351 .LVL739: 11352 .LFB199: 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 11353 .loc 1 5477 1 is_stmt 1 view -0 11354 .cfi_startproc 11355 @ args = 0, pretend = 0, frame = 8 11356 @ frame_needed = 0, uses_anonymous_args = 0 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 11357 .loc 1 5477 1 is_stmt 0 view .LVU3826 11358 0000 30B5 push {r4, r5, lr} 11359 .LCFI122: 11360 .cfi_def_cfa_offset 12 11361 .cfi_offset 4, -12 11362 .cfi_offset 5, -8 11363 .cfi_offset 14, -4 11364 0002 83B0 sub sp, sp, #12 11365 .LCFI123: 11366 .cfi_def_cfa_offset 24 11367 0004 0446 mov r4, r0 11368 0006 0D46 mov r5, r1 5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11369 .loc 1 5478 3 is_stmt 1 view .LVU3827 5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg; 11370 .loc 1 5479 3 view .LVU3828 11371 .LVL740: 5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11372 .loc 1 5480 3 view .LVU3829 5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11373 .loc 1 5483 3 view .LVU3830 ARM GAS /tmp/ccEimIdZ.s page 380 11374 0008 0368 ldr r3, [r0] 11375 000a 2022 movs r2, #32 11376 000c DA61 str r2, [r3, #28] 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11377 .loc 1 5486 3 view .LVU3831 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11378 .loc 1 5486 11 is_stmt 0 view .LVU3832 11379 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11380 0012 DBB2 uxtb r3, r3 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11381 .loc 1 5486 6 view .LVU3833 11382 0014 212B cmp r3, #33 11383 0016 33D0 beq .L714 5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11384 .loc 1 5491 8 is_stmt 1 view .LVU3834 5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11385 .loc 1 5491 16 is_stmt 0 view .LVU3835 11386 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11387 001c DBB2 uxtb r3, r3 5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11388 .loc 1 5491 11 view .LVU3836 11389 001e 222B cmp r3, #34 11390 0020 34D0 beq .L715 11391 .LVL741: 11392 .L704: 5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11393 .loc 1 5499 3 is_stmt 1 view .LVU3837 5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11394 .loc 1 5502 3 view .LVU3838 11395 0022 2268 ldr r2, [r4] 11396 0024 5368 ldr r3, [r2, #4] 11397 0026 23F0FF73 bic r3, r3, #33423360 11398 002a 23F48B33 bic r3, r3, #71168 11399 002e 23F4FF73 bic r3, r3, #510 11400 0032 23F00103 bic r3, r3, #1 11401 0036 5360 str r3, [r2, #4] 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11402 .loc 1 5505 3 view .LVU3839 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11403 .loc 1 5505 23 is_stmt 0 view .LVU3840 11404 0038 0023 movs r3, #0 11405 003a 6363 str r3, [r4, #52] 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11406 .loc 1 5506 3 is_stmt 1 view .LVU3841 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11407 .loc 1 5506 23 is_stmt 0 view .LVU3842 11408 003c A3F58033 sub r3, r3, #65536 11409 0040 E362 str r3, [r4, #44] 5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11410 .loc 1 5508 3 is_stmt 1 view .LVU3843 5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11411 .loc 1 5508 6 is_stmt 0 view .LVU3844 11412 0042 15F0100F tst r5, #16 11413 0046 06D0 beq .L705 5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11414 .loc 1 5511 5 is_stmt 1 view .LVU3845 11415 0048 2368 ldr r3, [r4] ARM GAS /tmp/ccEimIdZ.s page 381 11416 004a 1022 movs r2, #16 11417 004c DA61 str r2, [r3, #28] 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11418 .loc 1 5514 5 view .LVU3846 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11419 .loc 1 5514 21 is_stmt 0 view .LVU3847 11420 004e 636C ldr r3, [r4, #68] 11421 0050 43F00403 orr r3, r3, #4 11422 0054 6364 str r3, [r4, #68] 11423 .L705: 5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11424 .loc 1 5518 3 is_stmt 1 view .LVU3848 5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11425 .loc 1 5518 12 is_stmt 0 view .LVU3849 11426 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11427 005a DBB2 uxtb r3, r3 5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11428 .loc 1 5518 6 view .LVU3850 11429 005c 602B cmp r3, #96 11430 005e 1BD0 beq .L716 11431 .L706: 5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11432 .loc 1 5526 3 is_stmt 1 view .LVU3851 11433 0060 2046 mov r0, r4 11434 0062 FFF7FEFF bl I2C_Flush_TXDR 11435 .LVL742: 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11436 .loc 1 5529 3 view .LVU3852 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11437 .loc 1 5529 12 is_stmt 0 view .LVU3853 11438 0066 626C ldr r2, [r4, #68] 11439 .LVL743: 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11440 .loc 1 5532 3 is_stmt 1 view .LVU3854 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11441 .loc 1 5532 12 is_stmt 0 view .LVU3855 11442 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11443 006c DBB2 uxtb r3, r3 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11444 .loc 1 5532 6 view .LVU3856 11445 006e 602B cmp r3, #96 11446 0070 00D0 beq .L707 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11447 .loc 1 5532 44 discriminator 1 view .LVU3857 11448 0072 D2B1 cbz r2, .L708 11449 .L707: 5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11450 .loc 1 5535 5 is_stmt 1 view .LVU3858 11451 0074 616C ldr r1, [r4, #68] 11452 0076 2046 mov r0, r4 11453 0078 FFF7FEFF bl I2C_ITError 11454 .LVL744: 11455 .L702: 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11456 .loc 1 5611 1 is_stmt 0 view .LVU3859 11457 007c 03B0 add sp, sp, #12 11458 .LCFI124: ARM GAS /tmp/ccEimIdZ.s page 382 11459 .cfi_remember_state 11460 .cfi_def_cfa_offset 12 11461 @ sp needed 11462 007e 30BD pop {r4, r5, pc} 11463 .LVL745: 11464 .L714: 11465 .LCFI125: 11466 .cfi_restore_state 5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 11467 .loc 1 5488 5 is_stmt 1 view .LVU3860 11468 0080 0121 movs r1, #1 11469 .LVL746: 5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 11470 .loc 1 5488 5 is_stmt 0 view .LVU3861 11471 0082 FFF7FEFF bl I2C_Disable_IRQ 11472 .LVL747: 5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11473 .loc 1 5489 5 is_stmt 1 view .LVU3862 5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11474 .loc 1 5489 25 is_stmt 0 view .LVU3863 11475 0086 1123 movs r3, #17 11476 0088 2363 str r3, [r4, #48] 11477 008a CAE7 b .L704 11478 .LVL748: 11479 .L715: 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 11480 .loc 1 5493 5 is_stmt 1 view .LVU3864 11481 008c 0221 movs r1, #2 11482 .LVL749: 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 11483 .loc 1 5493 5 is_stmt 0 view .LVU3865 11484 008e FFF7FEFF bl I2C_Disable_IRQ 11485 .LVL750: 5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11486 .loc 1 5494 5 is_stmt 1 view .LVU3866 5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11487 .loc 1 5494 25 is_stmt 0 view .LVU3867 11488 0092 1223 movs r3, #18 11489 0094 2363 str r3, [r4, #48] 11490 0096 C4E7 b .L704 11491 .L716: 5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11492 .loc 1 5518 44 discriminator 1 view .LVU3868 11493 0098 15F0040F tst r5, #4 11494 009c E0D0 beq .L706 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 11495 .loc 1 5521 5 is_stmt 1 view .LVU3869 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 11496 .loc 1 5521 27 is_stmt 0 view .LVU3870 11497 009e 2368 ldr r3, [r4] 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 11498 .loc 1 5521 37 view .LVU3871 11499 00a0 5B6A ldr r3, [r3, #36] 11500 00a2 DBB2 uxtb r3, r3 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 11501 .loc 1 5521 12 view .LVU3872 11502 00a4 0193 str r3, [sp, #4] ARM GAS /tmp/ccEimIdZ.s page 383 5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11503 .loc 1 5522 5 is_stmt 1 view .LVU3873 11504 00a6 019B ldr r3, [sp, #4] 11505 00a8 DAE7 b .L706 11506 .LVL751: 11507 .L708: 5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11508 .loc 1 5538 8 view .LVU3874 5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11509 .loc 1 5538 16 is_stmt 0 view .LVU3875 11510 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11511 00ae DBB2 uxtb r3, r3 5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11512 .loc 1 5538 11 view .LVU3876 11513 00b0 212B cmp r3, #33 11514 00b2 17D0 beq .L717 5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11515 .loc 1 5573 8 is_stmt 1 view .LVU3877 5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11516 .loc 1 5573 16 is_stmt 0 view .LVU3878 11517 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11518 00b8 DBB2 uxtb r3, r3 5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11519 .loc 1 5573 11 view .LVU3879 11520 00ba 222B cmp r3, #34 11521 00bc DED1 bne .L702 5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11522 .loc 1 5575 5 is_stmt 1 view .LVU3880 5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11523 .loc 1 5575 17 is_stmt 0 view .LVU3881 11524 00be 2023 movs r3, #32 11525 00c0 84F84130 strb r3, [r4, #65] 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11526 .loc 1 5576 5 is_stmt 1 view .LVU3882 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11527 .loc 1 5576 25 is_stmt 0 view .LVU3883 11528 00c4 0023 movs r3, #0 11529 00c6 2363 str r3, [r4, #48] 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11530 .loc 1 5578 5 is_stmt 1 view .LVU3884 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11531 .loc 1 5578 13 is_stmt 0 view .LVU3885 11532 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 11533 00cc DBB2 uxtb r3, r3 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11534 .loc 1 5578 8 view .LVU3886 11535 00ce 402B cmp r3, #64 11536 00d0 24D0 beq .L718 5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11537 .loc 1 5594 7 is_stmt 1 view .LVU3887 5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11538 .loc 1 5594 18 is_stmt 0 view .LVU3888 11539 00d2 0023 movs r3, #0 11540 00d4 84F84230 strb r3, [r4, #66] 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11541 .loc 1 5597 7 is_stmt 1 view .LVU3889 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 384 11542 .loc 1 5597 7 view .LVU3890 11543 00d8 84F84030 strb r3, [r4, #64] 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11544 .loc 1 5597 7 view .LVU3891 5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11545 .loc 1 5603 7 view .LVU3892 11546 00dc 2046 mov r0, r4 11547 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 11548 .LVL752: 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11549 .loc 1 5610 3 view .LVU3893 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11550 .loc 1 5611 1 is_stmt 0 view .LVU3894 11551 00e2 CBE7 b .L702 11552 .LVL753: 11553 .L717: 5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11554 .loc 1 5540 5 is_stmt 1 view .LVU3895 5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11555 .loc 1 5540 17 is_stmt 0 view .LVU3896 11556 00e4 2023 movs r3, #32 11557 00e6 84F84130 strb r3, [r4, #65] 5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11558 .loc 1 5541 5 is_stmt 1 view .LVU3897 5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11559 .loc 1 5541 25 is_stmt 0 view .LVU3898 11560 00ea 0023 movs r3, #0 11561 00ec 2363 str r3, [r4, #48] 5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11562 .loc 1 5543 5 is_stmt 1 view .LVU3899 5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11563 .loc 1 5543 13 is_stmt 0 view .LVU3900 11564 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 11565 00f2 DBB2 uxtb r3, r3 5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11566 .loc 1 5543 8 view .LVU3901 11567 00f4 402B cmp r3, #64 11568 00f6 08D0 beq .L719 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11569 .loc 1 5559 7 is_stmt 1 view .LVU3902 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11570 .loc 1 5559 18 is_stmt 0 view .LVU3903 11571 00f8 0023 movs r3, #0 11572 00fa 84F84230 strb r3, [r4, #66] 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11573 .loc 1 5562 7 is_stmt 1 view .LVU3904 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11574 .loc 1 5562 7 view .LVU3905 11575 00fe 84F84030 strb r3, [r4, #64] 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11576 .loc 1 5562 7 view .LVU3906 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11577 .loc 1 5568 7 view .LVU3907 11578 0102 2046 mov r0, r4 11579 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 11580 .LVL754: 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccEimIdZ.s page 385 11581 .loc 1 5568 7 is_stmt 0 view .LVU3908 11582 0108 B8E7 b .L702 11583 .LVL755: 11584 .L719: 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11585 .loc 1 5545 7 is_stmt 1 view .LVU3909 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11586 .loc 1 5545 18 is_stmt 0 view .LVU3910 11587 010a 0023 movs r3, #0 11588 010c 84F84230 strb r3, [r4, #66] 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11589 .loc 1 5548 7 is_stmt 1 view .LVU3911 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11590 .loc 1 5548 7 view .LVU3912 11591 0110 84F84030 strb r3, [r4, #64] 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11592 .loc 1 5548 7 view .LVU3913 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11593 .loc 1 5554 7 view .LVU3914 11594 0114 2046 mov r0, r4 11595 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 11596 .LVL756: 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11597 .loc 1 5554 7 is_stmt 0 view .LVU3915 11598 011a AFE7 b .L702 11599 .LVL757: 11600 .L718: 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11601 .loc 1 5580 7 is_stmt 1 view .LVU3916 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11602 .loc 1 5580 18 is_stmt 0 view .LVU3917 11603 011c 0023 movs r3, #0 11604 011e 84F84230 strb r3, [r4, #66] 5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11605 .loc 1 5583 7 is_stmt 1 view .LVU3918 5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11606 .loc 1 5583 7 view .LVU3919 11607 0122 84F84030 strb r3, [r4, #64] 5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11608 .loc 1 5583 7 view .LVU3920 5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11609 .loc 1 5589 7 view .LVU3921 11610 0126 2046 mov r0, r4 11611 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 11612 .LVL758: 5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11613 .loc 1 5589 7 is_stmt 0 view .LVU3922 11614 012c A6E7 b .L702 11615 .cfi_endproc 11616 .LFE199: 11618 .section .text.I2C_Master_ISR_IT,"ax",%progbits 11619 .align 1 11620 .syntax unified 11621 .thumb 11622 .thumb_func 11623 .fpu fpv5-d16 11625 I2C_Master_ISR_IT: ARM GAS /tmp/ccEimIdZ.s page 386 11626 .LVL759: 11627 .LFB190: 4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 11628 .loc 1 4611 1 is_stmt 1 view -0 11629 .cfi_startproc 11630 @ args = 0, pretend = 0, frame = 0 11631 @ frame_needed = 0, uses_anonymous_args = 0 4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11632 .loc 1 4612 3 view .LVU3924 4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11633 .loc 1 4613 3 view .LVU3925 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11634 .loc 1 4616 3 view .LVU3926 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11635 .loc 1 4616 3 view .LVU3927 11636 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 11637 0004 012B cmp r3, #1 11638 0006 00F0B980 beq .L734 4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 11639 .loc 1 4611 1 is_stmt 0 discriminator 2 view .LVU3928 11640 000a 70B5 push {r4, r5, r6, lr} 11641 .LCFI126: 11642 .cfi_def_cfa_offset 16 11643 .cfi_offset 4, -16 11644 .cfi_offset 5, -12 11645 .cfi_offset 6, -8 11646 .cfi_offset 14, -4 11647 000c 82B0 sub sp, sp, #8 11648 .LCFI127: 11649 .cfi_def_cfa_offset 24 11650 000e 0446 mov r4, r0 11651 0010 0D46 mov r5, r1 11652 0012 1646 mov r6, r2 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11653 .loc 1 4616 3 is_stmt 1 discriminator 2 view .LVU3929 11654 0014 0123 movs r3, #1 11655 0016 80F84030 strb r3, [r0, #64] 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11656 .loc 1 4616 3 discriminator 2 view .LVU3930 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11657 .loc 1 4618 3 discriminator 2 view .LVU3931 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11658 .loc 1 4618 6 is_stmt 0 discriminator 2 view .LVU3932 11659 001a 11F0100F tst r1, #16 11660 001e 02D0 beq .L722 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11661 .loc 1 4618 58 discriminator 1 view .LVU3933 11662 0020 12F0100F tst r2, #16 11663 0024 22D1 bne .L739 11664 .L722: 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11665 .loc 1 4631 8 is_stmt 1 view .LVU3934 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11666 .loc 1 4631 11 is_stmt 0 view .LVU3935 11667 0026 15F0040F tst r5, #4 11668 002a 29D0 beq .L724 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 387 11669 .loc 1 4631 65 discriminator 1 view .LVU3936 11670 002c 16F0040F tst r6, #4 11671 0030 26D0 beq .L724 4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11672 .loc 1 4634 5 is_stmt 1 view .LVU3937 4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11673 .loc 1 4634 16 is_stmt 0 view .LVU3938 11674 0032 25F00405 bic r5, r5, #4 11675 .LVL760: 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11676 .loc 1 4637 5 is_stmt 1 view .LVU3939 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11677 .loc 1 4637 36 is_stmt 0 view .LVU3940 11678 0036 2368 ldr r3, [r4] 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11679 .loc 1 4637 46 view .LVU3941 11680 0038 5A6A ldr r2, [r3, #36] 11681 .LVL761: 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11682 .loc 1 4637 10 view .LVU3942 11683 003a 636A ldr r3, [r4, #36] 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11684 .loc 1 4637 21 view .LVU3943 11685 003c 1A70 strb r2, [r3] 4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11686 .loc 1 4640 5 is_stmt 1 view .LVU3944 4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11687 .loc 1 4640 9 is_stmt 0 view .LVU3945 11688 003e 636A ldr r3, [r4, #36] 4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11689 .loc 1 4640 19 view .LVU3946 11690 0040 0133 adds r3, r3, #1 11691 0042 6362 str r3, [r4, #36] 4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11692 .loc 1 4642 5 is_stmt 1 view .LVU3947 4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11693 .loc 1 4642 9 is_stmt 0 view .LVU3948 11694 0044 238D ldrh r3, [r4, #40] 4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11695 .loc 1 4642 19 view .LVU3949 11696 0046 013B subs r3, r3, #1 11697 0048 2385 strh r3, [r4, #40] @ movhi 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11698 .loc 1 4643 5 is_stmt 1 view .LVU3950 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11699 .loc 1 4643 9 is_stmt 0 view .LVU3951 11700 004a 638D ldrh r3, [r4, #42] 11701 004c 9BB2 uxth r3, r3 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11702 .loc 1 4643 20 view .LVU3952 11703 004e 013B subs r3, r3, #1 11704 0050 9BB2 uxth r3, r3 11705 0052 6385 strh r3, [r4, #42] @ movhi 11706 .LVL762: 11707 .L723: 4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11708 .loc 1 4725 3 is_stmt 1 view .LVU3953 ARM GAS /tmp/ccEimIdZ.s page 388 4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11709 .loc 1 4727 3 view .LVU3954 4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11710 .loc 1 4727 6 is_stmt 0 view .LVU3955 11711 0054 15F0200F tst r5, #32 11712 0058 03D0 beq .L733 4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11713 .loc 1 4727 61 discriminator 1 view .LVU3956 11714 005a 16F0200F tst r6, #32 11715 005e 40F08880 bne .L740 11716 .L733: 4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11717 .loc 1 4734 3 is_stmt 1 view .LVU3957 4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11718 .loc 1 4734 3 view .LVU3958 11719 0062 0020 movs r0, #0 11720 0064 84F84000 strb r0, [r4, #64] 4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11721 .loc 1 4734 3 view .LVU3959 4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11722 .loc 1 4736 3 view .LVU3960 4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11723 .loc 1 4737 1 is_stmt 0 view .LVU3961 11724 0068 02B0 add sp, sp, #8 11725 .LCFI128: 11726 .cfi_remember_state 11727 .cfi_def_cfa_offset 16 11728 @ sp needed 11729 006a 70BD pop {r4, r5, r6, pc} 11730 .LVL763: 11731 .L739: 11732 .LCFI129: 11733 .cfi_restore_state 4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11734 .loc 1 4621 5 is_stmt 1 view .LVU3962 11735 006c 0368 ldr r3, [r0] 11736 006e 1022 movs r2, #16 11737 .LVL764: 4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11738 .loc 1 4621 5 is_stmt 0 view .LVU3963 11739 0070 DA61 str r2, [r3, #28] 4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11740 .loc 1 4626 5 is_stmt 1 view .LVU3964 4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11741 .loc 1 4626 21 is_stmt 0 view .LVU3965 11742 0072 436C ldr r3, [r0, #68] 11743 0074 43F00403 orr r3, r3, #4 11744 0078 4364 str r3, [r0, #68] 4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11745 .loc 1 4629 5 is_stmt 1 view .LVU3966 11746 007a FFF7FEFF bl I2C_Flush_TXDR 11747 .LVL765: 4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11748 .loc 1 4629 5 is_stmt 0 view .LVU3967 11749 007e E9E7 b .L723 11750 .LVL766: 11751 .L724: ARM GAS /tmp/ccEimIdZ.s page 389 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11752 .loc 1 4645 8 is_stmt 1 view .LVU3968 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11753 .loc 1 4645 11 is_stmt 0 view .LVU3969 11754 0080 15F0020F tst r5, #2 11755 0084 12D0 beq .L725 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11756 .loc 1 4645 65 discriminator 1 view .LVU3970 11757 0086 16F0020F tst r6, #2 11758 008a 0FD0 beq .L725 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11759 .loc 1 4648 5 is_stmt 1 view .LVU3971 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11760 .loc 1 4648 33 is_stmt 0 view .LVU3972 11761 008c 626A ldr r2, [r4, #36] 11762 .LVL767: 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11763 .loc 1 4648 9 view .LVU3973 11764 008e 2368 ldr r3, [r4] 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11765 .loc 1 4648 28 view .LVU3974 11766 0090 1278 ldrb r2, [r2] @ zero_extendqisi2 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11767 .loc 1 4648 26 view .LVU3975 11768 0092 9A62 str r2, [r3, #40] 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11769 .loc 1 4651 5 is_stmt 1 view .LVU3976 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11770 .loc 1 4651 9 is_stmt 0 view .LVU3977 11771 0094 636A ldr r3, [r4, #36] 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11772 .loc 1 4651 19 view .LVU3978 11773 0096 0133 adds r3, r3, #1 11774 0098 6362 str r3, [r4, #36] 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11775 .loc 1 4653 5 is_stmt 1 view .LVU3979 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11776 .loc 1 4653 9 is_stmt 0 view .LVU3980 11777 009a 238D ldrh r3, [r4, #40] 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11778 .loc 1 4653 19 view .LVU3981 11779 009c 013B subs r3, r3, #1 11780 009e 2385 strh r3, [r4, #40] @ movhi 4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11781 .loc 1 4654 5 is_stmt 1 view .LVU3982 4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11782 .loc 1 4654 9 is_stmt 0 view .LVU3983 11783 00a0 638D ldrh r3, [r4, #42] 11784 00a2 9BB2 uxth r3, r3 4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11785 .loc 1 4654 20 view .LVU3984 11786 00a4 013B subs r3, r3, #1 11787 00a6 9BB2 uxth r3, r3 11788 00a8 6385 strh r3, [r4, #42] @ movhi 11789 00aa D3E7 b .L723 11790 .LVL768: 11791 .L725: ARM GAS /tmp/ccEimIdZ.s page 390 4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11792 .loc 1 4656 8 is_stmt 1 view .LVU3985 4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11793 .loc 1 4656 11 is_stmt 0 view .LVU3986 11794 00ac 15F0800F tst r5, #128 11795 00b0 3FD0 beq .L726 4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11796 .loc 1 4656 64 discriminator 1 view .LVU3987 11797 00b2 16F0400F tst r6, #64 11798 00b6 3CD0 beq .L726 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11799 .loc 1 4658 5 is_stmt 1 view .LVU3988 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11800 .loc 1 4658 14 is_stmt 0 view .LVU3989 11801 00b8 638D ldrh r3, [r4, #42] 11802 00ba 9BB2 uxth r3, r3 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11803 .loc 1 4658 8 view .LVU3990 11804 00bc 5BB3 cbz r3, .L727 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11805 .loc 1 4658 41 discriminator 1 view .LVU3991 11806 00be 238D ldrh r3, [r4, #40] 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11807 .loc 1 4658 33 discriminator 1 view .LVU3992 11808 00c0 4BBB cbnz r3, .L727 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11809 .loc 1 4660 7 is_stmt 1 view .LVU3993 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11810 .loc 1 4660 35 is_stmt 0 view .LVU3994 11811 00c2 2368 ldr r3, [r4] 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11812 .loc 1 4660 45 view .LVU3995 11813 00c4 5968 ldr r1, [r3, #4] 11814 .LVL769: 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11815 .loc 1 4660 18 view .LVU3996 11816 00c6 C1F30901 ubfx r1, r1, #0, #10 11817 .LVL770: 4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11818 .loc 1 4662 7 is_stmt 1 view .LVU3997 4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11819 .loc 1 4662 15 is_stmt 0 view .LVU3998 11820 00ca 638D ldrh r3, [r4, #42] 11821 00cc 9BB2 uxth r3, r3 4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11822 .loc 1 4662 10 view .LVU3999 11823 00ce FF2B cmp r3, #255 11824 00d0 0ED8 bhi .L741 4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11825 .loc 1 4669 9 is_stmt 1 view .LVU4000 4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11826 .loc 1 4669 30 is_stmt 0 view .LVU4001 11827 00d2 628D ldrh r2, [r4, #42] 11828 .LVL771: 4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11829 .loc 1 4669 30 view .LVU4002 11830 00d4 92B2 uxth r2, r2 ARM GAS /tmp/ccEimIdZ.s page 391 4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11831 .loc 1 4669 24 view .LVU4003 11832 00d6 2285 strh r2, [r4, #40] @ movhi 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11833 .loc 1 4670 9 is_stmt 1 view .LVU4004 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11834 .loc 1 4670 17 is_stmt 0 view .LVU4005 11835 00d8 E36A ldr r3, [r4, #44] 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11836 .loc 1 4670 12 view .LVU4006 11837 00da 13F5803F cmn r3, #65536 11838 00de 11D0 beq .L729 4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11839 .loc 1 4672 11 is_stmt 1 view .LVU4007 11840 00e0 E36A ldr r3, [r4, #44] 11841 00e2 0020 movs r0, #0 11842 .LVL772: 4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11843 .loc 1 4672 11 is_stmt 0 view .LVU4008 11844 00e4 0090 str r0, [sp] 11845 00e6 D2B2 uxtb r2, r2 11846 00e8 2046 mov r0, r4 11847 00ea FFF7FEFF bl I2C_TransferConfig 11848 .LVL773: 4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11849 .loc 1 4672 11 view .LVU4009 11850 00ee B1E7 b .L723 11851 .LVL774: 11852 .L741: 4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11853 .loc 1 4664 9 is_stmt 1 view .LVU4010 4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11854 .loc 1 4664 24 is_stmt 0 view .LVU4011 11855 00f0 FF22 movs r2, #255 11856 .LVL775: 4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11857 .loc 1 4664 24 view .LVU4012 11858 00f2 2285 strh r2, [r4, #40] @ movhi 4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11859 .loc 1 4665 9 is_stmt 1 view .LVU4013 11860 00f4 0023 movs r3, #0 11861 00f6 0093 str r3, [sp] 11862 00f8 4FF08073 mov r3, #16777216 11863 00fc 2046 mov r0, r4 11864 .LVL776: 4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11865 .loc 1 4665 9 is_stmt 0 view .LVU4014 11866 00fe FFF7FEFF bl I2C_TransferConfig 11867 .LVL777: 4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11868 .loc 1 4665 9 view .LVU4015 11869 0102 A7E7 b .L723 11870 .LVL778: 11871 .L729: 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11872 .loc 1 4676 11 is_stmt 1 view .LVU4016 11873 0104 0023 movs r3, #0 ARM GAS /tmp/ccEimIdZ.s page 392 11874 0106 0093 str r3, [sp] 11875 0108 4FF00073 mov r3, #33554432 11876 010c D2B2 uxtb r2, r2 11877 010e 2046 mov r0, r4 11878 .LVL779: 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11879 .loc 1 4676 11 is_stmt 0 view .LVU4017 11880 0110 FFF7FEFF bl I2C_TransferConfig 11881 .LVL780: 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11882 .loc 1 4676 11 view .LVU4018 11883 0114 9EE7 b .L723 11884 .LVL781: 11885 .L727: 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11886 .loc 1 4683 7 is_stmt 1 view .LVU4019 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11887 .loc 1 4683 11 is_stmt 0 view .LVU4020 11888 0116 2368 ldr r3, [r4] 11889 0118 5B68 ldr r3, [r3, #4] 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11890 .loc 1 4683 10 view .LVU4021 11891 011a 13F0007F tst r3, #33554432 11892 011e 03D1 bne .L730 4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11893 .loc 1 4686 9 is_stmt 1 view .LVU4022 11894 0120 2046 mov r0, r4 11895 .LVL782: 4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11896 .loc 1 4686 9 is_stmt 0 view .LVU4023 11897 0122 FFF7FEFF bl I2C_ITMasterSeqCplt 11898 .LVL783: 4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11899 .loc 1 4686 9 view .LVU4024 11900 0126 95E7 b .L723 11901 .LVL784: 11902 .L730: 4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11903 .loc 1 4692 9 is_stmt 1 view .LVU4025 11904 0128 4021 movs r1, #64 11905 .LVL785: 4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11906 .loc 1 4692 9 is_stmt 0 view .LVU4026 11907 012a 2046 mov r0, r4 11908 .LVL786: 4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11909 .loc 1 4692 9 view .LVU4027 11910 012c FFF7FEFF bl I2C_ITError 11911 .LVL787: 4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11912 .loc 1 4692 9 view .LVU4028 11913 0130 90E7 b .L723 11914 .LVL788: 11915 .L726: 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11916 .loc 1 4696 8 is_stmt 1 view .LVU4029 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 393 11917 .loc 1 4696 11 is_stmt 0 view .LVU4030 11918 0132 15F0400F tst r5, #64 11919 0136 8DD0 beq .L723 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11920 .loc 1 4696 63 discriminator 1 view .LVU4031 11921 0138 16F0400F tst r6, #64 11922 013c 8AD0 beq .L723 4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11923 .loc 1 4698 5 is_stmt 1 view .LVU4032 4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11924 .loc 1 4698 13 is_stmt 0 view .LVU4033 11925 013e 638D ldrh r3, [r4, #42] 11926 0140 9BB2 uxth r3, r3 4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11927 .loc 1 4698 8 view .LVU4034 11928 0142 8BB9 cbnz r3, .L731 4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11929 .loc 1 4700 7 is_stmt 1 view .LVU4035 4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11930 .loc 1 4700 11 is_stmt 0 view .LVU4036 11931 0144 2368 ldr r3, [r4] 11932 0146 5A68 ldr r2, [r3, #4] 11933 .LVL789: 4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11934 .loc 1 4700 10 view .LVU4037 11935 0148 12F0007F tst r2, #33554432 11936 014c 82D1 bne .L723 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11937 .loc 1 4703 9 is_stmt 1 view .LVU4038 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11938 .loc 1 4703 17 is_stmt 0 view .LVU4039 11939 014e E26A ldr r2, [r4, #44] 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11940 .loc 1 4703 12 view .LVU4040 11941 0150 12F5803F cmn r2, #65536 11942 0154 04D1 bne .L732 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11943 .loc 1 4706 11 is_stmt 1 view .LVU4041 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11944 .loc 1 4706 31 is_stmt 0 view .LVU4042 11945 0156 5A68 ldr r2, [r3, #4] 11946 0158 42F48042 orr r2, r2, #16384 11947 015c 5A60 str r2, [r3, #4] 11948 015e 79E7 b .L723 11949 .L732: 4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11950 .loc 1 4711 11 is_stmt 1 view .LVU4043 11951 0160 2046 mov r0, r4 11952 .LVL790: 4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11953 .loc 1 4711 11 is_stmt 0 view .LVU4044 11954 0162 FFF7FEFF bl I2C_ITMasterSeqCplt 11955 .LVL791: 4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11956 .loc 1 4711 11 view .LVU4045 11957 0166 75E7 b .L723 11958 .LVL792: ARM GAS /tmp/ccEimIdZ.s page 394 11959 .L731: 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11960 .loc 1 4719 7 is_stmt 1 view .LVU4046 11961 0168 4021 movs r1, #64 11962 .LVL793: 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11963 .loc 1 4719 7 is_stmt 0 view .LVU4047 11964 016a 2046 mov r0, r4 11965 .LVL794: 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11966 .loc 1 4719 7 view .LVU4048 11967 016c FFF7FEFF bl I2C_ITError 11968 .LVL795: 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11969 .loc 1 4719 7 view .LVU4049 11970 0170 70E7 b .L723 11971 .LVL796: 11972 .L740: 4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11973 .loc 1 4730 5 is_stmt 1 view .LVU4050 11974 0172 2946 mov r1, r5 11975 0174 2046 mov r0, r4 11976 0176 FFF7FEFF bl I2C_ITMasterCplt 11977 .LVL797: 11978 017a 72E7 b .L733 11979 .LVL798: 11980 .L734: 11981 .LCFI130: 11982 .cfi_def_cfa_offset 0 11983 .cfi_restore 4 11984 .cfi_restore 5 11985 .cfi_restore 6 11986 .cfi_restore 14 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11987 .loc 1 4616 3 is_stmt 0 view .LVU4051 11988 017c 0220 movs r0, #2 11989 .LVL799: 4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11990 .loc 1 4737 1 view .LVU4052 11991 017e 7047 bx lr 11992 .cfi_endproc 11993 .LFE190: 11995 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 11996 .align 1 11997 .syntax unified 11998 .thumb 11999 .thumb_func 12000 .fpu fpv5-d16 12002 I2C_Slave_ISR_DMA: 12003 .LVL800: 12004 .LFB193: 5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12005 .loc 1 5016 1 is_stmt 1 view -0 12006 .cfi_startproc 12007 @ args = 0, pretend = 0, frame = 0 12008 @ frame_needed = 0, uses_anonymous_args = 0 5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; ARM GAS /tmp/ccEimIdZ.s page 395 12009 .loc 1 5016 1 is_stmt 0 view .LVU4054 12010 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 12011 .LCFI131: 12012 .cfi_def_cfa_offset 24 12013 .cfi_offset 3, -24 12014 .cfi_offset 4, -20 12015 .cfi_offset 5, -16 12016 .cfi_offset 6, -12 12017 .cfi_offset 7, -8 12018 .cfi_offset 14, -4 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 12019 .loc 1 5017 3 is_stmt 1 view .LVU4055 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 12020 .loc 1 5017 12 is_stmt 0 view .LVU4056 12021 0002 C76A ldr r7, [r0, #44] 12022 .LVL801: 5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12023 .loc 1 5018 3 is_stmt 1 view .LVU4057 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12024 .loc 1 5019 3 view .LVU4058 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12025 .loc 1 5022 3 view .LVU4059 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12026 .loc 1 5022 3 view .LVU4060 12027 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12028 0008 012B cmp r3, #1 12029 000a 00F00381 beq .L763 12030 000e 0446 mov r4, r0 12031 0010 0D46 mov r5, r1 12032 0012 1646 mov r6, r2 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12033 .loc 1 5022 3 discriminator 2 view .LVU4061 12034 0014 0123 movs r3, #1 12035 0016 80F84030 strb r3, [r0, #64] 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12036 .loc 1 5022 3 discriminator 2 view .LVU4062 5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12037 .loc 1 5025 3 discriminator 2 view .LVU4063 5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12038 .loc 1 5025 6 is_stmt 0 discriminator 2 view .LVU4064 12039 001a 11F0200F tst r1, #32 12040 001e 02D0 beq .L744 5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12041 .loc 1 5025 58 discriminator 1 view .LVU4065 12042 0020 12F0200F tst r2, #32 12043 0024 4DD1 bne .L768 12044 .LVL802: 12045 .L744: 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12046 .loc 1 5031 3 is_stmt 1 view .LVU4066 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12047 .loc 1 5031 6 is_stmt 0 view .LVU4067 12048 0026 15F0100F tst r5, #16 12049 002a 00F0E480 beq .L745 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12050 .loc 1 5031 55 discriminator 1 view .LVU4068 12051 002e 16F0100F tst r6, #16 ARM GAS /tmp/ccEimIdZ.s page 396 12052 0032 00F0E080 beq .L745 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12053 .loc 1 5037 5 is_stmt 1 view .LVU4069 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12054 .loc 1 5037 10 is_stmt 0 view .LVU4070 12055 0036 C6F38032 ubfx r2, r6, #14, #1 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12056 .loc 1 5037 8 view .LVU4071 12057 003a 16F4804F tst r6, #16384 12058 003e 03D1 bne .L746 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12059 .loc 1 5037 68 discriminator 1 view .LVU4072 12060 0040 16F4004F tst r6, #32768 12061 0044 00F0D380 beq .L747 12062 .L746: 5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12063 .loc 1 5041 7 is_stmt 1 view .LVU4073 5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12064 .loc 1 5041 15 is_stmt 0 view .LVU4074 12065 0048 E36B ldr r3, [r4, #60] 5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12066 .loc 1 5041 10 view .LVU4075 12067 004a 002B cmp r3, #0 12068 004c 44D0 beq .L764 5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12069 .loc 1 5043 9 is_stmt 1 view .LVU4076 5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12070 .loc 1 5043 12 is_stmt 0 view .LVU4077 12071 004e 16F4004F tst r6, #32768 12072 0052 43D0 beq .L765 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12073 .loc 1 5045 11 is_stmt 1 view .LVU4078 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12074 .loc 1 5045 15 is_stmt 0 view .LVU4079 12075 0054 1B68 ldr r3, [r3] 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12076 .loc 1 5045 51 view .LVU4080 12077 0056 7048 ldr r0, .L772 12078 0058 7049 ldr r1, .L772+4 12079 005a 8B42 cmp r3, r1 12080 005c 18BF it ne 12081 005e 8342 cmpne r3, r0 12082 0060 32D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12083 .loc 1 5045 15 discriminator 2 view .LVU4081 12084 0062 1831 adds r1, r1, #24 12085 0064 8B42 cmp r3, r1 12086 0066 2FD0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12087 .loc 1 5045 15 discriminator 4 view .LVU4082 12088 0068 1831 adds r1, r1, #24 12089 006a 8B42 cmp r3, r1 12090 006c 2CD0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12091 .loc 1 5045 15 discriminator 6 view .LVU4083 12092 006e 1831 adds r1, r1, #24 12093 0070 8B42 cmp r3, r1 ARM GAS /tmp/ccEimIdZ.s page 397 12094 0072 29D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12095 .loc 1 5045 15 discriminator 8 view .LVU4084 12096 0074 1831 adds r1, r1, #24 12097 0076 8B42 cmp r3, r1 12098 0078 26D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12099 .loc 1 5045 15 discriminator 10 view .LVU4085 12100 007a 1831 adds r1, r1, #24 12101 007c 8B42 cmp r3, r1 12102 007e 23D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12103 .loc 1 5045 15 discriminator 12 view .LVU4086 12104 0080 1831 adds r1, r1, #24 12105 0082 8B42 cmp r3, r1 12106 0084 20D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12107 .loc 1 5045 15 discriminator 14 view .LVU4087 12108 0086 01F55671 add r1, r1, #856 12109 008a 8B42 cmp r3, r1 12110 008c 1CD0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12111 .loc 1 5045 15 discriminator 16 view .LVU4088 12112 008e 1831 adds r1, r1, #24 12113 0090 8B42 cmp r3, r1 12114 0092 19D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12115 .loc 1 5045 15 discriminator 18 view .LVU4089 12116 0094 1831 adds r1, r1, #24 12117 0096 8B42 cmp r3, r1 12118 0098 16D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12119 .loc 1 5045 15 discriminator 20 view .LVU4090 12120 009a 1831 adds r1, r1, #24 12121 009c 8B42 cmp r3, r1 12122 009e 13D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12123 .loc 1 5045 15 discriminator 22 view .LVU4091 12124 00a0 1831 adds r1, r1, #24 12125 00a2 8B42 cmp r3, r1 12126 00a4 10D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12127 .loc 1 5045 15 discriminator 24 view .LVU4092 12128 00a6 1831 adds r1, r1, #24 12129 00a8 8B42 cmp r3, r1 12130 00aa 0DD0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12131 .loc 1 5045 15 discriminator 26 view .LVU4093 12132 00ac 1831 adds r1, r1, #24 12133 00ae 8B42 cmp r3, r1 12134 00b0 0AD0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12135 .loc 1 5045 15 discriminator 28 view .LVU4094 12136 00b2 1831 adds r1, r1, #24 12137 00b4 8B42 cmp r3, r1 12138 00b6 07D0 beq .L749 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 398 12139 .loc 1 5045 15 discriminator 30 view .LVU4095 12140 00b8 5B68 ldr r3, [r3, #4] 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12141 .loc 1 5045 51 discriminator 30 view .LVU4096 12142 00ba B3FA83F3 clz r3, r3 12143 00be 5B09 lsrs r3, r3, #5 12144 00c0 06E0 b .L751 12145 .LVL803: 12146 .L768: 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12147 .loc 1 5028 5 is_stmt 1 view .LVU4097 12148 00c2 FFF7FEFF bl I2C_ITSlaveCplt 12149 .LVL804: 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12150 .loc 1 5028 5 is_stmt 0 view .LVU4098 12151 00c6 AEE7 b .L744 12152 .L749: 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12153 .loc 1 5045 15 discriminator 29 view .LVU4099 12154 00c8 5B68 ldr r3, [r3, #4] 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12155 .loc 1 5045 51 discriminator 29 view .LVU4100 12156 00ca B3FA83F3 clz r3, r3 12157 00ce 5B09 lsrs r3, r3, #5 12158 .L751: 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12159 .loc 1 5045 14 discriminator 32 view .LVU4101 12160 00d0 002B cmp r3, #0 12161 00d2 40D1 bne .L766 5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12162 .loc 1 5018 12 view .LVU4102 12163 00d4 0021 movs r1, #0 12164 00d6 02E0 b .L748 12165 .L764: 5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12166 .loc 1 5018 12 view .LVU4103 12167 00d8 0021 movs r1, #0 12168 00da 00E0 b .L748 12169 .L765: 5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12170 .loc 1 5018 12 view .LVU4104 12171 00dc 0021 movs r1, #0 12172 .L748: 12173 .LVL805: 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12174 .loc 1 5053 7 is_stmt 1 view .LVU4105 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12175 .loc 1 5053 15 is_stmt 0 view .LVU4106 12176 00de A36B ldr r3, [r4, #56] 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12177 .loc 1 5053 10 view .LVU4107 12178 00e0 002B cmp r3, #0 12179 00e2 3FD0 beq .L752 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12180 .loc 1 5055 9 is_stmt 1 view .LVU4108 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12181 .loc 1 5055 12 is_stmt 0 view .LVU4109 ARM GAS /tmp/ccEimIdZ.s page 399 12182 00e4 002A cmp r2, #0 12183 00e6 3DD0 beq .L752 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12184 .loc 1 5057 11 is_stmt 1 view .LVU4110 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12185 .loc 1 5057 15 is_stmt 0 view .LVU4111 12186 00e8 1B68 ldr r3, [r3] 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12187 .loc 1 5057 51 view .LVU4112 12188 00ea 4B48 ldr r0, .L772 12189 00ec 4B4A ldr r2, .L772+4 12190 00ee 9342 cmp r3, r2 12191 00f0 18BF it ne 12192 00f2 8342 cmpne r3, r0 12193 00f4 31D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12194 .loc 1 5057 15 discriminator 2 view .LVU4113 12195 00f6 1832 adds r2, r2, #24 12196 00f8 9342 cmp r3, r2 12197 00fa 2ED0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12198 .loc 1 5057 15 discriminator 4 view .LVU4114 12199 00fc 1832 adds r2, r2, #24 12200 00fe 9342 cmp r3, r2 12201 0100 2BD0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12202 .loc 1 5057 15 discriminator 6 view .LVU4115 12203 0102 1832 adds r2, r2, #24 12204 0104 9342 cmp r3, r2 12205 0106 28D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12206 .loc 1 5057 15 discriminator 8 view .LVU4116 12207 0108 1832 adds r2, r2, #24 12208 010a 9342 cmp r3, r2 12209 010c 25D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12210 .loc 1 5057 15 discriminator 10 view .LVU4117 12211 010e 1832 adds r2, r2, #24 12212 0110 9342 cmp r3, r2 12213 0112 22D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12214 .loc 1 5057 15 discriminator 12 view .LVU4118 12215 0114 1832 adds r2, r2, #24 12216 0116 9342 cmp r3, r2 12217 0118 1FD0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12218 .loc 1 5057 15 discriminator 14 view .LVU4119 12219 011a 02F55672 add r2, r2, #856 12220 011e 9342 cmp r3, r2 12221 0120 1BD0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12222 .loc 1 5057 15 discriminator 16 view .LVU4120 12223 0122 1832 adds r2, r2, #24 12224 0124 9342 cmp r3, r2 12225 0126 18D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12226 .loc 1 5057 15 discriminator 18 view .LVU4121 ARM GAS /tmp/ccEimIdZ.s page 400 12227 0128 1832 adds r2, r2, #24 12228 012a 9342 cmp r3, r2 12229 012c 15D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12230 .loc 1 5057 15 discriminator 20 view .LVU4122 12231 012e 1832 adds r2, r2, #24 12232 0130 9342 cmp r3, r2 12233 0132 12D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12234 .loc 1 5057 15 discriminator 22 view .LVU4123 12235 0134 1832 adds r2, r2, #24 12236 0136 9342 cmp r3, r2 12237 0138 0FD0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12238 .loc 1 5057 15 discriminator 24 view .LVU4124 12239 013a 1832 adds r2, r2, #24 12240 013c 9342 cmp r3, r2 12241 013e 0CD0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12242 .loc 1 5057 15 discriminator 26 view .LVU4125 12243 0140 1832 adds r2, r2, #24 12244 0142 9342 cmp r3, r2 12245 0144 09D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12246 .loc 1 5057 15 discriminator 28 view .LVU4126 12247 0146 1832 adds r2, r2, #24 12248 0148 9342 cmp r3, r2 12249 014a 06D0 beq .L753 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12250 .loc 1 5057 15 discriminator 30 view .LVU4127 12251 014c 5B68 ldr r3, [r3, #4] 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12252 .loc 1 5057 51 discriminator 30 view .LVU4128 12253 014e B3FA83F3 clz r3, r3 12254 0152 5B09 lsrs r3, r3, #5 12255 0154 05E0 b .L755 12256 .LVL806: 12257 .L766: 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12258 .loc 1 5047 26 view .LVU4129 12259 0156 0121 movs r1, #1 12260 0158 C1E7 b .L748 12261 .LVL807: 12262 .L753: 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12263 .loc 1 5057 15 discriminator 29 view .LVU4130 12264 015a 5B68 ldr r3, [r3, #4] 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12265 .loc 1 5057 51 discriminator 29 view .LVU4131 12266 015c B3FA83F3 clz r3, r3 12267 0160 5B09 lsrs r3, r3, #5 12268 .L755: 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12269 .loc 1 5057 14 discriminator 32 view .LVU4132 12270 0162 D3B9 cbnz r3, .L756 12271 .L752: 5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 401 12272 .loc 1 5064 7 is_stmt 1 view .LVU4133 5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12273 .loc 1 5064 10 is_stmt 0 view .LVU4134 12274 0164 C9B9 cbnz r1, .L756 5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12275 .loc 1 5093 9 is_stmt 1 view .LVU4135 12276 0166 2368 ldr r3, [r4] 12277 0168 1022 movs r2, #16 12278 016a DA61 str r2, [r3, #28] 5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12279 .loc 1 5096 9 view .LVU4136 5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12280 .loc 1 5096 25 is_stmt 0 view .LVU4137 12281 016c 636C ldr r3, [r4, #68] 12282 016e 43F00403 orr r3, r3, #4 12283 0172 6364 str r3, [r4, #68] 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12284 .loc 1 5099 9 is_stmt 1 view .LVU4138 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12285 .loc 1 5099 18 is_stmt 0 view .LVU4139 12286 0174 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12287 0178 DBB2 uxtb r3, r3 12288 .LVL808: 5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12289 .loc 1 5101 9 is_stmt 1 view .LVU4140 5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12290 .loc 1 5101 12 is_stmt 0 view .LVU4141 12291 017a B7F1807F cmp r7, #16777216 12292 017e 18BF it ne 12293 0180 002F cmpne r7, #0 12294 0182 3ED1 bne .L759 5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12295 .loc 1 5103 11 is_stmt 1 view .LVU4142 5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12296 .loc 1 5103 14 is_stmt 0 view .LVU4143 12297 0184 292B cmp r3, #41 12298 0186 18BF it ne 12299 0188 212B cmpne r3, #33 12300 018a 29D1 bne .L761 5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12301 .loc 1 5105 13 is_stmt 1 view .LVU4144 5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12302 .loc 1 5105 33 is_stmt 0 view .LVU4145 12303 018c 2123 movs r3, #33 12304 .LVL809: 5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12305 .loc 1 5105 33 view .LVU4146 12306 018e 2363 str r3, [r4, #48] 12307 .L762: 5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12308 .loc 1 5114 11 is_stmt 1 view .LVU4147 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12309 .loc 1 5117 11 view .LVU4148 12310 0190 616C ldr r1, [r4, #68] 12311 .LVL810: 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12312 .loc 1 5117 11 is_stmt 0 view .LVU4149 ARM GAS /tmp/ccEimIdZ.s page 402 12313 0192 2046 mov r0, r4 12314 0194 FFF7FEFF bl I2C_ITError 12315 .LVL811: 12316 0198 33E0 b .L759 12317 .LVL812: 12318 .L756: 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12319 .loc 1 5066 9 is_stmt 1 view .LVU4150 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12320 .loc 1 5066 18 is_stmt 0 view .LVU4151 12321 019a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12322 019e DBB2 uxtb r3, r3 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12323 .loc 1 5066 12 view .LVU4152 12324 01a0 282B cmp r3, #40 12325 01a2 08D0 beq .L769 12326 .L758: 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12327 .loc 1 5071 14 is_stmt 1 view .LVU4153 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12328 .loc 1 5071 23 is_stmt 0 view .LVU4154 12329 01a4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12330 01a8 DBB2 uxtb r3, r3 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12331 .loc 1 5071 17 view .LVU4155 12332 01aa 292B cmp r3, #41 12333 01ac 0BD0 beq .L770 12334 .L760: 5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12335 .loc 1 5086 11 is_stmt 1 view .LVU4156 12336 01ae 2368 ldr r3, [r4] 12337 01b0 1022 movs r2, #16 12338 01b2 DA61 str r2, [r3, #28] 12339 01b4 25E0 b .L759 12340 .L769: 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12341 .loc 1 5066 51 is_stmt 0 discriminator 1 view .LVU4157 12342 01b6 B7F1007F cmp r7, #33554432 12343 01ba F3D1 bne .L758 5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12344 .loc 1 5069 11 is_stmt 1 view .LVU4158 12345 01bc 2946 mov r1, r5 12346 01be 2046 mov r0, r4 12347 01c0 FFF7FEFF bl I2C_ITListenCplt 12348 .LVL813: 12349 01c4 1DE0 b .L759 12350 .L770: 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12351 .loc 1 5071 64 is_stmt 0 discriminator 1 view .LVU4159 12352 01c6 17F5803F cmn r7, #65536 12353 01ca F0D0 beq .L760 5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12354 .loc 1 5074 11 is_stmt 1 view .LVU4160 12355 01cc 2368 ldr r3, [r4] 12356 01ce 1022 movs r2, #16 12357 01d0 DA61 str r2, [r3, #28] 5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 403 12358 .loc 1 5077 11 view .LVU4161 12359 01d2 2046 mov r0, r4 12360 01d4 FFF7FEFF bl I2C_Flush_TXDR 12361 .LVL814: 5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12362 .loc 1 5081 11 view .LVU4162 12363 01d8 2046 mov r0, r4 12364 01da FFF7FEFF bl I2C_ITSlaveSeqCplt 12365 .LVL815: 12366 01de 10E0 b .L759 12367 .LVL816: 12368 .L761: 5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12369 .loc 1 5107 16 view .LVU4163 5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12370 .loc 1 5107 19 is_stmt 0 view .LVU4164 12371 01e0 2A2B cmp r3, #42 12372 01e2 18BF it ne 12373 01e4 222B cmpne r3, #34 12374 01e6 D3D1 bne .L762 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12375 .loc 1 5109 13 is_stmt 1 view .LVU4165 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12376 .loc 1 5109 33 is_stmt 0 view .LVU4166 12377 01e8 2223 movs r3, #34 12378 .LVL817: 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12379 .loc 1 5109 33 view .LVU4167 12380 01ea 2363 str r3, [r4, #48] 12381 01ec D0E7 b .L762 12382 .LVL818: 12383 .L747: 5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12384 .loc 1 5124 7 is_stmt 1 view .LVU4168 12385 01ee 2368 ldr r3, [r4] 12386 01f0 1022 movs r2, #16 12387 01f2 DA61 str r2, [r3, #28] 12388 01f4 05E0 b .L759 12389 .L745: 5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12390 .loc 1 5127 8 view .LVU4169 5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12391 .loc 1 5127 11 is_stmt 0 view .LVU4170 12392 01f6 15F0080F tst r5, #8 12393 01fa 02D0 beq .L759 5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12394 .loc 1 5127 62 discriminator 1 view .LVU4171 12395 01fc 16F0080F tst r6, #8 12396 0200 03D1 bne .L771 12397 .LVL819: 12398 .L759: 5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12399 .loc 1 5134 3 is_stmt 1 view .LVU4172 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12400 .loc 1 5137 3 view .LVU4173 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12401 .loc 1 5137 3 view .LVU4174 ARM GAS /tmp/ccEimIdZ.s page 404 12402 0202 0020 movs r0, #0 12403 0204 84F84000 strb r0, [r4, #64] 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12404 .loc 1 5137 3 view .LVU4175 5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12405 .loc 1 5139 3 view .LVU4176 12406 .LVL820: 12407 .L743: 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12408 .loc 1 5140 1 is_stmt 0 view .LVU4177 12409 0208 F8BD pop {r3, r4, r5, r6, r7, pc} 12410 .LVL821: 12411 .L771: 5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12412 .loc 1 5129 5 is_stmt 1 view .LVU4178 12413 020a 2946 mov r1, r5 12414 020c 2046 mov r0, r4 12415 020e FFF7FEFF bl I2C_ITAddrCplt 12416 .LVL822: 12417 0212 F6E7 b .L759 12418 .LVL823: 12419 .L763: 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12420 .loc 1 5022 3 is_stmt 0 view .LVU4179 12421 0214 0220 movs r0, #2 12422 .LVL824: 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12423 .loc 1 5022 3 view .LVU4180 12424 0216 F7E7 b .L743 12425 .L773: 12426 .align 2 12427 .L772: 12428 0218 10000240 .word 1073872912 12429 021c 28000240 .word 1073872936 12430 .cfi_endproc 12431 .LFE193: 12433 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 12434 .align 1 12435 .syntax unified 12436 .thumb 12437 .thumb_func 12438 .fpu fpv5-d16 12440 I2C_Master_ISR_DMA: 12441 .LVL825: 12442 .LFB192: 4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 12443 .loc 1 4881 1 is_stmt 1 view -0 12444 .cfi_startproc 12445 @ args = 0, pretend = 0, frame = 0 12446 @ frame_needed = 0, uses_anonymous_args = 0 4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 12447 .loc 1 4882 3 view .LVU4182 4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12448 .loc 1 4883 3 view .LVU4183 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12449 .loc 1 4886 3 view .LVU4184 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 405 12450 .loc 1 4886 3 view .LVU4185 12451 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12452 0004 012B cmp r3, #1 12453 0006 00F09A80 beq .L787 4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 12454 .loc 1 4881 1 is_stmt 0 discriminator 2 view .LVU4186 12455 000a 10B5 push {r4, lr} 12456 .LCFI132: 12457 .cfi_def_cfa_offset 8 12458 .cfi_offset 4, -8 12459 .cfi_offset 14, -4 12460 000c 82B0 sub sp, sp, #8 12461 .LCFI133: 12462 .cfi_def_cfa_offset 16 12463 000e 0446 mov r4, r0 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12464 .loc 1 4886 3 is_stmt 1 discriminator 2 view .LVU4187 12465 0010 0123 movs r3, #1 12466 0012 80F84030 strb r3, [r0, #64] 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12467 .loc 1 4886 3 discriminator 2 view .LVU4188 4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12468 .loc 1 4888 3 discriminator 2 view .LVU4189 4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12469 .loc 1 4888 6 is_stmt 0 discriminator 2 view .LVU4190 12470 0016 11F0100F tst r1, #16 12471 001a 02D0 beq .L776 4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12472 .loc 1 4888 55 discriminator 1 view .LVU4191 12473 001c 12F0100F tst r2, #16 12474 0020 32D1 bne .L793 12475 .L776: 4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12476 .loc 1 4904 8 is_stmt 1 view .LVU4192 4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12477 .loc 1 4904 11 is_stmt 0 view .LVU4193 12478 0022 11F0800F tst r1, #128 12479 0026 60D0 beq .L778 4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12480 .loc 1 4904 61 discriminator 1 view .LVU4194 12481 0028 12F0400F tst r2, #64 12482 002c 5DD0 beq .L778 4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12483 .loc 1 4907 5 is_stmt 1 view .LVU4195 12484 002e 2268 ldr r2, [r4] 12485 .LVL826: 4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12486 .loc 1 4907 5 is_stmt 0 view .LVU4196 12487 0030 1368 ldr r3, [r2] 12488 0032 23F04003 bic r3, r3, #64 12489 0036 1360 str r3, [r2] 4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12490 .loc 1 4909 5 is_stmt 1 view .LVU4197 4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12491 .loc 1 4909 13 is_stmt 0 view .LVU4198 12492 0038 638D ldrh r3, [r4, #42] 12493 003a 9BB2 uxth r3, r3 ARM GAS /tmp/ccEimIdZ.s page 406 4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12494 .loc 1 4909 8 view .LVU4199 12495 003c 002B cmp r3, #0 12496 003e 46D0 beq .L779 4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12497 .loc 1 4912 7 is_stmt 1 view .LVU4200 4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12498 .loc 1 4912 35 is_stmt 0 view .LVU4201 12499 0040 2368 ldr r3, [r4] 4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12500 .loc 1 4912 45 view .LVU4202 12501 0042 5968 ldr r1, [r3, #4] 12502 .LVL827: 4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12503 .loc 1 4912 18 view .LVU4203 12504 0044 C1F30901 ubfx r1, r1, #0, #10 12505 .LVL828: 4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12506 .loc 1 4915 7 is_stmt 1 view .LVU4204 4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12507 .loc 1 4915 15 is_stmt 0 view .LVU4205 12508 0048 638D ldrh r3, [r4, #42] 12509 004a 9BB2 uxth r3, r3 4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12510 .loc 1 4915 10 view .LVU4206 12511 004c FF2B cmp r3, #255 12512 004e 2DD9 bls .L780 4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12513 .loc 1 4917 9 is_stmt 1 view .LVU4207 4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12514 .loc 1 4917 24 is_stmt 0 view .LVU4208 12515 0050 FF23 movs r3, #255 12516 0052 2385 strh r3, [r4, #40] @ movhi 4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12517 .loc 1 4918 9 is_stmt 1 view .LVU4209 12518 .LVL829: 4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12519 .loc 1 4918 18 is_stmt 0 view .LVU4210 12520 0054 4FF08073 mov r3, #16777216 12521 .LVL830: 12522 .L781: 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12523 .loc 1 4934 7 is_stmt 1 view .LVU4211 12524 0058 0022 movs r2, #0 12525 005a 0092 str r2, [sp] 12526 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12527 0060 2046 mov r0, r4 12528 .LVL831: 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12529 .loc 1 4934 7 is_stmt 0 view .LVU4212 12530 0062 FFF7FEFF bl I2C_TransferConfig 12531 .LVL832: 4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12532 .loc 1 4937 7 is_stmt 1 view .LVU4213 4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12533 .loc 1 4937 23 is_stmt 0 view .LVU4214 12534 0066 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccEimIdZ.s page 407 12535 0068 9BB2 uxth r3, r3 4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12536 .loc 1 4937 30 view .LVU4215 12537 006a 228D ldrh r2, [r4, #40] 4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12538 .loc 1 4937 23 view .LVU4216 12539 006c 9B1A subs r3, r3, r2 12540 006e 9BB2 uxth r3, r3 12541 0070 6385 strh r3, [r4, #42] @ movhi 4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12542 .loc 1 4940 7 is_stmt 1 view .LVU4217 4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12543 .loc 1 4940 15 is_stmt 0 view .LVU4218 12544 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12545 0076 DBB2 uxtb r3, r3 4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12546 .loc 1 4940 10 view .LVU4219 12547 0078 222B cmp r3, #34 12548 007a 22D0 beq .L794 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12549 .loc 1 4946 9 is_stmt 1 view .LVU4220 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12550 .loc 1 4946 13 is_stmt 0 view .LVU4221 12551 007c 2268 ldr r2, [r4] 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12552 .loc 1 4946 29 view .LVU4222 12553 007e 1368 ldr r3, [r2] 12554 0080 43F48043 orr r3, r3, #16384 12555 0084 1360 str r3, [r2] 12556 0086 0CE0 b .L777 12557 .LVL833: 12558 .L793: 4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12559 .loc 1 4891 5 is_stmt 1 view .LVU4223 12560 0088 0368 ldr r3, [r0] 12561 008a 1022 movs r2, #16 12562 .LVL834: 4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12563 .loc 1 4891 5 is_stmt 0 view .LVU4224 12564 008c DA61 str r2, [r3, #28] 4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12565 .loc 1 4894 5 is_stmt 1 view .LVU4225 4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12566 .loc 1 4894 21 is_stmt 0 view .LVU4226 12567 008e 436C ldr r3, [r0, #68] 12568 0090 43F00403 orr r3, r3, #4 12569 0094 4364 str r3, [r0, #68] 4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12570 .loc 1 4899 5 is_stmt 1 view .LVU4227 12571 0096 2021 movs r1, #32 12572 .LVL835: 4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12573 .loc 1 4899 5 is_stmt 0 view .LVU4228 12574 0098 FFF7FEFF bl I2C_Enable_IRQ 12575 .LVL836: 4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12576 .loc 1 4902 5 is_stmt 1 view .LVU4229 ARM GAS /tmp/ccEimIdZ.s page 408 12577 009c 2046 mov r0, r4 12578 009e FFF7FEFF bl I2C_Flush_TXDR 12579 .LVL837: 12580 .L777: 4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12581 .loc 1 4999 3 view .LVU4230 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12582 .loc 1 5002 3 view .LVU4231 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12583 .loc 1 5002 3 view .LVU4232 12584 00a2 0020 movs r0, #0 12585 00a4 84F84000 strb r0, [r4, #64] 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12586 .loc 1 5002 3 view .LVU4233 5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12587 .loc 1 5004 3 view .LVU4234 5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12588 .loc 1 5005 1 is_stmt 0 view .LVU4235 12589 00a8 02B0 add sp, sp, #8 12590 .LCFI134: 12591 .cfi_remember_state 12592 .cfi_def_cfa_offset 8 12593 @ sp needed 12594 00aa 10BD pop {r4, pc} 12595 .LVL838: 12596 .L780: 12597 .LCFI135: 12598 .cfi_restore_state 4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12599 .loc 1 4922 9 is_stmt 1 view .LVU4236 4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12600 .loc 1 4922 30 is_stmt 0 view .LVU4237 12601 00ac 638D ldrh r3, [r4, #42] 4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12602 .loc 1 4922 24 view .LVU4238 12603 00ae 2385 strh r3, [r4, #40] @ movhi 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12604 .loc 1 4923 9 is_stmt 1 view .LVU4239 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12605 .loc 1 4923 17 is_stmt 0 view .LVU4240 12606 00b0 E36A ldr r3, [r4, #44] 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12607 .loc 1 4923 12 view .LVU4241 12608 00b2 13F5803F cmn r3, #65536 12609 00b6 01D0 beq .L788 4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12610 .loc 1 4925 11 is_stmt 1 view .LVU4242 4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12611 .loc 1 4925 20 is_stmt 0 view .LVU4243 12612 00b8 E36A ldr r3, [r4, #44] 12613 .LVL839: 4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12614 .loc 1 4925 20 view .LVU4244 12615 00ba CDE7 b .L781 12616 .LVL840: 12617 .L788: 4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS /tmp/ccEimIdZ.s page 409 12618 .loc 1 4929 20 view .LVU4245 12619 00bc 4FF00073 mov r3, #33554432 12620 00c0 CAE7 b .L781 12621 .LVL841: 12622 .L794: 4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12623 .loc 1 4942 9 is_stmt 1 view .LVU4246 4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12624 .loc 1 4942 13 is_stmt 0 view .LVU4247 12625 00c2 2268 ldr r2, [r4] 4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12626 .loc 1 4942 29 view .LVU4248 12627 00c4 1368 ldr r3, [r2] 12628 00c6 43F40043 orr r3, r3, #32768 12629 00ca 1360 str r3, [r2] 12630 00cc E9E7 b .L777 12631 .LVL842: 12632 .L779: 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12633 .loc 1 4952 7 is_stmt 1 view .LVU4249 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12634 .loc 1 4952 11 is_stmt 0 view .LVU4250 12635 00ce 2368 ldr r3, [r4] 12636 00d0 5B68 ldr r3, [r3, #4] 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12637 .loc 1 4952 10 view .LVU4251 12638 00d2 13F0007F tst r3, #33554432 12639 00d6 03D1 bne .L783 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12640 .loc 1 4955 9 is_stmt 1 view .LVU4252 12641 00d8 2046 mov r0, r4 12642 .LVL843: 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12643 .loc 1 4955 9 is_stmt 0 view .LVU4253 12644 00da FFF7FEFF bl I2C_ITMasterSeqCplt 12645 .LVL844: 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12646 .loc 1 4955 9 view .LVU4254 12647 00de E0E7 b .L777 12648 .LVL845: 12649 .L783: 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12650 .loc 1 4961 9 is_stmt 1 view .LVU4255 12651 00e0 4021 movs r1, #64 12652 .LVL846: 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12653 .loc 1 4961 9 is_stmt 0 view .LVU4256 12654 00e2 2046 mov r0, r4 12655 .LVL847: 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12656 .loc 1 4961 9 view .LVU4257 12657 00e4 FFF7FEFF bl I2C_ITError 12658 .LVL848: 12659 00e8 DBE7 b .L777 12660 .LVL849: 12661 .L778: 4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 410 12662 .loc 1 4965 8 is_stmt 1 view .LVU4258 4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12663 .loc 1 4965 11 is_stmt 0 view .LVU4259 12664 00ea 11F0400F tst r1, #64 12665 00ee 1CD0 beq .L784 4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12666 .loc 1 4965 60 discriminator 1 view .LVU4260 12667 00f0 12F0400F tst r2, #64 12668 00f4 19D0 beq .L784 4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12669 .loc 1 4967 5 is_stmt 1 view .LVU4261 4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12670 .loc 1 4967 13 is_stmt 0 view .LVU4262 12671 00f6 638D ldrh r3, [r4, #42] 12672 00f8 9BB2 uxth r3, r3 4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12673 .loc 1 4967 8 view .LVU4263 12674 00fa 8BB9 cbnz r3, .L785 4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12675 .loc 1 4969 7 is_stmt 1 view .LVU4264 4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12676 .loc 1 4969 11 is_stmt 0 view .LVU4265 12677 00fc 2368 ldr r3, [r4] 12678 00fe 5A68 ldr r2, [r3, #4] 12679 .LVL850: 4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12680 .loc 1 4969 10 view .LVU4266 12681 0100 12F0007F tst r2, #33554432 12682 0104 CDD1 bne .L777 4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12683 .loc 1 4972 9 is_stmt 1 view .LVU4267 4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12684 .loc 1 4972 17 is_stmt 0 view .LVU4268 12685 0106 E26A ldr r2, [r4, #44] 4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12686 .loc 1 4972 12 view .LVU4269 12687 0108 12F5803F cmn r2, #65536 12688 010c 04D1 bne .L786 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12689 .loc 1 4975 11 is_stmt 1 view .LVU4270 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12690 .loc 1 4975 31 is_stmt 0 view .LVU4271 12691 010e 5A68 ldr r2, [r3, #4] 12692 0110 42F48042 orr r2, r2, #16384 12693 0114 5A60 str r2, [r3, #4] 12694 0116 C4E7 b .L777 12695 .L786: 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12696 .loc 1 4980 11 is_stmt 1 view .LVU4272 12697 0118 2046 mov r0, r4 12698 .LVL851: 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12699 .loc 1 4980 11 is_stmt 0 view .LVU4273 12700 011a FFF7FEFF bl I2C_ITMasterSeqCplt 12701 .LVL852: 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12702 .loc 1 4980 11 view .LVU4274 ARM GAS /tmp/ccEimIdZ.s page 411 12703 011e C0E7 b .L777 12704 .LVL853: 12705 .L785: 4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12706 .loc 1 4988 7 is_stmt 1 view .LVU4275 12707 0120 4021 movs r1, #64 12708 .LVL854: 4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12709 .loc 1 4988 7 is_stmt 0 view .LVU4276 12710 0122 2046 mov r0, r4 12711 .LVL855: 4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12712 .loc 1 4988 7 view .LVU4277 12713 0124 FFF7FEFF bl I2C_ITError 12714 .LVL856: 4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12715 .loc 1 4988 7 view .LVU4278 12716 0128 BBE7 b .L777 12717 .LVL857: 12718 .L784: 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12719 .loc 1 4991 8 is_stmt 1 view .LVU4279 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12720 .loc 1 4991 11 is_stmt 0 view .LVU4280 12721 012a 11F0200F tst r1, #32 12722 012e B8D0 beq .L777 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12723 .loc 1 4991 63 discriminator 1 view .LVU4281 12724 0130 12F0200F tst r2, #32 12725 0134 B5D0 beq .L777 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12726 .loc 1 4994 5 is_stmt 1 view .LVU4282 12727 0136 2046 mov r0, r4 12728 .LVL858: 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12729 .loc 1 4994 5 is_stmt 0 view .LVU4283 12730 0138 FFF7FEFF bl I2C_ITMasterCplt 12731 .LVL859: 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12732 .loc 1 4994 5 view .LVU4284 12733 013c B1E7 b .L777 12734 .LVL860: 12735 .L787: 12736 .LCFI136: 12737 .cfi_def_cfa_offset 0 12738 .cfi_restore 4 12739 .cfi_restore 14 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12740 .loc 1 4886 3 view .LVU4285 12741 013e 0220 movs r0, #2 12742 .LVL861: 5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12743 .loc 1 5005 1 view .LVU4286 12744 0140 7047 bx lr 12745 .cfi_endproc 12746 .LFE192: 12748 .section .text.I2C_DMAError,"ax",%progbits ARM GAS /tmp/ccEimIdZ.s page 412 12749 .align 1 12750 .syntax unified 12751 .thumb 12752 .thumb_func 12753 .fpu fpv5-d16 12755 I2C_DMAError: 12756 .LVL862: 12757 .LFB209: 6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 12758 .loc 1 6149 1 is_stmt 1 view -0 12759 .cfi_startproc 12760 @ args = 0, pretend = 0, frame = 0 12761 @ frame_needed = 0, uses_anonymous_args = 0 6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 12762 .loc 1 6149 1 is_stmt 0 view .LVU4288 12763 0000 38B5 push {r3, r4, r5, lr} 12764 .LCFI137: 12765 .cfi_def_cfa_offset 16 12766 .cfi_offset 3, -16 12767 .cfi_offset 4, -12 12768 .cfi_offset 5, -8 12769 .cfi_offset 14, -4 6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 12770 .loc 1 6150 3 is_stmt 1 view .LVU4289 12771 .LVL863: 6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12772 .loc 1 6151 3 view .LVU4290 6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12773 .loc 1 6151 22 is_stmt 0 view .LVU4291 12774 0002 846B ldr r4, [r0, #56] 12775 .LVL864: 6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12776 .loc 1 6153 3 is_stmt 1 view .LVU4292 6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12777 .loc 1 6153 11 is_stmt 0 view .LVU4293 12778 0004 A36B ldr r3, [r4, #56] 6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12779 .loc 1 6153 6 view .LVU4294 12780 0006 002B cmp r3, #0 12781 0008 77D0 beq .L805 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12782 .loc 1 6155 5 is_stmt 1 view .LVU4295 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12783 .loc 1 6155 9 is_stmt 0 view .LVU4296 12784 000a 1B68 ldr r3, [r3] 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12785 .loc 1 6155 45 view .LVU4297 12786 000c 4849 ldr r1, .L810 12787 000e 494A ldr r2, .L810+4 12788 0010 9342 cmp r3, r2 12789 0012 18BF it ne 12790 0014 8B42 cmpne r3, r1 12791 0016 2FD0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12792 .loc 1 6155 9 discriminator 2 view .LVU4298 12793 0018 1832 adds r2, r2, #24 12794 001a 9342 cmp r3, r2 ARM GAS /tmp/ccEimIdZ.s page 413 12795 001c 2CD0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12796 .loc 1 6155 9 discriminator 4 view .LVU4299 12797 001e 1832 adds r2, r2, #24 12798 0020 9342 cmp r3, r2 12799 0022 29D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12800 .loc 1 6155 9 discriminator 6 view .LVU4300 12801 0024 1832 adds r2, r2, #24 12802 0026 9342 cmp r3, r2 12803 0028 26D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12804 .loc 1 6155 9 discriminator 8 view .LVU4301 12805 002a 1832 adds r2, r2, #24 12806 002c 9342 cmp r3, r2 12807 002e 23D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12808 .loc 1 6155 9 discriminator 10 view .LVU4302 12809 0030 1832 adds r2, r2, #24 12810 0032 9342 cmp r3, r2 12811 0034 20D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12812 .loc 1 6155 9 discriminator 12 view .LVU4303 12813 0036 1832 adds r2, r2, #24 12814 0038 9342 cmp r3, r2 12815 003a 1DD0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12816 .loc 1 6155 9 discriminator 14 view .LVU4304 12817 003c 02F55672 add r2, r2, #856 12818 0040 9342 cmp r3, r2 12819 0042 19D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12820 .loc 1 6155 9 discriminator 16 view .LVU4305 12821 0044 1832 adds r2, r2, #24 12822 0046 9342 cmp r3, r2 12823 0048 16D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12824 .loc 1 6155 9 discriminator 18 view .LVU4306 12825 004a 1832 adds r2, r2, #24 12826 004c 9342 cmp r3, r2 12827 004e 13D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12828 .loc 1 6155 9 discriminator 20 view .LVU4307 12829 0050 1832 adds r2, r2, #24 12830 0052 9342 cmp r3, r2 12831 0054 10D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12832 .loc 1 6155 9 discriminator 22 view .LVU4308 12833 0056 1832 adds r2, r2, #24 12834 0058 9342 cmp r3, r2 12835 005a 0DD0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12836 .loc 1 6155 9 discriminator 24 view .LVU4309 12837 005c 1832 adds r2, r2, #24 12838 005e 9342 cmp r3, r2 12839 0060 0AD0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 414 12840 .loc 1 6155 9 discriminator 26 view .LVU4310 12841 0062 1832 adds r2, r2, #24 12842 0064 9342 cmp r3, r2 12843 0066 07D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12844 .loc 1 6155 9 discriminator 28 view .LVU4311 12845 0068 1832 adds r2, r2, #24 12846 006a 9342 cmp r3, r2 12847 006c 04D0 beq .L797 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12848 .loc 1 6155 9 discriminator 30 view .LVU4312 12849 006e 5B68 ldr r3, [r3, #4] 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12850 .loc 1 6155 45 discriminator 30 view .LVU4313 12851 0070 B3FA83F3 clz r3, r3 12852 0074 5B09 lsrs r3, r3, #5 12853 0076 03E0 b .L799 12854 .L797: 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12855 .loc 1 6155 9 discriminator 29 view .LVU4314 12856 0078 5B68 ldr r3, [r3, #4] 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12857 .loc 1 6155 45 discriminator 29 view .LVU4315 12858 007a B3FA83F3 clz r3, r3 12859 007e 5B09 lsrs r3, r3, #5 12860 .L799: 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12861 .loc 1 6155 8 discriminator 32 view .LVU4316 12862 0080 002B cmp r3, #0 12863 0082 3CD1 bne .L806 6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 12864 .loc 1 6150 12 view .LVU4317 12865 0084 0025 movs r5, #0 12866 .L796: 12867 .LVL865: 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12868 .loc 1 6161 3 is_stmt 1 view .LVU4318 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12869 .loc 1 6161 11 is_stmt 0 view .LVU4319 12870 0086 E36B ldr r3, [r4, #60] 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12871 .loc 1 6161 6 view .LVU4320 12872 0088 002B cmp r3, #0 12873 008a 40D0 beq .L800 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12874 .loc 1 6163 5 is_stmt 1 view .LVU4321 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12875 .loc 1 6163 9 is_stmt 0 view .LVU4322 12876 008c 1B68 ldr r3, [r3] 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12877 .loc 1 6163 45 view .LVU4323 12878 008e 2849 ldr r1, .L810 12879 0090 284A ldr r2, .L810+4 12880 0092 9342 cmp r3, r2 12881 0094 18BF it ne 12882 0096 8B42 cmpne r3, r1 12883 0098 33D0 beq .L801 ARM GAS /tmp/ccEimIdZ.s page 415 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12884 .loc 1 6163 9 discriminator 2 view .LVU4324 12885 009a 1832 adds r2, r2, #24 12886 009c 9342 cmp r3, r2 12887 009e 30D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12888 .loc 1 6163 9 discriminator 4 view .LVU4325 12889 00a0 1832 adds r2, r2, #24 12890 00a2 9342 cmp r3, r2 12891 00a4 2DD0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12892 .loc 1 6163 9 discriminator 6 view .LVU4326 12893 00a6 1832 adds r2, r2, #24 12894 00a8 9342 cmp r3, r2 12895 00aa 2AD0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12896 .loc 1 6163 9 discriminator 8 view .LVU4327 12897 00ac 1832 adds r2, r2, #24 12898 00ae 9342 cmp r3, r2 12899 00b0 27D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12900 .loc 1 6163 9 discriminator 10 view .LVU4328 12901 00b2 1832 adds r2, r2, #24 12902 00b4 9342 cmp r3, r2 12903 00b6 24D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12904 .loc 1 6163 9 discriminator 12 view .LVU4329 12905 00b8 1832 adds r2, r2, #24 12906 00ba 9342 cmp r3, r2 12907 00bc 21D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12908 .loc 1 6163 9 discriminator 14 view .LVU4330 12909 00be 02F55672 add r2, r2, #856 12910 00c2 9342 cmp r3, r2 12911 00c4 1DD0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12912 .loc 1 6163 9 discriminator 16 view .LVU4331 12913 00c6 1832 adds r2, r2, #24 12914 00c8 9342 cmp r3, r2 12915 00ca 1AD0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12916 .loc 1 6163 9 discriminator 18 view .LVU4332 12917 00cc 1832 adds r2, r2, #24 12918 00ce 9342 cmp r3, r2 12919 00d0 17D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12920 .loc 1 6163 9 discriminator 20 view .LVU4333 12921 00d2 1832 adds r2, r2, #24 12922 00d4 9342 cmp r3, r2 12923 00d6 14D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12924 .loc 1 6163 9 discriminator 22 view .LVU4334 12925 00d8 1832 adds r2, r2, #24 12926 00da 9342 cmp r3, r2 12927 00dc 11D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12928 .loc 1 6163 9 discriminator 24 view .LVU4335 ARM GAS /tmp/ccEimIdZ.s page 416 12929 00de 1832 adds r2, r2, #24 12930 00e0 9342 cmp r3, r2 12931 00e2 0ED0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12932 .loc 1 6163 9 discriminator 26 view .LVU4336 12933 00e4 1832 adds r2, r2, #24 12934 00e6 9342 cmp r3, r2 12935 00e8 0BD0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12936 .loc 1 6163 9 discriminator 28 view .LVU4337 12937 00ea 1832 adds r2, r2, #24 12938 00ec 9342 cmp r3, r2 12939 00ee 08D0 beq .L801 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12940 .loc 1 6163 9 discriminator 30 view .LVU4338 12941 00f0 5B68 ldr r3, [r3, #4] 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12942 .loc 1 6163 45 discriminator 30 view .LVU4339 12943 00f2 B3FA83F3 clz r3, r3 12944 00f6 5B09 lsrs r3, r3, #5 12945 00f8 07E0 b .L803 12946 .LVL866: 12947 .L805: 6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 12948 .loc 1 6150 12 view .LVU4340 12949 00fa 0025 movs r5, #0 12950 00fc C3E7 b .L796 12951 .L806: 6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12952 .loc 1 6157 21 view .LVU4341 12953 00fe 0125 movs r5, #1 12954 0100 C1E7 b .L796 12955 .LVL867: 12956 .L801: 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12957 .loc 1 6163 9 discriminator 29 view .LVU4342 12958 0102 5B68 ldr r3, [r3, #4] 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12959 .loc 1 6163 45 discriminator 29 view .LVU4343 12960 0104 B3FA83F3 clz r3, r3 12961 0108 5B09 lsrs r3, r3, #5 12962 .L803: 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12963 .loc 1 6163 8 discriminator 32 view .LVU4344 12964 010a 03B1 cbz r3, .L800 6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12965 .loc 1 6165 21 view .LVU4345 12966 010c 0125 movs r5, #1 12967 .LVL868: 12968 .L800: 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12969 .loc 1 6170 3 is_stmt 1 view .LVU4346 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12970 .loc 1 6170 10 is_stmt 0 view .LVU4347 12971 010e FFF7FEFF bl HAL_DMA_GetError 12972 .LVL869: 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 417 12973 .loc 1 6170 6 view .LVU4348 12974 0112 0228 cmp r0, #2 12975 0114 00D0 beq .L795 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12976 .loc 1 6170 55 discriminator 1 view .LVU4349 12977 0116 05B9 cbnz r5, .L809 12978 .L795: 6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12979 .loc 1 6178 1 view .LVU4350 12980 0118 38BD pop {r3, r4, r5, pc} 12981 .LVL870: 12982 .L809: 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12983 .loc 1 6173 5 is_stmt 1 view .LVU4351 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12984 .loc 1 6173 9 is_stmt 0 view .LVU4352 12985 011a 2268 ldr r2, [r4] 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12986 .loc 1 6173 25 view .LVU4353 12987 011c 5368 ldr r3, [r2, #4] 12988 011e 43F40043 orr r3, r3, #32768 12989 0122 5360 str r3, [r2, #4] 6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12990 .loc 1 6176 5 is_stmt 1 view .LVU4354 12991 0124 1021 movs r1, #16 12992 0126 2046 mov r0, r4 12993 0128 FFF7FEFF bl I2C_ITError 12994 .LVL871: 6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12995 .loc 1 6178 1 is_stmt 0 view .LVU4355 12996 012c F4E7 b .L795 12997 .L811: 12998 012e 00BF .align 2 12999 .L810: 13000 0130 10000240 .word 1073872912 13001 0134 28000240 .word 1073872936 13002 .cfi_endproc 13003 .LFE209: 13005 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 13006 .align 1 13007 .syntax unified 13008 .thumb 13009 .thumb_func 13010 .fpu fpv5-d16 13012 I2C_DMAMasterTransmitCplt: 13013 .LVL872: 13014 .LFB205: 5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 13015 .loc 1 5999 1 is_stmt 1 view -0 13016 .cfi_startproc 13017 @ args = 0, pretend = 0, frame = 0 13018 @ frame_needed = 0, uses_anonymous_args = 0 5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 13019 .loc 1 5999 1 is_stmt 0 view .LVU4357 13020 0000 10B5 push {r4, lr} 13021 .LCFI138: 13022 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccEimIdZ.s page 418 13023 .cfi_offset 4, -8 13024 .cfi_offset 14, -4 6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13025 .loc 1 6000 3 is_stmt 1 view .LVU4358 6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13026 .loc 1 6000 22 is_stmt 0 view .LVU4359 13027 0002 846B ldr r4, [r0, #56] 13028 .LVL873: 6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13029 .loc 1 6003 3 is_stmt 1 view .LVU4360 6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13030 .loc 1 6003 7 is_stmt 0 view .LVU4361 13031 0004 2268 ldr r2, [r4] 6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13032 .loc 1 6003 23 view .LVU4362 13033 0006 1368 ldr r3, [r2] 13034 0008 23F48043 bic r3, r3, #16384 13035 000c 1360 str r3, [r2] 6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13036 .loc 1 6006 3 is_stmt 1 view .LVU4363 6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13037 .loc 1 6006 11 is_stmt 0 view .LVU4364 13038 000e 638D ldrh r3, [r4, #42] 13039 0010 9BB2 uxth r3, r3 6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13040 .loc 1 6006 6 view .LVU4365 13041 0012 ABB1 cbz r3, .L819 6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13042 .loc 1 6015 5 is_stmt 1 view .LVU4366 6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13043 .loc 1 6015 27 is_stmt 0 view .LVU4367 13044 0014 238D ldrh r3, [r4, #40] 6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13045 .loc 1 6015 20 view .LVU4368 13046 0016 616A ldr r1, [r4, #36] 13047 0018 1944 add r1, r1, r3 13048 001a 6162 str r1, [r4, #36] 6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13049 .loc 1 6018 5 is_stmt 1 view .LVU4369 6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13050 .loc 1 6018 13 is_stmt 0 view .LVU4370 13051 001c 638D ldrh r3, [r4, #42] 13052 001e 9BB2 uxth r3, r3 6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13053 .loc 1 6018 8 view .LVU4371 13054 0020 FF2B cmp r3, #255 13055 0022 12D9 bls .L815 6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13056 .loc 1 6020 7 is_stmt 1 view .LVU4372 6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13057 .loc 1 6020 22 is_stmt 0 view .LVU4373 13058 0024 FF23 movs r3, #255 13059 0026 2385 strh r3, [r4, #40] @ movhi 13060 .L816: 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13061 .loc 1 6028 5 is_stmt 1 view .LVU4374 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 419 13062 .loc 1 6028 81 is_stmt 0 view .LVU4375 13063 0028 2268 ldr r2, [r4] 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13064 .loc 1 6028 9 view .LVU4376 13065 002a 238D ldrh r3, [r4, #40] 13066 002c 2832 adds r2, r2, #40 13067 002e A06B ldr r0, [r4, #56] 13068 .LVL874: 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13069 .loc 1 6028 9 view .LVU4377 13070 0030 FFF7FEFF bl HAL_DMA_Start_IT 13071 .LVL875: 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13072 .loc 1 6028 8 view .LVU4378 13073 0034 60B1 cbz r0, .L817 6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13074 .loc 1 6031 7 is_stmt 1 view .LVU4379 13075 0036 1021 movs r1, #16 13076 0038 2046 mov r0, r4 13077 003a FFF7FEFF bl I2C_ITError 13078 .LVL876: 13079 .L812: 6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13080 .loc 1 6039 1 is_stmt 0 view .LVU4380 13081 003e 10BD pop {r4, pc} 13082 .LVL877: 13083 .L819: 6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13084 .loc 1 6009 5 is_stmt 1 view .LVU4381 13085 0040 2021 movs r1, #32 13086 0042 2046 mov r0, r4 13087 .LVL878: 6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13088 .loc 1 6009 5 is_stmt 0 view .LVU4382 13089 0044 FFF7FEFF bl I2C_Enable_IRQ 13090 .LVL879: 13091 0048 F9E7 b .L812 13092 .LVL880: 13093 .L815: 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13094 .loc 1 6024 7 is_stmt 1 view .LVU4383 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13095 .loc 1 6024 28 is_stmt 0 view .LVU4384 13096 004a 638D ldrh r3, [r4, #42] 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13097 .loc 1 6024 22 view .LVU4385 13098 004c 2385 strh r3, [r4, #40] @ movhi 13099 004e EBE7 b .L816 13100 .LVL881: 13101 .L817: 6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13102 .loc 1 6036 7 is_stmt 1 view .LVU4386 13103 0050 4021 movs r1, #64 13104 0052 2046 mov r0, r4 13105 0054 FFF7FEFF bl I2C_Enable_IRQ 13106 .LVL882: 6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS /tmp/ccEimIdZ.s page 420 13107 .loc 1 6039 1 is_stmt 0 view .LVU4387 13108 0058 F1E7 b .L812 13109 .cfi_endproc 13110 .LFE205: 13112 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 13113 .align 1 13114 .syntax unified 13115 .thumb 13116 .thumb_func 13117 .fpu fpv5-d16 13119 I2C_DMAMasterReceiveCplt: 13120 .LVL883: 13121 .LFB207: 6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 13122 .loc 1 6074 1 is_stmt 1 view -0 13123 .cfi_startproc 13124 @ args = 0, pretend = 0, frame = 0 13125 @ frame_needed = 0, uses_anonymous_args = 0 6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 13126 .loc 1 6074 1 is_stmt 0 view .LVU4389 13127 0000 10B5 push {r4, lr} 13128 .LCFI139: 13129 .cfi_def_cfa_offset 8 13130 .cfi_offset 4, -8 13131 .cfi_offset 14, -4 6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13132 .loc 1 6075 3 is_stmt 1 view .LVU4390 6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13133 .loc 1 6075 22 is_stmt 0 view .LVU4391 13134 0002 846B ldr r4, [r0, #56] 13135 .LVL884: 6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13136 .loc 1 6078 3 is_stmt 1 view .LVU4392 6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13137 .loc 1 6078 7 is_stmt 0 view .LVU4393 13138 0004 2268 ldr r2, [r4] 6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13139 .loc 1 6078 23 view .LVU4394 13140 0006 1368 ldr r3, [r2] 13141 0008 23F40043 bic r3, r3, #32768 13142 000c 1360 str r3, [r2] 6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13143 .loc 1 6081 3 is_stmt 1 view .LVU4395 6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13144 .loc 1 6081 11 is_stmt 0 view .LVU4396 13145 000e 638D ldrh r3, [r4, #42] 13146 0010 9BB2 uxth r3, r3 6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13147 .loc 1 6081 6 view .LVU4397 13148 0012 ABB1 cbz r3, .L827 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13149 .loc 1 6090 5 is_stmt 1 view .LVU4398 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13150 .loc 1 6090 27 is_stmt 0 view .LVU4399 13151 0014 238D ldrh r3, [r4, #40] 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13152 .loc 1 6090 20 view .LVU4400 ARM GAS /tmp/ccEimIdZ.s page 421 13153 0016 626A ldr r2, [r4, #36] 13154 0018 1A44 add r2, r2, r3 13155 001a 6262 str r2, [r4, #36] 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13156 .loc 1 6093 5 is_stmt 1 view .LVU4401 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13157 .loc 1 6093 13 is_stmt 0 view .LVU4402 13158 001c 638D ldrh r3, [r4, #42] 13159 001e 9BB2 uxth r3, r3 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13160 .loc 1 6093 8 view .LVU4403 13161 0020 FF2B cmp r3, #255 13162 0022 12D9 bls .L823 6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13163 .loc 1 6095 7 is_stmt 1 view .LVU4404 6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13164 .loc 1 6095 22 is_stmt 0 view .LVU4405 13165 0024 FF23 movs r3, #255 13166 0026 2385 strh r3, [r4, #40] @ movhi 13167 .L824: 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13168 .loc 1 6103 5 is_stmt 1 view .LVU4406 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13169 .loc 1 6103 55 is_stmt 0 view .LVU4407 13170 0028 2168 ldr r1, [r4] 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13171 .loc 1 6103 9 view .LVU4408 13172 002a 238D ldrh r3, [r4, #40] 13173 002c 2431 adds r1, r1, #36 13174 002e E06B ldr r0, [r4, #60] 13175 .LVL885: 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13176 .loc 1 6103 9 view .LVU4409 13177 0030 FFF7FEFF bl HAL_DMA_Start_IT 13178 .LVL886: 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13179 .loc 1 6103 8 view .LVU4410 13180 0034 60B1 cbz r0, .L825 6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13181 .loc 1 6106 7 is_stmt 1 view .LVU4411 13182 0036 1021 movs r1, #16 13183 0038 2046 mov r0, r4 13184 003a FFF7FEFF bl I2C_ITError 13185 .LVL887: 13186 .L820: 6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13187 .loc 1 6114 1 is_stmt 0 view .LVU4412 13188 003e 10BD pop {r4, pc} 13189 .LVL888: 13190 .L827: 6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13191 .loc 1 6084 5 is_stmt 1 view .LVU4413 13192 0040 2021 movs r1, #32 13193 0042 2046 mov r0, r4 13194 .LVL889: 6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13195 .loc 1 6084 5 is_stmt 0 view .LVU4414 ARM GAS /tmp/ccEimIdZ.s page 422 13196 0044 FFF7FEFF bl I2C_Enable_IRQ 13197 .LVL890: 13198 0048 F9E7 b .L820 13199 .LVL891: 13200 .L823: 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13201 .loc 1 6099 7 is_stmt 1 view .LVU4415 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13202 .loc 1 6099 28 is_stmt 0 view .LVU4416 13203 004a 638D ldrh r3, [r4, #42] 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13204 .loc 1 6099 22 view .LVU4417 13205 004c 2385 strh r3, [r4, #40] @ movhi 13206 004e EBE7 b .L824 13207 .LVL892: 13208 .L825: 6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13209 .loc 1 6111 7 is_stmt 1 view .LVU4418 13210 0050 4021 movs r1, #64 13211 0052 2046 mov r0, r4 13212 0054 FFF7FEFF bl I2C_Enable_IRQ 13213 .LVL893: 6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13214 .loc 1 6114 1 is_stmt 0 view .LVU4419 13215 0058 F1E7 b .L820 13216 .cfi_endproc 13217 .LFE207: 13219 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 13220 .align 1 13221 .global HAL_I2C_ER_IRQHandler 13222 .syntax unified 13223 .thumb 13224 .thumb_func 13225 .fpu fpv5-d16 13227 HAL_I2C_ER_IRQHandler: 13228 .LVL894: 13229 .LFB176: 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 13230 .loc 1 4332 1 is_stmt 1 view -0 13231 .cfi_startproc 13232 @ args = 0, pretend = 0, frame = 0 13233 @ frame_needed = 0, uses_anonymous_args = 0 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 13234 .loc 1 4332 1 is_stmt 0 view .LVU4421 13235 0000 10B5 push {r4, lr} 13236 .LCFI140: 13237 .cfi_def_cfa_offset 8 13238 .cfi_offset 4, -8 13239 .cfi_offset 14, -4 4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 13240 .loc 1 4333 3 is_stmt 1 view .LVU4422 4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 13241 .loc 1 4333 24 is_stmt 0 view .LVU4423 13242 0002 0268 ldr r2, [r0] 4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 13243 .loc 1 4333 12 view .LVU4424 13244 0004 9369 ldr r3, [r2, #24] ARM GAS /tmp/ccEimIdZ.s page 423 13245 .LVL895: 4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 13246 .loc 1 4334 3 is_stmt 1 view .LVU4425 4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 13247 .loc 1 4334 12 is_stmt 0 view .LVU4426 13248 0006 1168 ldr r1, [r2] 13249 .LVL896: 4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13250 .loc 1 4335 3 is_stmt 1 view .LVU4427 4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13251 .loc 1 4338 3 view .LVU4428 4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13252 .loc 1 4338 6 is_stmt 0 view .LVU4429 13253 0008 13F4807F tst r3, #256 13254 000c 09D0 beq .L829 4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13255 .loc 1 4338 57 discriminator 1 view .LVU4430 13256 000e 11F0800F tst r1, #128 13257 0012 06D0 beq .L829 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13258 .loc 1 4340 5 is_stmt 1 view .LVU4431 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13259 .loc 1 4340 21 is_stmt 0 view .LVU4432 13260 0014 446C ldr r4, [r0, #68] 13261 0016 44F00104 orr r4, r4, #1 13262 001a 4464 str r4, [r0, #68] 4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13263 .loc 1 4343 5 is_stmt 1 view .LVU4433 13264 001c 4FF48074 mov r4, #256 13265 0020 D461 str r4, [r2, #28] 13266 .L829: 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13267 .loc 1 4347 3 view .LVU4434 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13268 .loc 1 4347 6 is_stmt 0 view .LVU4435 13269 0022 13F4806F tst r3, #1024 13270 0026 0AD0 beq .L830 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13271 .loc 1 4347 56 discriminator 1 view .LVU4436 13272 0028 11F0800F tst r1, #128 13273 002c 07D0 beq .L830 4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13274 .loc 1 4349 5 is_stmt 1 view .LVU4437 4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13275 .loc 1 4349 21 is_stmt 0 view .LVU4438 13276 002e 426C ldr r2, [r0, #68] 13277 0030 42F00802 orr r2, r2, #8 13278 0034 4264 str r2, [r0, #68] 4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13279 .loc 1 4352 5 is_stmt 1 view .LVU4439 13280 0036 0268 ldr r2, [r0] 13281 0038 4FF48064 mov r4, #1024 13282 003c D461 str r4, [r2, #28] 13283 .L830: 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13284 .loc 1 4356 3 view .LVU4440 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS /tmp/ccEimIdZ.s page 424 13285 .loc 1 4356 6 is_stmt 0 view .LVU4441 13286 003e 13F4007F tst r3, #512 13287 0042 0AD0 beq .L831 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13288 .loc 1 4356 57 discriminator 1 view .LVU4442 13289 0044 11F0800F tst r1, #128 13290 0048 07D0 beq .L831 4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13291 .loc 1 4358 5 is_stmt 1 view .LVU4443 4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13292 .loc 1 4358 21 is_stmt 0 view .LVU4444 13293 004a 436C ldr r3, [r0, #68] 13294 .LVL897: 4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13295 .loc 1 4358 21 view .LVU4445 13296 004c 43F00203 orr r3, r3, #2 13297 0050 4364 str r3, [r0, #68] 4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13298 .loc 1 4361 5 is_stmt 1 view .LVU4446 13299 0052 0368 ldr r3, [r0] 13300 0054 4FF40072 mov r2, #512 13301 0058 DA61 str r2, [r3, #28] 13302 .L831: 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13303 .loc 1 4365 3 view .LVU4447 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13304 .loc 1 4365 12 is_stmt 0 view .LVU4448 13305 005a 416C ldr r1, [r0, #68] 13306 .LVL898: 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13307 .loc 1 4368 3 is_stmt 1 view .LVU4449 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13308 .loc 1 4368 6 is_stmt 0 view .LVU4450 13309 005c 11F00B0F tst r1, #11 13310 0060 00D1 bne .L834 13311 .LVL899: 13312 .L828: 4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13313 .loc 1 4372 1 view .LVU4451 13314 0062 10BD pop {r4, pc} 13315 .LVL900: 13316 .L834: 4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13317 .loc 1 4370 5 is_stmt 1 view .LVU4452 13318 0064 FFF7FEFF bl I2C_ITError 13319 .LVL901: 4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13320 .loc 1 4372 1 is_stmt 0 view .LVU4453 13321 0068 FBE7 b .L828 13322 .cfi_endproc 13323 .LFE176: 13325 .section .text.I2C_DMAAbort,"ax",%progbits 13326 .align 1 13327 .syntax unified 13328 .thumb 13329 .thumb_func 13330 .fpu fpv5-d16 ARM GAS /tmp/ccEimIdZ.s page 425 13332 I2C_DMAAbort: 13333 .LVL902: 13334 .LFB210: 6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 13335 .loc 1 6187 1 is_stmt 1 view -0 13336 .cfi_startproc 13337 @ args = 0, pretend = 0, frame = 0 13338 @ frame_needed = 0, uses_anonymous_args = 0 6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 13339 .loc 1 6187 1 is_stmt 0 view .LVU4455 13340 0000 08B5 push {r3, lr} 13341 .LCFI141: 13342 .cfi_def_cfa_offset 8 13343 .cfi_offset 3, -8 13344 .cfi_offset 14, -4 6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13345 .loc 1 6188 3 is_stmt 1 view .LVU4456 6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13346 .loc 1 6188 22 is_stmt 0 view .LVU4457 13347 0002 806B ldr r0, [r0, #56] 13348 .LVL903: 6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13349 .loc 1 6191 3 is_stmt 1 view .LVU4458 6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13350 .loc 1 6191 11 is_stmt 0 view .LVU4459 13351 0004 836B ldr r3, [r0, #56] 6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13352 .loc 1 6191 6 view .LVU4460 13353 0006 0BB1 cbz r3, .L836 6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13354 .loc 1 6193 5 is_stmt 1 view .LVU4461 6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13355 .loc 1 6193 37 is_stmt 0 view .LVU4462 13356 0008 0022 movs r2, #0 13357 000a 1A65 str r2, [r3, #80] 13358 .L836: 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13359 .loc 1 6195 3 is_stmt 1 view .LVU4463 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13360 .loc 1 6195 11 is_stmt 0 view .LVU4464 13361 000c C36B ldr r3, [r0, #60] 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13362 .loc 1 6195 6 view .LVU4465 13363 000e 0BB1 cbz r3, .L837 6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13364 .loc 1 6197 5 is_stmt 1 view .LVU4466 6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13365 .loc 1 6197 37 is_stmt 0 view .LVU4467 13366 0010 0022 movs r2, #0 13367 0012 1A65 str r2, [r3, #80] 13368 .L837: 6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13369 .loc 1 6200 3 is_stmt 1 view .LVU4468 13370 0014 FFF7FEFF bl I2C_TreatErrorCallback 13371 .LVL904: 6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13372 .loc 1 6201 1 is_stmt 0 view .LVU4469 ARM GAS /tmp/ccEimIdZ.s page 426 13373 0018 08BD pop {r3, pc} 13374 .cfi_endproc 13375 .LFE210: 13377 .section .text.HAL_I2C_GetState,"ax",%progbits 13378 .align 1 13379 .global HAL_I2C_GetState 13380 .syntax unified 13381 .thumb 13382 .thumb_func 13383 .fpu fpv5-d16 13385 HAL_I2C_GetState: 13386 .LVL905: 13387 .LFB187: 4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */ 13388 .loc 1 4563 1 is_stmt 1 view -0 13389 .cfi_startproc 13390 @ args = 0, pretend = 0, frame = 0 13391 @ frame_needed = 0, uses_anonymous_args = 0 13392 @ link register save eliminated. 4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13393 .loc 1 4565 3 view .LVU4471 4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13394 .loc 1 4565 14 is_stmt 0 view .LVU4472 13395 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 13396 .LVL906: 4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13397 .loc 1 4566 1 view .LVU4473 13398 0004 7047 bx lr 13399 .cfi_endproc 13400 .LFE187: 13402 .section .text.HAL_I2C_GetMode,"ax",%progbits 13403 .align 1 13404 .global HAL_I2C_GetMode 13405 .syntax unified 13406 .thumb 13407 .thumb_func 13408 .fpu fpv5-d16 13410 HAL_I2C_GetMode: 13411 .LVL907: 13412 .LFB188: 4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode; 13413 .loc 1 4575 1 is_stmt 1 view -0 13414 .cfi_startproc 13415 @ args = 0, pretend = 0, frame = 0 13416 @ frame_needed = 0, uses_anonymous_args = 0 13417 @ link register save eliminated. 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13418 .loc 1 4576 3 view .LVU4475 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13419 .loc 1 4576 14 is_stmt 0 view .LVU4476 13420 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 13421 .LVL908: 4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13422 .loc 1 4577 1 view .LVU4477 13423 0004 7047 bx lr 13424 .cfi_endproc 13425 .LFE188: ARM GAS /tmp/ccEimIdZ.s page 427 13427 .section .text.HAL_I2C_GetError,"ax",%progbits 13428 .align 1 13429 .global HAL_I2C_GetError 13430 .syntax unified 13431 .thumb 13432 .thumb_func 13433 .fpu fpv5-d16 13435 HAL_I2C_GetError: 13436 .LVL909: 13437 .LFB189: 4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode; 13438 .loc 1 4586 1 is_stmt 1 view -0 13439 .cfi_startproc 13440 @ args = 0, pretend = 0, frame = 0 13441 @ frame_needed = 0, uses_anonymous_args = 0 13442 @ link register save eliminated. 4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13443 .loc 1 4587 3 view .LVU4479 4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13444 .loc 1 4587 14 is_stmt 0 view .LVU4480 13445 0000 406C ldr r0, [r0, #68] 13446 .LVL910: 4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13447 .loc 1 4588 1 view .LVU4481 13448 0002 7047 bx lr 13449 .cfi_endproc 13450 .LFE189: 13452 .text 13453 .Letext0: 13454 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h" 13455 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h" 13456 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h" 13457 .file 5 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h" 13458 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h" 13459 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h" 13460 .file 8 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h" 13461 .file 9 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h" ARM GAS /tmp/ccEimIdZ.s page 428 DEFINED SYMBOLS *ABS*:0000000000000000 stm32h7xx_hal_i2c.c /tmp/ccEimIdZ.s:17 .text.I2C_Flush_TXDR:0000000000000000 $t /tmp/ccEimIdZ.s:24 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR /tmp/ccEimIdZ.s:63 .text.I2C_TransferConfig:0000000000000000 $t /tmp/ccEimIdZ.s:69 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig /tmp/ccEimIdZ.s:120 .text.I2C_Enable_IRQ:0000000000000000 $t /tmp/ccEimIdZ.s:126 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ /tmp/ccEimIdZ.s:253 .text.I2C_Enable_IRQ:000000000000006c $d /tmp/ccEimIdZ.s:12440 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA /tmp/ccEimIdZ.s:12002 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA /tmp/ccEimIdZ.s:259 .text.I2C_Disable_IRQ:0000000000000000 $t /tmp/ccEimIdZ.s:265 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ /tmp/ccEimIdZ.s:389 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t /tmp/ccEimIdZ.s:395 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions /tmp/ccEimIdZ.s:436 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t /tmp/ccEimIdZ.s:442 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed /tmp/ccEimIdZ.s:566 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t /tmp/ccEimIdZ.s:572 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccEimIdZ.s:662 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/ccEimIdZ.s:668 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout /tmp/ccEimIdZ.s:753 .text.I2C_RequestMemoryWrite:0000000000000000 $t /tmp/ccEimIdZ.s:759 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite /tmp/ccEimIdZ.s:878 .text.I2C_RequestMemoryWrite:0000000000000078 $d /tmp/ccEimIdZ.s:883 .text.I2C_RequestMemoryRead:0000000000000000 $t /tmp/ccEimIdZ.s:889 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead /tmp/ccEimIdZ.s:1008 .text.I2C_RequestMemoryRead:0000000000000074 $d /tmp/ccEimIdZ.s:1013 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t /tmp/ccEimIdZ.s:1019 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccEimIdZ.s:1105 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t /tmp/ccEimIdZ.s:1111 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccEimIdZ.s:1246 .text.HAL_I2C_MspInit:0000000000000000 $t /tmp/ccEimIdZ.s:1253 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit /tmp/ccEimIdZ.s:1268 .text.HAL_I2C_Init:0000000000000000 $t /tmp/ccEimIdZ.s:1275 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init /tmp/ccEimIdZ.s:1463 .text.HAL_I2C_Init:00000000000000b8 $d /tmp/ccEimIdZ.s:1468 .text.HAL_I2C_MspDeInit:0000000000000000 $t /tmp/ccEimIdZ.s:1475 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit /tmp/ccEimIdZ.s:1490 .text.HAL_I2C_DeInit:0000000000000000 $t /tmp/ccEimIdZ.s:1497 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit /tmp/ccEimIdZ.s:1562 .text.HAL_I2C_Master_Transmit:0000000000000000 $t /tmp/ccEimIdZ.s:1569 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit /tmp/ccEimIdZ.s:1879 .text.HAL_I2C_Master_Transmit:0000000000000178 $d /tmp/ccEimIdZ.s:1884 .text.HAL_I2C_Master_Receive:0000000000000000 $t /tmp/ccEimIdZ.s:1891 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive /tmp/ccEimIdZ.s:2200 .text.HAL_I2C_Master_Receive:0000000000000178 $d /tmp/ccEimIdZ.s:2205 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t /tmp/ccEimIdZ.s:2212 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit /tmp/ccEimIdZ.s:2560 .text.HAL_I2C_Slave_Receive:0000000000000000 $t /tmp/ccEimIdZ.s:2567 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive /tmp/ccEimIdZ.s:2894 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t /tmp/ccEimIdZ.s:2901 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT /tmp/ccEimIdZ.s:3053 .text.HAL_I2C_Master_Transmit_IT:000000000000008c $d /tmp/ccEimIdZ.s:11625 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT /tmp/ccEimIdZ.s:3060 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t /tmp/ccEimIdZ.s:3067 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT /tmp/ccEimIdZ.s:3219 .text.HAL_I2C_Master_Receive_IT:000000000000008c $d ARM GAS /tmp/ccEimIdZ.s page 429 /tmp/ccEimIdZ.s:3226 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t /tmp/ccEimIdZ.s:3233 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT /tmp/ccEimIdZ.s:3335 .text.HAL_I2C_Slave_Transmit_IT:000000000000005c $d /tmp/ccEimIdZ.s:11059 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT /tmp/ccEimIdZ.s:3341 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t /tmp/ccEimIdZ.s:3348 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT /tmp/ccEimIdZ.s:3450 .text.HAL_I2C_Slave_Receive_IT:000000000000005c $d /tmp/ccEimIdZ.s:3456 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:3463 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA /tmp/ccEimIdZ.s:3762 .text.HAL_I2C_Master_Transmit_DMA:000000000000013c $d /tmp/ccEimIdZ.s:13012 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt /tmp/ccEimIdZ.s:12755 .text.I2C_DMAError:0000000000000000 I2C_DMAError /tmp/ccEimIdZ.s:3772 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:3779 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA /tmp/ccEimIdZ.s:4078 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d /tmp/ccEimIdZ.s:13119 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt /tmp/ccEimIdZ.s:4088 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:4095 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccEimIdZ.s:4311 .text.HAL_I2C_Slave_Transmit_DMA:00000000000000e0 $d /tmp/ccEimIdZ.s:9662 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt /tmp/ccEimIdZ.s:4319 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:4326 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA /tmp/ccEimIdZ.s:4544 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d /tmp/ccEimIdZ.s:9720 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt /tmp/ccEimIdZ.s:4552 .text.HAL_I2C_Mem_Write:0000000000000000 $t /tmp/ccEimIdZ.s:4559 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write /tmp/ccEimIdZ.s:4917 .text.HAL_I2C_Mem_Read:0000000000000000 $t /tmp/ccEimIdZ.s:4924 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read /tmp/ccEimIdZ.s:5282 .text.HAL_I2C_Mem_Read:00000000000001ac $d /tmp/ccEimIdZ.s:5287 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t /tmp/ccEimIdZ.s:5294 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT /tmp/ccEimIdZ.s:5502 .text.HAL_I2C_Mem_Write_IT:00000000000000dc $d /tmp/ccEimIdZ.s:5508 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t /tmp/ccEimIdZ.s:5515 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT /tmp/ccEimIdZ.s:5724 .text.HAL_I2C_Mem_Read_IT:00000000000000dc $d /tmp/ccEimIdZ.s:5731 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:5738 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA /tmp/ccEimIdZ.s:6054 .text.HAL_I2C_Mem_Write_DMA:000000000000015c $d /tmp/ccEimIdZ.s:6061 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:6068 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA /tmp/ccEimIdZ.s:6385 .text.HAL_I2C_Mem_Read_DMA:000000000000015c $d /tmp/ccEimIdZ.s:6393 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t /tmp/ccEimIdZ.s:6400 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady /tmp/ccEimIdZ.s:6726 .text.HAL_I2C_IsDeviceReady:0000000000000168 $d /tmp/ccEimIdZ.s:6731 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t /tmp/ccEimIdZ.s:6738 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccEimIdZ.s:6924 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000000000ac $d /tmp/ccEimIdZ.s:6930 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:6937 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccEimIdZ.s:7265 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000160 $d /tmp/ccEimIdZ.s:7274 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t /tmp/ccEimIdZ.s:7281 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccEimIdZ.s:7467 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000ac $d /tmp/ccEimIdZ.s:7473 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:7480 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/ccEimIdZ.s:7808 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000160 $d /tmp/ccEimIdZ.s:7817 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t ARM GAS /tmp/ccEimIdZ.s page 430 /tmp/ccEimIdZ.s:7824 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccEimIdZ.s:8023 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000d4 $d /tmp/ccEimIdZ.s:13332 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort /tmp/ccEimIdZ.s:8029 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:8036 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccEimIdZ.s:8408 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000194 $d /tmp/ccEimIdZ.s:8416 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t /tmp/ccEimIdZ.s:8423 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccEimIdZ.s:8622 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000d4 $d /tmp/ccEimIdZ.s:8628 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:8635 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccEimIdZ.s:9005 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000194 $d /tmp/ccEimIdZ.s:9013 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t /tmp/ccEimIdZ.s:9020 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT /tmp/ccEimIdZ.s:9067 .text.HAL_I2C_EnableListen_IT:0000000000000028 $d /tmp/ccEimIdZ.s:9072 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t /tmp/ccEimIdZ.s:9079 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT /tmp/ccEimIdZ.s:9145 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t /tmp/ccEimIdZ.s:9152 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT /tmp/ccEimIdZ.s:9293 .text.HAL_I2C_Master_Abort_IT:0000000000000080 $d /tmp/ccEimIdZ.s:9298 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t /tmp/ccEimIdZ.s:9305 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler /tmp/ccEimIdZ.s:9343 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:9350 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback /tmp/ccEimIdZ.s:9365 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:9372 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback /tmp/ccEimIdZ.s:9387 .text.I2C_ITMasterSeqCplt:0000000000000000 $t /tmp/ccEimIdZ.s:9393 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt /tmp/ccEimIdZ.s:9478 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:9485 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccEimIdZ.s:9500 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:9507 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccEimIdZ.s:9522 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t /tmp/ccEimIdZ.s:9528 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt /tmp/ccEimIdZ.s:9656 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t /tmp/ccEimIdZ.s:9714 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t /tmp/ccEimIdZ.s:9848 .text.I2C_DMASlaveReceiveCplt:0000000000000098 $d /tmp/ccEimIdZ.s:9854 .text.HAL_I2C_AddrCallback:0000000000000000 $t /tmp/ccEimIdZ.s:9861 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback /tmp/ccEimIdZ.s:9878 .text.I2C_ITAddrCplt:0000000000000000 $t /tmp/ccEimIdZ.s:9884 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt /tmp/ccEimIdZ.s:10044 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:10051 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback /tmp/ccEimIdZ.s:10066 .text.I2C_ITListenCplt:0000000000000000 $t /tmp/ccEimIdZ.s:10072 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt /tmp/ccEimIdZ.s:10175 .text.I2C_ITListenCplt:0000000000000064 $d /tmp/ccEimIdZ.s:10180 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:10187 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback /tmp/ccEimIdZ.s:10202 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:10209 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback /tmp/ccEimIdZ.s:10224 .text.HAL_I2C_ErrorCallback:0000000000000000 $t /tmp/ccEimIdZ.s:10231 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback /tmp/ccEimIdZ.s:10246 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t /tmp/ccEimIdZ.s:10253 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback /tmp/ccEimIdZ.s:10268 .text.I2C_TreatErrorCallback:0000000000000000 $t /tmp/ccEimIdZ.s:10274 .text.I2C_TreatErrorCallback:0000000000000000 I2C_TreatErrorCallback /tmp/ccEimIdZ.s:10331 .text.I2C_ITError:0000000000000000 $t ARM GAS /tmp/ccEimIdZ.s page 431 /tmp/ccEimIdZ.s:10337 .text.I2C_ITError:0000000000000000 I2C_ITError /tmp/ccEimIdZ.s:10579 .text.I2C_ITError:00000000000000fc $d /tmp/ccEimIdZ.s:10586 .text.I2C_ITSlaveCplt:0000000000000000 $t /tmp/ccEimIdZ.s:10592 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt /tmp/ccEimIdZ.s:11046 .text.I2C_ITSlaveCplt:0000000000000238 $d /tmp/ccEimIdZ.s:11053 .text.I2C_Slave_ISR_IT:0000000000000000 $t /tmp/ccEimIdZ.s:11344 .text.I2C_ITMasterCplt:0000000000000000 $t /tmp/ccEimIdZ.s:11350 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt /tmp/ccEimIdZ.s:11619 .text.I2C_Master_ISR_IT:0000000000000000 $t /tmp/ccEimIdZ.s:11996 .text.I2C_Slave_ISR_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:12428 .text.I2C_Slave_ISR_DMA:0000000000000218 $d /tmp/ccEimIdZ.s:12434 .text.I2C_Master_ISR_DMA:0000000000000000 $t /tmp/ccEimIdZ.s:12749 .text.I2C_DMAError:0000000000000000 $t /tmp/ccEimIdZ.s:13000 .text.I2C_DMAError:0000000000000130 $d /tmp/ccEimIdZ.s:13006 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t /tmp/ccEimIdZ.s:13113 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t /tmp/ccEimIdZ.s:13220 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t /tmp/ccEimIdZ.s:13227 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler /tmp/ccEimIdZ.s:13326 .text.I2C_DMAAbort:0000000000000000 $t /tmp/ccEimIdZ.s:13378 .text.HAL_I2C_GetState:0000000000000000 $t /tmp/ccEimIdZ.s:13385 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState /tmp/ccEimIdZ.s:13403 .text.HAL_I2C_GetMode:0000000000000000 $t /tmp/ccEimIdZ.s:13410 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode /tmp/ccEimIdZ.s:13428 .text.HAL_I2C_GetError:0000000000000000 $t /tmp/ccEimIdZ.s:13435 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState HAL_DMA_GetError