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

© Copyright (c) 2016 STMicroelectronics. 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * All rights reserved.

314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This software component is licensed by ST under BSD 3-Clause license, ARM GAS /tmp/cczJHHnF.s page 7 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the "License"; You may not use this file except in compliance with the 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * License. You may obtain a copy of the License at: 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * opensource.org/licenses/BSD-3-Clause 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ****************************************************************************** 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #include "stm32f3xx_hal.h" 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup STM32F3xx_HAL_Driver 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C I2C 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Default Value */ 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) ARM GAS /tmp/cczJHHnF.s page 8 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and NACK treatment */ 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/ 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, ARM GAS /tmp/cczJHHnF.s page 9 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to treat different error callback */ 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to flush TXDR register */ 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request); 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to Convert Specific options */ 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialization and Configuration functions 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * ARM GAS /tmp/cczJHHnF.s page 10 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the selected configuration: 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Clock Timing 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 1 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Dual Addressing mode 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 Mask 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) General call mode 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Nostretch mode 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** of the selected I2Cx peripheral. 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL) 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; ARM GAS /tmp/cczJHHnF.s page 11 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the I2C Callback settings */ 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ ARM GAS /tmp/cczJHHnF.s page 12 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL) 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ ARM GAS /tmp/cczJHHnF.s page 13 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */ 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register a User I2C Callback 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak predefined callback 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID ARM GAS /tmp/cczJHHnF.s page 14 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL) 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; ARM GAS /tmp/cczJHHnF.s page 15 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */ ARM GAS /tmp/cczJHHnF.s page 16 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Unregister an I2C Callback 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : ARM GAS /tmp/cczJHHnF.s page 17 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; ARM GAS /tmp/cczJHHnF.s page 18 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */ 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL) 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */ 989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ ARM GAS /tmp/cczJHHnF.s page 19 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */ 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Data transfers functions 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### IO operation functions ##### 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfers. 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) There are two modes of transfer: 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The status of all data processing is returned by the same function 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after finishing transfer. 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The end of the data processing will be indicated through the 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using DMA mode. 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Blocking mode functions are : 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() ARM GAS /tmp/cczJHHnF.s page 20 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/cczJHHnF.s page 21 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; ARM GAS /tmp/cczJHHnF.s page 22 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value ARM GAS /tmp/cczJHHnF.s page 23 1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ ARM GAS /tmp/cczJHHnF.s page 24 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 25 1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout) 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 26 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Normal use case for Transmitter mode */ 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */ 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */ 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 27 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout) 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ ARM GAS /tmp/cczJHHnF.s page 28 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 29 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */ 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/cczJHHnF.s page 30 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/cczJHHnF.s page 31 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 32 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 33 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/cczJHHnF.s page 34 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> ARM GAS /tmp/cczJHHnF.s page 35 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; ARM GAS /tmp/cczJHHnF.s page 36 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 37 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ ARM GAS /tmp/cczJHHnF.s page 38 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/cczJHHnF.s page 39 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/cczJHHnF.s page 40 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/cczJHHnF.s page 41 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 42 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 43 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/cczJHHnF.s page 44 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else ARM GAS /tmp/cczJHHnF.s page 45 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 46 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 47 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 48 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); ARM GAS /tmp/cczJHHnF.s page 49 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; ARM GAS /tmp/cczJHHnF.s page 50 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA ARM GAS /tmp/cczJHHnF.s page 51 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 52 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ ARM GAS /tmp/cczJHHnF.s page 53 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be read 2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); ARM GAS /tmp/cczJHHnF.s page 54 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; ARM GAS /tmp/cczJHHnF.s page 55 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This function is used with Memory devices 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/cczJHHnF.s page 56 3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Trials Number of trials 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout) 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp1; 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2; 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Start */ 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 57 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Device is ready */ 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_Trials == Trials) 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */ 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Trials */ ARM GAS /tmp/cczJHHnF.s page 58 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Trials++; 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ ARM GAS /tmp/cczJHHnF.s page 59 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/cczJHHnF.s page 60 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) ARM GAS /tmp/cczJHHnF.s page 61 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; ARM GAS /tmp/cczJHHnF.s page 62 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS ARM GAS /tmp/cczJHHnF.s page 63 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 64 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 65 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ ARM GAS /tmp/cczJHHnF.s page 66 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process ARM GAS /tmp/cczJHHnF.s page 67 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 68 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */ 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** ARM GAS /tmp/cczJHHnF.s page 69 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 70 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); ARM GAS /tmp/cczJHHnF.s page 71 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */ 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0; 3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; ARM GAS /tmp/cczJHHnF.s page 72 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 73 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/cczJHHnF.s page 74 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ ARM GAS /tmp/cczJHHnF.s page 75 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ ARM GAS /tmp/cczJHHnF.s page 76 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */ 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0; 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 77 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp; 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** ARM GAS /tmp/cczJHHnF.s page 78 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong usage of abort function */ 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} ARM GAS /tmp/cczJHHnF.s page 79 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */ 4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */ 4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 80 4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */ 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ ARM GAS /tmp/cczJHHnF.s page 81 4534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Address Match callback. 4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection); 4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Listen Complete callback. 4582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 82 4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C error callback. 4630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C abort callback. 4646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/cczJHHnF.s page 83 4648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 4662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim 4668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 4669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 4671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 4672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the data flow. 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim 4676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C handle state. 4681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL state 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) 4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */ 4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->State; 4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for I2C module 4695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL mode 4696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) 4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode; 4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C error code. 4704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/cczJHHnF.s page 84 4705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval I2C Error Code 4707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) 4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode; 4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 4715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 4719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 4723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */ 4749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 85 4762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 4767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 4789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 4794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 4802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 4807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else ARM GAS /tmp/cczJHHnF.s page 86 4819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 4821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 4835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */ 4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 4838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 4849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */ 4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 4863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 4873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. ARM GAS /tmp/cczJHHnF.s page 87 4876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */ 4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 4890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 4891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */ 4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */ 4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 4901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/ 4902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */ 4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 4907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 4908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */ 4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 4911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 4913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 4921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ ARM GAS /tmp/cczJHHnF.s page 88 4933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 4940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 4956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 4963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 4970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if all Data have already been sent */ 4979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 4987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/cczJHHnF.s page 89 4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 4996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 5025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */ 5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ ARM GAS /tmp/cczJHHnF.s page 90 5047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC interrupt */ 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Recover Slave address */ 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ ARM GAS /tmp/cczJHHnF.s page 91 5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */ 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */ 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, ARM GAS /tmp/cczJHHnF.s page 92 5161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */ 5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) 5194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U; 5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U) 5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U; 5208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (treatdmanack == 1U) 5213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 93 5218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpstate = hi2c->State; 5250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); ARM GAS /tmp/cczJHHnF.s page 94 5275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 5300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 5302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 5303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */ 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 95 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 5355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 5358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */ 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 96 5389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TC flag is set */ 5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 5408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection; 5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode; 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code; 5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code; 5415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(ITFlags); 5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++; 5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Address Event counter */ 5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */ ARM GAS /tmp/cczJHHnF.s page 97 5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */ 5464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 5472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */ 5481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Else clear address flag only */ 5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None ARM GAS /tmp/cczJHHnF.s page 98 5503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 5510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 5554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 5556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); ARM GAS /tmp/cczJHHnF.s page 99 5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 5581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 5601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); ARM GAS /tmp/cczJHHnF.s page 100 5617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master complete process. 5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 5630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg; 5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set acknowledge error code */ 5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Fetch Last receive data if any */ 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) ARM GAS /tmp/cczJHHnF.s page 101 5674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 5678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 5685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 5708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 5710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/cczJHHnF.s page 102 5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 5745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave complete process. 5770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 5773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; ARM GAS /tmp/cczJHHnF.s page 103 5788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 5790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmatx); 5817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmarx); 5827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/cczJHHnF.s page 104 5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 5847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 5864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 5870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 5892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/cczJHHnF.s page 105 5902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Listen complete process. 5929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 5932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 5944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 5952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 106 5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all Interrupts*/ 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 5963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 5975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C interrupts error process. 5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 5983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate; 5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 5993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set new error code */ 5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 5996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts */ 6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This change will be do later */ ARM GAS /tmp/cczJHHnF.s page 107 6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 6022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 108 6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** ARM GAS /tmp/cczJHHnF.s page 109 6130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 29 .loc 1 6135 1 view -0 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 0 32 @ frame_needed = 0, uses_anonymous_args = 0 33 @ link register save eliminated. 6136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 34 .loc 1 6138 3 view .LVU1 35 .loc 1 6138 7 is_stmt 0 view .LVU2 36 0000 0368 ldr r3, [r0] 37 0002 9A69 ldr r2, [r3, #24] 38 .loc 1 6138 6 view .LVU3 39 0004 12F0020F tst r2, #2 40 0008 01D0 beq .L2 6139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 41 .loc 1 6140 5 is_stmt 1 view .LVU4 42 .loc 1 6140 26 is_stmt 0 view .LVU5 43 000a 0022 movs r2, #0 44 000c 9A62 str r2, [r3, #40] 45 .L2: 6141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register if not empty */ 6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 46 .loc 1 6144 3 is_stmt 1 view .LVU6 47 .loc 1 6144 7 is_stmt 0 view .LVU7 48 000e 0368 ldr r3, [r0] 49 0010 9A69 ldr r2, [r3, #24] 50 .loc 1 6144 6 view .LVU8 51 0012 12F0010F tst r2, #1 52 0016 03D1 bne .L1 6145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 53 .loc 1 6146 5 is_stmt 1 view .LVU9 54 0018 9A69 ldr r2, [r3, #24] 55 001a 42F00102 orr r2, r2, #1 56 001e 9A61 str r2, [r3, #24] 57 .L1: 6147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 58 .loc 1 6148 1 is_stmt 0 view .LVU10 59 0020 7047 bx lr 60 .cfi_endproc 61 .LFE193: 63 .section .text.I2C_TransferConfig,"ax",%progbits 64 .align 1 65 .syntax unified 66 .thumb 67 .thumb_func ARM GAS /tmp/cczJHHnF.s page 110 69 I2C_TransferConfig: 70 .LVL1: 71 .LFB205: 6149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */ 6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */ 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 6187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle ARM GAS /tmp/cczJHHnF.s page 111 6203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */ 6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */ 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 112 6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) && \ 6290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Acknowledge */ ARM GAS /tmp/cczJHHnF.s page 113 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle. 6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. 6349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET). 6353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 6355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 6356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 6361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/cczJHHnF.s page 114 6374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 6382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 6385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 6387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a NACK is detected */ 6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 6420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 6424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 6425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 115 6431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a NACK is detected */ 6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 6458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 6459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a NACK is detected */ 6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an RXNE is pending */ 6476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 6478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return HAL_OK */ 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 6481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 6482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 116 6488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication. 6519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 6522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 6523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 6524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ 6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Soft End condition, generate the STOP condition */ 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 6531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */ 6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 6534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP Flag is reset */ 6536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; ARM GAS /tmp/cczJHHnF.s page 117 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACKF Flag */ 6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 6582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 6584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 6585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 6586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 6587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 6588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 6589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 6592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 6594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 6595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 6600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request) 6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 118 72 .loc 1 6601 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 6601 1 is_stmt 0 view .LVU12 78 0000 30B4 push {r4, r5} 79 .cfi_def_cfa_offset 8 80 .cfi_offset 4, -8 81 .cfi_offset 5, -4 82 0002 029D ldr r5, [sp, #8] 6602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 6603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 83 .loc 1 6603 3 is_stmt 1 view .LVU13 6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 84 .loc 1 6604 3 view .LVU14 6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 85 .loc 1 6605 3 view .LVU15 6606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* update CR2 register */ 6608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, 86 .loc 1 6608 3 view .LVU16 87 0004 0468 ldr r4, [r0] 88 0006 6068 ldr r0, [r4, #4] 89 .LVL2: 90 .loc 1 6608 3 is_stmt 0 view .LVU17 91 0008 4FEA555C lsr ip, r5, #21 92 000c 0CF4806C and ip, ip, #1024 93 0010 4CF07F7C orr ip, ip, #66846720 94 0014 4CF4583C orr ip, ip, #221184 95 0018 4CF47F7C orr ip, ip, #1020 96 001c 4CF0030C orr ip, ip, #3 97 0020 20EA0C00 bic r0, r0, ip 98 0024 C1F30901 ubfx r1, r1, #0, #10 99 .LVL3: 100 .loc 1 6608 3 view .LVU18 101 0028 41EA0241 orr r1, r1, r2, lsl #16 102 002c 1943 orrs r1, r1, r3 103 002e 2943 orrs r1, r1, r5 104 0030 0843 orrs r0, r0, r1 105 0032 6060 str r0, [r4, #4] 6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 6610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 6611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), \ 6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 6614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request)); 6615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 106 .loc 1 6615 1 view .LVU19 107 0034 30BC pop {r4, r5} 108 .cfi_restore 5 109 .cfi_restore 4 110 .cfi_def_cfa_offset 0 111 .LVL4: 112 .loc 1 6615 1 view .LVU20 113 0036 7047 bx lr 114 .cfi_endproc ARM GAS /tmp/cczJHHnF.s page 119 115 .LFE205: 117 .section .text.I2C_Enable_IRQ,"ax",%progbits 118 .align 1 119 .syntax unified 120 .thumb 121 .thumb_func 123 I2C_Enable_IRQ: 124 .LVL5: 125 .LFB206: 6616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 6619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 126 .loc 1 6625 1 is_stmt 1 view -0 127 .cfi_startproc 128 @ args = 0, pretend = 0, frame = 0 129 @ frame_needed = 0, uses_anonymous_args = 0 130 @ link register save eliminated. 6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U; 131 .loc 1 6626 3 view .LVU22 6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \ 132 .loc 1 6628 3 view .LVU23 133 .loc 1 6628 12 is_stmt 0 view .LVU24 134 0000 436B ldr r3, [r0, #52] 135 .loc 1 6628 6 view .LVU25 136 0002 1A4A ldr r2, .L20 137 0004 9342 cmp r3, r2 138 0006 15D0 beq .L7 139 .loc 1 6628 45 discriminator 1 view .LVU26 140 0008 194A ldr r2, .L20+4 141 000a 9342 cmp r3, r2 142 000c 12D0 beq .L7 6629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 6632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 6638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */ 6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); ARM GAS /tmp/cczJHHnF.s page 120 6647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 143 .loc 1 6657 5 is_stmt 1 view .LVU27 144 .loc 1 6657 8 is_stmt 0 view .LVU28 145 000e 11F4004F tst r1, #32768 146 0012 28D1 bne .L17 6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 147 .loc 1 6626 12 view .LVU29 148 0014 0023 movs r3, #0 149 .L12: 150 .LVL6: 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */ 6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 151 .loc 1 6663 5 is_stmt 1 view .LVU30 152 .loc 1 6663 8 is_stmt 0 view .LVU31 153 0016 11F0010F tst r1, #1 154 001a 01D0 beq .L13 6664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 6666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 155 .loc 1 6666 7 is_stmt 1 view .LVU32 156 .loc 1 6666 14 is_stmt 0 view .LVU33 157 001c 43F0F203 orr r3, r3, #242 158 .LVL7: 159 .L13: 6667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 160 .loc 1 6669 5 is_stmt 1 view .LVU34 161 .loc 1 6669 8 is_stmt 0 view .LVU35 162 0020 11F0020F tst r1, #2 163 0024 01D0 beq .L14 6670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 6672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 164 .loc 1 6672 7 is_stmt 1 view .LVU36 165 .loc 1 6672 14 is_stmt 0 view .LVU37 166 0026 43F0F403 orr r3, r3, #244 167 .LVL8: 168 .L14: 6673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 169 .loc 1 6675 5 is_stmt 1 view .LVU38 ARM GAS /tmp/cczJHHnF.s page 121 170 .loc 1 6675 8 is_stmt 0 view .LVU39 171 002a 2029 cmp r1, #32 172 002c 0ED1 bne .L11 6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */ 6678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 173 .loc 1 6678 7 is_stmt 1 view .LVU40 174 .loc 1 6678 14 is_stmt 0 view .LVU41 175 002e 43F02003 orr r3, r3, #32 176 .LVL9: 177 .loc 1 6678 14 view .LVU42 178 0032 0BE0 b .L11 179 .LVL10: 180 .L7: 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 181 .loc 1 6631 5 is_stmt 1 view .LVU43 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 182 .loc 1 6631 8 is_stmt 0 view .LVU44 183 0034 11F4004F tst r1, #32768 184 0038 03D1 bne .L15 6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 185 .loc 1 6637 5 is_stmt 1 view .LVU45 6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 186 .loc 1 6637 8 is_stmt 0 view .LVU46 187 003a 1029 cmp r1, #16 188 003c 0BD0 beq .L16 6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 189 .loc 1 6626 12 view .LVU47 190 003e 0023 movs r3, #0 191 0040 00E0 b .L9 192 .L15: 6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 193 .loc 1 6634 14 view .LVU48 194 0042 B823 movs r3, #184 195 .L9: 196 .LVL11: 6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 197 .loc 1 6643 5 is_stmt 1 view .LVU49 6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 198 .loc 1 6643 8 is_stmt 0 view .LVU50 199 0044 2029 cmp r1, #32 200 0046 08D0 beq .L18 201 .L10: 6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 202 .loc 1 6649 5 is_stmt 1 view .LVU51 6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 203 .loc 1 6649 8 is_stmt 0 view .LVU52 204 0048 4029 cmp r1, #64 205 004a 09D0 beq .L19 206 .L11: 6679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable interrupts only at the end */ 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 6684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all interrupts requested done */ 6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); ARM GAS /tmp/cczJHHnF.s page 122 207 .loc 1 6685 3 is_stmt 1 view .LVU53 208 004c 0168 ldr r1, [r0] 209 .LVL12: 210 .loc 1 6685 3 is_stmt 0 view .LVU54 211 004e 0A68 ldr r2, [r1] 212 0050 1343 orrs r3, r3, r2 213 .LVL13: 214 .loc 1 6685 3 view .LVU55 215 0052 0B60 str r3, [r1] 6686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 216 .loc 1 6686 1 view .LVU56 217 0054 7047 bx lr 218 .LVL14: 219 .L16: 6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 220 .loc 1 6640 14 view .LVU57 221 0056 9023 movs r3, #144 222 0058 F4E7 b .L9 223 .LVL15: 224 .L18: 6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 225 .loc 1 6646 7 is_stmt 1 view .LVU58 6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 226 .loc 1 6646 14 is_stmt 0 view .LVU59 227 005a 43F06003 orr r3, r3, #96 228 .LVL16: 6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 229 .loc 1 6646 14 view .LVU60 230 005e F3E7 b .L10 231 .L19: 6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 232 .loc 1 6652 7 is_stmt 1 view .LVU61 6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 233 .loc 1 6652 14 is_stmt 0 view .LVU62 234 0060 43F04003 orr r3, r3, #64 235 .LVL17: 6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 236 .loc 1 6652 14 view .LVU63 237 0064 F2E7 b .L11 238 .LVL18: 239 .L17: 6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 240 .loc 1 6660 14 view .LVU64 241 0066 B823 movs r3, #184 242 0068 D5E7 b .L12 243 .L21: 244 006a 00BF .align 2 245 .L20: 246 006c 00000000 .word I2C_Master_ISR_DMA 247 0070 00000000 .word I2C_Slave_ISR_DMA 248 .cfi_endproc 249 .LFE206: 251 .section .text.I2C_Disable_IRQ,"ax",%progbits 252 .align 1 253 .syntax unified 254 .thumb 255 .thumb_func ARM GAS /tmp/cczJHHnF.s page 123 257 I2C_Disable_IRQ: 258 .LVL19: 259 .LFB207: 6687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 6690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 260 .loc 1 6696 1 is_stmt 1 view -0 261 .cfi_startproc 262 @ args = 0, pretend = 0, frame = 0 263 @ frame_needed = 0, uses_anonymous_args = 0 264 @ link register save eliminated. 6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U; 265 .loc 1 6697 3 view .LVU66 6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 266 .loc 1 6699 3 view .LVU67 267 .loc 1 6699 6 is_stmt 0 view .LVU68 268 0000 11F0010F tst r1, #1 269 0004 09D0 beq .L29 6700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 270 .loc 1 6702 5 is_stmt 1 view .LVU69 271 .LVL20: 6703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 272 .loc 1 6704 5 view .LVU70 273 .loc 1 6704 24 is_stmt 0 view .LVU71 274 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 275 .loc 1 6704 8 view .LVU72 276 000a 03F02803 and r3, r3, #40 277 000e 282B cmp r3, #40 278 0010 01D0 beq .L32 6705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 279 .loc 1 6707 14 view .LVU73 280 0012 F223 movs r3, #242 281 0014 02E0 b .L23 282 .L32: 6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 283 .loc 1 6702 12 view .LVU74 284 0016 4223 movs r3, #66 285 0018 00E0 b .L23 286 .LVL21: 287 .L29: 6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 288 .loc 1 6697 12 view .LVU75 289 001a 0023 movs r3, #0 290 .LVL22: ARM GAS /tmp/cczJHHnF.s page 124 291 .L23: 6708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 292 .loc 1 6711 3 is_stmt 1 view .LVU76 293 .loc 1 6711 6 is_stmt 0 view .LVU77 294 001c 11F0020F tst r1, #2 295 0020 09D0 beq .L24 6712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 296 .loc 1 6714 5 is_stmt 1 view .LVU78 297 .loc 1 6714 12 is_stmt 0 view .LVU79 298 0022 43F0440C orr ip, r3, #68 299 .LVL23: 6715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 300 .loc 1 6716 5 is_stmt 1 view .LVU80 301 .loc 1 6716 24 is_stmt 0 view .LVU81 302 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 303 .loc 1 6716 8 view .LVU82 304 002a 02F02802 and r2, r2, #40 305 002e 282A cmp r2, #40 306 0030 10D0 beq .L31 6717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 307 .loc 1 6719 7 is_stmt 1 view .LVU83 308 .loc 1 6719 14 is_stmt 0 view .LVU84 309 0032 43F0F403 orr r3, r3, #244 310 .LVL24: 311 .L24: 6720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 312 .loc 1 6723 3 is_stmt 1 view .LVU85 313 .loc 1 6723 6 is_stmt 0 view .LVU86 314 0036 11F4004F tst r1, #32768 315 003a 0DD1 bne .L33 316 .L25: 6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 317 .loc 1 6729 3 is_stmt 1 view .LVU87 318 .loc 1 6729 6 is_stmt 0 view .LVU88 319 003c 1029 cmp r1, #16 320 003e 0ED0 beq .L34 321 .L26: 6730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 125 6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 322 .loc 1 6735 3 is_stmt 1 view .LVU89 323 .loc 1 6735 6 is_stmt 0 view .LVU90 324 0040 2029 cmp r1, #32 325 0042 0FD0 beq .L35 326 .L27: 6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */ 6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 327 .loc 1 6741 3 is_stmt 1 view .LVU91 328 .loc 1 6741 6 is_stmt 0 view .LVU92 329 0044 4029 cmp r1, #64 330 0046 10D0 beq .L36 331 .L28: 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable interrupts only at the end */ 6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 6749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all disable interrupts request are not done */ 6750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 332 .loc 1 6750 3 is_stmt 1 view .LVU93 333 0048 0168 ldr r1, [r0] 334 .LVL25: 335 .loc 1 6750 3 is_stmt 0 view .LVU94 336 004a 0A68 ldr r2, [r1] 337 004c 22EA0303 bic r3, r2, r3 338 .LVL26: 339 .loc 1 6750 3 view .LVU95 340 0050 0B60 str r3, [r1] 6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 341 .loc 1 6751 1 view .LVU96 342 0052 7047 bx lr 343 .LVL27: 344 .L31: 6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 345 .loc 1 6714 12 view .LVU97 346 0054 6346 mov r3, ip 347 0056 EEE7 b .L24 348 .LVL28: 349 .L33: 6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 350 .loc 1 6726 5 is_stmt 1 view .LVU98 6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 351 .loc 1 6726 12 is_stmt 0 view .LVU99 352 0058 43F0B803 orr r3, r3, #184 353 .LVL29: 6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 354 .loc 1 6726 12 view .LVU100 355 005c EEE7 b .L25 356 .L34: ARM GAS /tmp/cczJHHnF.s page 126 6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 357 .loc 1 6732 5 is_stmt 1 view .LVU101 6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 358 .loc 1 6732 12 is_stmt 0 view .LVU102 359 005e 43F09003 orr r3, r3, #144 360 .LVL30: 6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 361 .loc 1 6732 12 view .LVU103 362 0062 EDE7 b .L26 363 .L35: 6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 364 .loc 1 6738 5 is_stmt 1 view .LVU104 6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 365 .loc 1 6738 12 is_stmt 0 view .LVU105 366 0064 43F02003 orr r3, r3, #32 367 .LVL31: 6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 368 .loc 1 6738 12 view .LVU106 369 0068 ECE7 b .L27 370 .L36: 6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 371 .loc 1 6744 5 is_stmt 1 view .LVU107 6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 372 .loc 1 6744 12 is_stmt 0 view .LVU108 373 006a 43F04003 orr r3, r3, #64 374 .LVL32: 6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 375 .loc 1 6744 12 view .LVU109 376 006e EBE7 b .L28 377 .cfi_endproc 378 .LFE207: 380 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 381 .align 1 382 .syntax unified 383 .thumb 384 .thumb_func 386 I2C_ConvertOtherXferOptions: 387 .LVL33: 388 .LFB208: 6752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 6755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 6759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 389 .loc 1 6759 1 is_stmt 1 view -0 390 .cfi_startproc 391 @ args = 0, pretend = 0, frame = 0 392 @ frame_needed = 0, uses_anonymous_args = 0 393 @ link register save eliminated. 6760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 6761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 6763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 394 .loc 1 6763 3 view .LVU111 ARM GAS /tmp/cczJHHnF.s page 127 395 .loc 1 6763 11 is_stmt 0 view .LVU112 396 0000 C36A ldr r3, [r0, #44] 397 .loc 1 6763 6 view .LVU113 398 0002 AA2B cmp r3, #170 399 0004 04D0 beq .L40 6764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 6766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 6768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 6771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 400 .loc 1 6771 8 is_stmt 1 view .LVU114 401 .loc 1 6771 16 is_stmt 0 view .LVU115 402 0006 C36A ldr r3, [r0, #44] 403 .loc 1 6771 11 view .LVU116 404 0008 B3F52A4F cmp r3, #43520 405 000c 03D0 beq .L41 406 .L37: 6772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 6774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 407 .loc 1 6779 1 view .LVU117 408 000e 7047 bx lr 409 .L40: 6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 410 .loc 1 6765 5 is_stmt 1 view .LVU118 6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 411 .loc 1 6765 23 is_stmt 0 view .LVU119 412 0010 0023 movs r3, #0 413 0012 C362 str r3, [r0, #44] 414 0014 7047 bx lr 415 .L41: 6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 416 .loc 1 6773 5 is_stmt 1 view .LVU120 6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 417 .loc 1 6773 23 is_stmt 0 view .LVU121 418 0016 4FF00073 mov r3, #33554432 419 001a C362 str r3, [r0, #44] 6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 420 .loc 1 6778 3 is_stmt 1 view .LVU122 421 .loc 1 6779 1 is_stmt 0 view .LVU123 422 001c F7E7 b .L37 423 .cfi_endproc 424 .LFE208: 426 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits 427 .align 1 428 .syntax unified 429 .thumb 430 .thumb_func 432 I2C_IsAcknowledgeFailed: ARM GAS /tmp/cczJHHnF.s page 128 433 .LVL34: 434 .LFB204: 6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 435 .loc 1 6526 1 is_stmt 1 view -0 436 .cfi_startproc 437 @ args = 0, pretend = 0, frame = 0 438 @ frame_needed = 0, uses_anonymous_args = 0 6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 439 .loc 1 6526 1 is_stmt 0 view .LVU125 440 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 441 .cfi_def_cfa_offset 24 442 .cfi_offset 3, -24 443 .cfi_offset 4, -20 444 .cfi_offset 5, -16 445 .cfi_offset 6, -12 446 .cfi_offset 7, -8 447 .cfi_offset 14, -4 448 0002 0E46 mov r6, r1 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 449 .loc 1 6527 3 is_stmt 1 view .LVU126 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 450 .loc 1 6527 7 is_stmt 0 view .LVU127 451 0004 0368 ldr r3, [r0] 452 0006 9969 ldr r1, [r3, #24] 453 .LVL35: 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 454 .loc 1 6527 6 view .LVU128 455 0008 11F0100F tst r1, #16 456 000c 46D0 beq .L49 457 000e 0546 mov r5, r0 458 0010 1746 mov r7, r2 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 459 .loc 1 6530 5 is_stmt 1 view .LVU129 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 460 .loc 1 6530 9 is_stmt 0 view .LVU130 461 0012 5A68 ldr r2, [r3, #4] 462 .LVL36: 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 463 .loc 1 6530 8 view .LVU131 464 0014 12F0007F tst r2, #33554432 465 0018 03D1 bne .L45 6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 466 .loc 1 6533 7 is_stmt 1 view .LVU132 6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 467 .loc 1 6533 21 is_stmt 0 view .LVU133 468 001a 5A68 ldr r2, [r3, #4] 6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 469 .loc 1 6533 27 view .LVU134 470 001c 42F48042 orr r2, r2, #16384 471 0020 5A60 str r2, [r3, #4] 472 .LVL37: 473 .L45: 6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 474 .loc 1 6537 53 is_stmt 1 view .LVU135 6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 475 .loc 1 6537 12 is_stmt 0 view .LVU136 476 0022 2B68 ldr r3, [r5] ARM GAS /tmp/cczJHHnF.s page 129 477 0024 9C69 ldr r4, [r3, #24] 6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 478 .loc 1 6537 53 view .LVU137 479 0026 14F0200F tst r4, #32 480 002a 17D1 bne .L51 6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 481 .loc 1 6540 7 is_stmt 1 view .LVU138 6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 482 .loc 1 6540 10 is_stmt 0 view .LVU139 483 002c B6F1FF3F cmp r6, #-1 484 0030 F7D0 beq .L45 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 485 .loc 1 6542 9 is_stmt 1 view .LVU140 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 486 .loc 1 6542 15 is_stmt 0 view .LVU141 487 0032 FFF7FEFF bl HAL_GetTick 488 .LVL38: 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 489 .loc 1 6542 29 view .LVU142 490 0036 C01B subs r0, r0, r7 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 491 .loc 1 6542 12 view .LVU143 492 0038 B042 cmp r0, r6 493 003a 01D8 bhi .L46 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 494 .loc 1 6542 53 discriminator 1 view .LVU144 495 003c 002E cmp r6, #0 496 003e F0D1 bne .L45 497 .L46: 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 498 .loc 1 6544 11 is_stmt 1 view .LVU145 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 499 .loc 1 6544 15 is_stmt 0 view .LVU146 500 0040 6B6C ldr r3, [r5, #68] 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 501 .loc 1 6544 27 view .LVU147 502 0042 43F02003 orr r3, r3, #32 503 0046 6B64 str r3, [r5, #68] 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 504 .loc 1 6545 11 is_stmt 1 view .LVU148 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 505 .loc 1 6545 23 is_stmt 0 view .LVU149 506 0048 2023 movs r3, #32 507 004a 85F84130 strb r3, [r5, #65] 6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 508 .loc 1 6546 11 is_stmt 1 view .LVU150 6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 509 .loc 1 6546 22 is_stmt 0 view .LVU151 510 004e 0023 movs r3, #0 511 0050 85F84230 strb r3, [r5, #66] 6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 512 .loc 1 6549 11 is_stmt 1 view .LVU152 6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 513 .loc 1 6549 11 view .LVU153 514 0054 85F84030 strb r3, [r5, #64] 6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 515 .loc 1 6549 11 view .LVU154 ARM GAS /tmp/cczJHHnF.s page 130 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 516 .loc 1 6551 11 view .LVU155 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 517 .loc 1 6551 18 is_stmt 0 view .LVU156 518 0058 0120 movs r0, #1 519 005a 20E0 b .L43 520 .L51: 6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 521 .loc 1 6557 5 is_stmt 1 view .LVU157 522 005c 1022 movs r2, #16 523 005e DA61 str r2, [r3, #28] 6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 524 .loc 1 6560 5 view .LVU158 525 0060 2B68 ldr r3, [r5] 526 0062 2024 movs r4, #32 527 0064 DC61 str r4, [r3, #28] 6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 528 .loc 1 6563 5 view .LVU159 529 0066 2846 mov r0, r5 530 0068 FFF7FEFF bl I2C_Flush_TXDR 531 .LVL39: 6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 532 .loc 1 6566 5 view .LVU160 533 006c 2A68 ldr r2, [r5] 534 006e 5368 ldr r3, [r2, #4] 535 0070 23F0FF73 bic r3, r3, #33423360 536 0074 23F48B33 bic r3, r3, #71168 537 0078 23F4FF73 bic r3, r3, #510 538 007c 23F00103 bic r3, r3, #1 539 0080 5360 str r3, [r2, #4] 6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 540 .loc 1 6568 5 view .LVU161 6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 541 .loc 1 6568 9 is_stmt 0 view .LVU162 542 0082 6B6C ldr r3, [r5, #68] 6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 543 .loc 1 6568 21 view .LVU163 544 0084 43F00403 orr r3, r3, #4 545 0088 6B64 str r3, [r5, #68] 6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 546 .loc 1 6569 5 is_stmt 1 view .LVU164 6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 547 .loc 1 6569 17 is_stmt 0 view .LVU165 548 008a 85F84140 strb r4, [r5, #65] 6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 549 .loc 1 6570 5 is_stmt 1 view .LVU166 6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 550 .loc 1 6570 16 is_stmt 0 view .LVU167 551 008e 0023 movs r3, #0 552 0090 85F84230 strb r3, [r5, #66] 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 553 .loc 1 6573 5 is_stmt 1 view .LVU168 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 554 .loc 1 6573 5 view .LVU169 555 0094 85F84030 strb r3, [r5, #64] 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 556 .loc 1 6573 5 view .LVU170 ARM GAS /tmp/cczJHHnF.s page 131 6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 557 .loc 1 6575 5 view .LVU171 6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 558 .loc 1 6575 12 is_stmt 0 view .LVU172 559 0098 0120 movs r0, #1 560 009a 00E0 b .L43 561 .LVL40: 562 .L49: 6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 563 .loc 1 6577 10 view .LVU173 564 009c 0020 movs r0, #0 565 .LVL41: 566 .L43: 6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 567 .loc 1 6578 1 view .LVU174 568 009e F8BD pop {r3, r4, r5, r6, r7, pc} 6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 569 .loc 1 6578 1 view .LVU175 570 .cfi_endproc 571 .LFE204: 573 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 574 .align 1 575 .syntax unified 576 .thumb 577 .thumb_func 579 I2C_WaitOnTXISFlagUntilTimeout: 580 .LVL42: 581 .LFB201: 6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 582 .loc 1 6390 1 is_stmt 1 view -0 583 .cfi_startproc 584 @ args = 0, pretend = 0, frame = 0 585 @ frame_needed = 0, uses_anonymous_args = 0 6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 586 .loc 1 6390 1 is_stmt 0 view .LVU177 587 0000 70B5 push {r4, r5, r6, lr} 588 .cfi_def_cfa_offset 16 589 .cfi_offset 4, -16 590 .cfi_offset 5, -12 591 .cfi_offset 6, -8 592 .cfi_offset 14, -4 593 0002 0446 mov r4, r0 594 0004 0D46 mov r5, r1 595 0006 1646 mov r6, r2 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 596 .loc 1 6391 3 is_stmt 1 view .LVU178 597 .LVL43: 598 .L55: 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 599 .loc 1 6391 50 view .LVU179 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 600 .loc 1 6391 10 is_stmt 0 view .LVU180 601 0008 2368 ldr r3, [r4] 602 000a 9B69 ldr r3, [r3, #24] 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 603 .loc 1 6391 50 view .LVU181 604 000c 13F0020F tst r3, #2 ARM GAS /tmp/cczJHHnF.s page 132 605 0010 1DD1 bne .L60 6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 606 .loc 1 6394 5 is_stmt 1 view .LVU182 6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 607 .loc 1 6394 9 is_stmt 0 view .LVU183 608 0012 3246 mov r2, r6 609 0014 2946 mov r1, r5 610 0016 2046 mov r0, r4 611 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed 612 .LVL44: 6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 613 .loc 1 6394 8 view .LVU184 614 001c C8B9 cbnz r0, .L58 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 615 .loc 1 6400 5 is_stmt 1 view .LVU185 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 616 .loc 1 6400 8 is_stmt 0 view .LVU186 617 001e B5F1FF3F cmp r5, #-1 618 0022 F1D0 beq .L55 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 619 .loc 1 6402 7 is_stmt 1 view .LVU187 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 620 .loc 1 6402 13 is_stmt 0 view .LVU188 621 0024 FFF7FEFF bl HAL_GetTick 622 .LVL45: 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 623 .loc 1 6402 27 view .LVU189 624 0028 801B subs r0, r0, r6 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 625 .loc 1 6402 10 view .LVU190 626 002a A842 cmp r0, r5 627 002c 01D8 bhi .L56 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 628 .loc 1 6402 51 discriminator 1 view .LVU191 629 002e 002D cmp r5, #0 630 0030 EAD1 bne .L55 631 .L56: 6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 632 .loc 1 6404 9 is_stmt 1 view .LVU192 6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 633 .loc 1 6404 13 is_stmt 0 view .LVU193 634 0032 636C ldr r3, [r4, #68] 6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 635 .loc 1 6404 25 view .LVU194 636 0034 43F02003 orr r3, r3, #32 637 0038 6364 str r3, [r4, #68] 6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 638 .loc 1 6405 9 is_stmt 1 view .LVU195 6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 639 .loc 1 6405 21 is_stmt 0 view .LVU196 640 003a 2023 movs r3, #32 641 003c 84F84130 strb r3, [r4, #65] 6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 642 .loc 1 6406 9 is_stmt 1 view .LVU197 6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 643 .loc 1 6406 20 is_stmt 0 view .LVU198 644 0040 0023 movs r3, #0 ARM GAS /tmp/cczJHHnF.s page 133 645 0042 84F84230 strb r3, [r4, #66] 6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 646 .loc 1 6409 9 is_stmt 1 view .LVU199 6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 647 .loc 1 6409 9 view .LVU200 648 0046 84F84030 strb r3, [r4, #64] 6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 649 .loc 1 6409 9 view .LVU201 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 650 .loc 1 6411 9 view .LVU202 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 651 .loc 1 6411 16 is_stmt 0 view .LVU203 652 004a 0120 movs r0, #1 653 004c 00E0 b .L54 654 .L60: 6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 655 .loc 1 6415 10 view .LVU204 656 004e 0020 movs r0, #0 657 .L54: 6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 658 .loc 1 6416 1 view .LVU205 659 0050 70BD pop {r4, r5, r6, pc} 660 .LVL46: 661 .L58: 6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 662 .loc 1 6396 14 view .LVU206 663 0052 0120 movs r0, #1 664 0054 FCE7 b .L54 665 .cfi_endproc 666 .LFE201: 668 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 669 .align 1 670 .syntax unified 671 .thumb 672 .thumb_func 674 I2C_WaitOnFlagUntilTimeout: 675 .LVL47: 676 .LFB200: 6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 677 .loc 1 6359 1 is_stmt 1 view -0 678 .cfi_startproc 679 @ args = 4, pretend = 0, frame = 0 680 @ frame_needed = 0, uses_anonymous_args = 0 6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 681 .loc 1 6359 1 is_stmt 0 view .LVU208 682 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 683 .cfi_def_cfa_offset 24 684 .cfi_offset 4, -24 685 .cfi_offset 5, -20 686 .cfi_offset 6, -16 687 .cfi_offset 7, -12 688 .cfi_offset 8, -8 689 .cfi_offset 14, -4 690 0004 0646 mov r6, r0 691 0006 8846 mov r8, r1 692 0008 1746 mov r7, r2 693 000a 1D46 mov r5, r3 ARM GAS /tmp/cczJHHnF.s page 134 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 694 .loc 1 6360 3 is_stmt 1 view .LVU209 695 .LVL48: 696 .L63: 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 697 .loc 1 6360 41 view .LVU210 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 698 .loc 1 6360 10 is_stmt 0 view .LVU211 699 000c 3468 ldr r4, [r6] 700 000e A469 ldr r4, [r4, #24] 701 0010 38EA0404 bics r4, r8, r4 702 0014 0CBF ite eq 703 0016 0124 moveq r4, #1 704 0018 0024 movne r4, #0 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 705 .loc 1 6360 41 view .LVU212 706 001a BC42 cmp r4, r7 707 001c 18D1 bne .L68 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 708 .loc 1 6363 5 is_stmt 1 view .LVU213 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 709 .loc 1 6363 8 is_stmt 0 view .LVU214 710 001e B5F1FF3F cmp r5, #-1 711 0022 F3D0 beq .L63 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 712 .loc 1 6365 7 is_stmt 1 view .LVU215 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 713 .loc 1 6365 13 is_stmt 0 view .LVU216 714 0024 FFF7FEFF bl HAL_GetTick 715 .LVL49: 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 716 .loc 1 6365 27 view .LVU217 717 0028 069B ldr r3, [sp, #24] 718 002a C01A subs r0, r0, r3 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 719 .loc 1 6365 10 view .LVU218 720 002c A842 cmp r0, r5 721 002e 01D8 bhi .L64 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 722 .loc 1 6365 51 discriminator 1 view .LVU219 723 0030 002D cmp r5, #0 724 0032 EBD1 bne .L63 725 .L64: 6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 726 .loc 1 6367 9 is_stmt 1 view .LVU220 6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 727 .loc 1 6367 13 is_stmt 0 view .LVU221 728 0034 736C ldr r3, [r6, #68] 6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 729 .loc 1 6367 25 view .LVU222 730 0036 43F02003 orr r3, r3, #32 731 003a 7364 str r3, [r6, #68] 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 732 .loc 1 6368 9 is_stmt 1 view .LVU223 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 733 .loc 1 6368 21 is_stmt 0 view .LVU224 734 003c 2023 movs r3, #32 ARM GAS /tmp/cczJHHnF.s page 135 735 003e 86F84130 strb r3, [r6, #65] 6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 736 .loc 1 6369 9 is_stmt 1 view .LVU225 6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 737 .loc 1 6369 20 is_stmt 0 view .LVU226 738 0042 0023 movs r3, #0 739 0044 86F84230 strb r3, [r6, #66] 6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 740 .loc 1 6372 9 is_stmt 1 view .LVU227 6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 741 .loc 1 6372 9 view .LVU228 742 0048 86F84030 strb r3, [r6, #64] 6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 743 .loc 1 6372 9 view .LVU229 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 744 .loc 1 6373 9 view .LVU230 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 745 .loc 1 6373 16 is_stmt 0 view .LVU231 746 004c 0120 movs r0, #1 747 004e 00E0 b .L65 748 .L68: 6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 749 .loc 1 6377 10 view .LVU232 750 0050 0020 movs r0, #0 751 .L65: 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 752 .loc 1 6378 1 view .LVU233 753 0052 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 754 .loc 1 6378 1 view .LVU234 755 .cfi_endproc 756 .LFE200: 758 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 759 .align 1 760 .syntax unified 761 .thumb 762 .thumb_func 764 I2C_RequestMemoryWrite: 765 .LVL50: 766 .LFB183: 5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 767 .loc 1 5308 1 is_stmt 1 view -0 768 .cfi_startproc 769 @ args = 8, pretend = 0, frame = 0 770 @ frame_needed = 0, uses_anonymous_args = 0 5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 771 .loc 1 5308 1 is_stmt 0 view .LVU236 772 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 773 .cfi_def_cfa_offset 24 774 .cfi_offset 4, -24 775 .cfi_offset 5, -20 776 .cfi_offset 6, -16 777 .cfi_offset 7, -12 778 .cfi_offset 8, -8 779 .cfi_offset 14, -4 780 0004 82B0 sub sp, sp, #8 781 .cfi_def_cfa_offset 32 ARM GAS /tmp/cczJHHnF.s page 136 782 0006 0446 mov r4, r0 783 0008 9046 mov r8, r2 784 000a 1D46 mov r5, r3 785 000c 089E ldr r6, [sp, #32] 786 000e 099F ldr r7, [sp, #36] 5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 787 .loc 1 5309 3 is_stmt 1 view .LVU237 788 0010 194B ldr r3, .L78 789 .LVL51: 5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 790 .loc 1 5309 3 is_stmt 0 view .LVU238 791 0012 0093 str r3, [sp] 792 0014 4FF08073 mov r3, #16777216 793 0018 EAB2 uxtb r2, r5 794 .LVL52: 5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 795 .loc 1 5309 3 view .LVU239 796 001a FFF7FEFF bl I2C_TransferConfig 797 .LVL53: 5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 798 .loc 1 5312 3 is_stmt 1 view .LVU240 5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 799 .loc 1 5312 7 is_stmt 0 view .LVU241 800 001e 3A46 mov r2, r7 801 0020 3146 mov r1, r6 802 0022 2046 mov r0, r4 803 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 804 .LVL54: 5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 805 .loc 1 5312 6 view .LVU242 806 0028 F8B9 cbnz r0, .L73 5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 807 .loc 1 5318 3 is_stmt 1 view .LVU243 5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 808 .loc 1 5318 6 is_stmt 0 view .LVU244 809 002a 012D cmp r5, #1 810 002c 0ED1 bne .L71 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 811 .loc 1 5321 5 is_stmt 1 view .LVU245 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 812 .loc 1 5321 9 is_stmt 0 view .LVU246 813 002e 2368 ldr r3, [r4] 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 814 .loc 1 5321 28 view .LVU247 815 0030 5FFA88F2 uxtb r2, r8 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 816 .loc 1 5321 26 view .LVU248 817 0034 9A62 str r2, [r3, #40] 818 .L72: 5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 819 .loc 1 5340 3 is_stmt 1 view .LVU249 5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 820 .loc 1 5340 7 is_stmt 0 view .LVU250 821 0036 0097 str r7, [sp] 822 0038 3346 mov r3, r6 823 003a 0022 movs r2, #0 824 003c 8021 movs r1, #128 ARM GAS /tmp/cczJHHnF.s page 137 825 003e 2046 mov r0, r4 826 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 827 .LVL55: 5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 828 .loc 1 5340 6 view .LVU251 829 0044 A8B9 cbnz r0, .L77 830 .L70: 5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 831 .loc 1 5346 1 view .LVU252 832 0046 02B0 add sp, sp, #8 833 .cfi_remember_state 834 .cfi_def_cfa_offset 24 835 @ sp needed 836 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 837 .LVL56: 838 .L71: 839 .cfi_restore_state 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 840 .loc 1 5327 5 is_stmt 1 view .LVU253 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 841 .loc 1 5327 9 is_stmt 0 view .LVU254 842 004c 2368 ldr r3, [r4] 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 843 .loc 1 5327 28 view .LVU255 844 004e 4FEA1822 lsr r2, r8, #8 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 845 .loc 1 5327 26 view .LVU256 846 0052 9A62 str r2, [r3, #40] 5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 847 .loc 1 5330 5 is_stmt 1 view .LVU257 5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 848 .loc 1 5330 9 is_stmt 0 view .LVU258 849 0054 3A46 mov r2, r7 850 0056 3146 mov r1, r6 851 0058 2046 mov r0, r4 852 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 853 .LVL57: 5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 854 .loc 1 5330 8 view .LVU259 855 005e 30B9 cbnz r0, .L74 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 856 .loc 1 5336 5 is_stmt 1 view .LVU260 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 857 .loc 1 5336 9 is_stmt 0 view .LVU261 858 0060 2368 ldr r3, [r4] 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 859 .loc 1 5336 28 view .LVU262 860 0062 5FFA88F2 uxtb r2, r8 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 861 .loc 1 5336 26 view .LVU263 862 0066 9A62 str r2, [r3, #40] 863 0068 E5E7 b .L72 864 .L73: 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 865 .loc 1 5314 12 view .LVU264 866 006a 0120 movs r0, #1 867 006c EBE7 b .L70 ARM GAS /tmp/cczJHHnF.s page 138 868 .L74: 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 869 .loc 1 5332 14 view .LVU265 870 006e 0120 movs r0, #1 871 0070 E9E7 b .L70 872 .L77: 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 873 .loc 1 5342 12 view .LVU266 874 0072 0120 movs r0, #1 875 0074 E7E7 b .L70 876 .L79: 877 0076 00BF .align 2 878 .L78: 879 0078 00200080 .word -2147475456 880 .cfi_endproc 881 .LFE183: 883 .section .text.I2C_RequestMemoryRead,"ax",%progbits 884 .align 1 885 .syntax unified 886 .thumb 887 .thumb_func 889 I2C_RequestMemoryRead: 890 .LVL58: 891 .LFB184: 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 892 .loc 1 5363 1 is_stmt 1 view -0 893 .cfi_startproc 894 @ args = 8, pretend = 0, frame = 0 895 @ frame_needed = 0, uses_anonymous_args = 0 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 896 .loc 1 5363 1 is_stmt 0 view .LVU268 897 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 898 .cfi_def_cfa_offset 24 899 .cfi_offset 4, -24 900 .cfi_offset 5, -20 901 .cfi_offset 6, -16 902 .cfi_offset 7, -12 903 .cfi_offset 8, -8 904 .cfi_offset 14, -4 905 0004 82B0 sub sp, sp, #8 906 .cfi_def_cfa_offset 32 907 0006 0446 mov r4, r0 908 0008 9046 mov r8, r2 909 000a 1D46 mov r5, r3 910 000c 089E ldr r6, [sp, #32] 911 000e 099F ldr r7, [sp, #36] 5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 912 .loc 1 5364 3 is_stmt 1 view .LVU269 913 0010 184B ldr r3, .L89 914 .LVL59: 5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 915 .loc 1 5364 3 is_stmt 0 view .LVU270 916 0012 0093 str r3, [sp] 917 0014 0023 movs r3, #0 918 0016 EAB2 uxtb r2, r5 919 .LVL60: 5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 139 920 .loc 1 5364 3 view .LVU271 921 0018 FFF7FEFF bl I2C_TransferConfig 922 .LVL61: 5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 923 .loc 1 5367 3 is_stmt 1 view .LVU272 5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 924 .loc 1 5367 7 is_stmt 0 view .LVU273 925 001c 3A46 mov r2, r7 926 001e 3146 mov r1, r6 927 0020 2046 mov r0, r4 928 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 929 .LVL62: 5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 930 .loc 1 5367 6 view .LVU274 931 0026 F8B9 cbnz r0, .L84 5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 932 .loc 1 5373 3 is_stmt 1 view .LVU275 5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 933 .loc 1 5373 6 is_stmt 0 view .LVU276 934 0028 012D cmp r5, #1 935 002a 0ED1 bne .L82 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 936 .loc 1 5376 5 is_stmt 1 view .LVU277 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 937 .loc 1 5376 9 is_stmt 0 view .LVU278 938 002c 2368 ldr r3, [r4] 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 939 .loc 1 5376 28 view .LVU279 940 002e 5FFA88F2 uxtb r2, r8 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 941 .loc 1 5376 26 view .LVU280 942 0032 9A62 str r2, [r3, #40] 943 .L83: 5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 944 .loc 1 5395 3 is_stmt 1 view .LVU281 5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 945 .loc 1 5395 7 is_stmt 0 view .LVU282 946 0034 0097 str r7, [sp] 947 0036 3346 mov r3, r6 948 0038 0022 movs r2, #0 949 003a 4021 movs r1, #64 950 003c 2046 mov r0, r4 951 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 952 .LVL63: 5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 953 .loc 1 5395 6 view .LVU283 954 0042 A8B9 cbnz r0, .L88 955 .L81: 5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 956 .loc 1 5401 1 view .LVU284 957 0044 02B0 add sp, sp, #8 958 .cfi_remember_state 959 .cfi_def_cfa_offset 24 960 @ sp needed 961 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 962 .LVL64: 963 .L82: ARM GAS /tmp/cczJHHnF.s page 140 964 .cfi_restore_state 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 965 .loc 1 5382 5 is_stmt 1 view .LVU285 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 966 .loc 1 5382 9 is_stmt 0 view .LVU286 967 004a 2368 ldr r3, [r4] 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 968 .loc 1 5382 28 view .LVU287 969 004c 4FEA1822 lsr r2, r8, #8 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 970 .loc 1 5382 26 view .LVU288 971 0050 9A62 str r2, [r3, #40] 5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 972 .loc 1 5385 5 is_stmt 1 view .LVU289 5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 973 .loc 1 5385 9 is_stmt 0 view .LVU290 974 0052 3A46 mov r2, r7 975 0054 3146 mov r1, r6 976 0056 2046 mov r0, r4 977 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 978 .LVL65: 5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 979 .loc 1 5385 8 view .LVU291 980 005c 30B9 cbnz r0, .L85 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 981 .loc 1 5391 5 is_stmt 1 view .LVU292 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 982 .loc 1 5391 9 is_stmt 0 view .LVU293 983 005e 2368 ldr r3, [r4] 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 984 .loc 1 5391 28 view .LVU294 985 0060 5FFA88F2 uxtb r2, r8 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 986 .loc 1 5391 26 view .LVU295 987 0064 9A62 str r2, [r3, #40] 988 0066 E5E7 b .L83 989 .L84: 5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 990 .loc 1 5369 12 view .LVU296 991 0068 0120 movs r0, #1 992 006a EBE7 b .L81 993 .L85: 5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 994 .loc 1 5387 14 view .LVU297 995 006c 0120 movs r0, #1 996 006e E9E7 b .L81 997 .L88: 5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 998 .loc 1 5397 12 view .LVU298 999 0070 0120 movs r0, #1 1000 0072 E7E7 b .L81 1001 .L90: 1002 .align 2 1003 .L89: 1004 0074 00200080 .word -2147475456 1005 .cfi_endproc 1006 .LFE184: ARM GAS /tmp/cczJHHnF.s page 141 1008 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1009 .align 1 1010 .syntax unified 1011 .thumb 1012 .thumb_func 1014 I2C_WaitOnSTOPFlagUntilTimeout: 1015 .LVL66: 1016 .LFB202: 6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1017 .loc 1 6428 1 is_stmt 1 view -0 1018 .cfi_startproc 1019 @ args = 0, pretend = 0, frame = 0 1020 @ frame_needed = 0, uses_anonymous_args = 0 6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1021 .loc 1 6428 1 is_stmt 0 view .LVU300 1022 0000 70B5 push {r4, r5, r6, lr} 1023 .cfi_def_cfa_offset 16 1024 .cfi_offset 4, -16 1025 .cfi_offset 5, -12 1026 .cfi_offset 6, -8 1027 .cfi_offset 14, -4 1028 0002 0546 mov r5, r0 1029 0004 0C46 mov r4, r1 1030 0006 1646 mov r6, r2 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1031 .loc 1 6429 3 is_stmt 1 view .LVU301 1032 .LVL67: 1033 .L92: 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1034 .loc 1 6429 51 view .LVU302 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1035 .loc 1 6429 10 is_stmt 0 view .LVU303 1036 0008 2B68 ldr r3, [r5] 1037 000a 9B69 ldr r3, [r3, #24] 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1038 .loc 1 6429 51 view .LVU304 1039 000c 13F0200F tst r3, #32 1040 0010 1AD1 bne .L98 6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1041 .loc 1 6432 5 is_stmt 1 view .LVU305 6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1042 .loc 1 6432 9 is_stmt 0 view .LVU306 1043 0012 3246 mov r2, r6 1044 0014 2146 mov r1, r4 1045 0016 2846 mov r0, r5 1046 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed 1047 .LVL68: 6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1048 .loc 1 6432 8 view .LVU307 1049 001c B0B9 cbnz r0, .L96 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1050 .loc 1 6438 5 is_stmt 1 view .LVU308 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1051 .loc 1 6438 11 is_stmt 0 view .LVU309 1052 001e FFF7FEFF bl HAL_GetTick 1053 .LVL69: 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 142 1054 .loc 1 6438 25 view .LVU310 1055 0022 801B subs r0, r0, r6 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1056 .loc 1 6438 8 view .LVU311 1057 0024 A042 cmp r0, r4 1058 0026 01D8 bhi .L94 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1059 .loc 1 6438 49 discriminator 1 view .LVU312 1060 0028 002C cmp r4, #0 1061 002a EDD1 bne .L92 1062 .L94: 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1063 .loc 1 6440 7 is_stmt 1 view .LVU313 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1064 .loc 1 6440 11 is_stmt 0 view .LVU314 1065 002c 6B6C ldr r3, [r5, #68] 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1066 .loc 1 6440 23 view .LVU315 1067 002e 43F02003 orr r3, r3, #32 1068 0032 6B64 str r3, [r5, #68] 6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1069 .loc 1 6441 7 is_stmt 1 view .LVU316 6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1070 .loc 1 6441 19 is_stmt 0 view .LVU317 1071 0034 2023 movs r3, #32 1072 0036 85F84130 strb r3, [r5, #65] 6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1073 .loc 1 6442 7 is_stmt 1 view .LVU318 6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1074 .loc 1 6442 18 is_stmt 0 view .LVU319 1075 003a 0023 movs r3, #0 1076 003c 85F84230 strb r3, [r5, #66] 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1077 .loc 1 6445 7 is_stmt 1 view .LVU320 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1078 .loc 1 6445 7 view .LVU321 1079 0040 85F84030 strb r3, [r5, #64] 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1080 .loc 1 6445 7 view .LVU322 6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1081 .loc 1 6447 7 view .LVU323 6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1082 .loc 1 6447 14 is_stmt 0 view .LVU324 1083 0044 0120 movs r0, #1 1084 .L93: 6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1085 .loc 1 6451 1 view .LVU325 1086 0046 70BD pop {r4, r5, r6, pc} 1087 .LVL70: 1088 .L98: 6450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1089 .loc 1 6450 10 view .LVU326 1090 0048 0020 movs r0, #0 1091 004a FCE7 b .L93 1092 .L96: 6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1093 .loc 1 6434 14 view .LVU327 ARM GAS /tmp/cczJHHnF.s page 143 1094 004c 0120 movs r0, #1 1095 004e FAE7 b .L93 1096 .cfi_endproc 1097 .LFE202: 1099 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1100 .align 1 1101 .syntax unified 1102 .thumb 1103 .thumb_func 1105 I2C_WaitOnRXNEFlagUntilTimeout: 1106 .LVL71: 1107 .LFB203: 6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1108 .loc 1 6463 1 is_stmt 1 view -0 1109 .cfi_startproc 1110 @ args = 0, pretend = 0, frame = 0 1111 @ frame_needed = 0, uses_anonymous_args = 0 6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1112 .loc 1 6463 1 is_stmt 0 view .LVU329 1113 0000 70B5 push {r4, r5, r6, lr} 1114 .cfi_def_cfa_offset 16 1115 .cfi_offset 4, -16 1116 .cfi_offset 5, -12 1117 .cfi_offset 6, -8 1118 .cfi_offset 14, -4 1119 0002 0446 mov r4, r0 1120 0004 0D46 mov r5, r1 1121 0006 1646 mov r6, r2 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1122 .loc 1 6464 3 is_stmt 1 view .LVU330 1123 .LVL72: 1124 .L100: 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1125 .loc 1 6464 50 view .LVU331 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1126 .loc 1 6464 10 is_stmt 0 view .LVU332 1127 0008 2368 ldr r3, [r4] 1128 000a 9B69 ldr r3, [r3, #24] 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1129 .loc 1 6464 50 view .LVU333 1130 000c 13F0040F tst r3, #4 1131 0010 3ED1 bne .L108 6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1132 .loc 1 6467 5 is_stmt 1 view .LVU334 6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1133 .loc 1 6467 9 is_stmt 0 view .LVU335 1134 0012 3246 mov r2, r6 1135 0014 2946 mov r1, r5 1136 0016 2046 mov r0, r4 1137 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed 1138 .LVL73: 6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1139 .loc 1 6467 8 view .LVU336 1140 001c 0146 mov r1, r0 1141 001e 0028 cmp r0, #0 1142 0020 38D1 bne .L106 6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 144 1143 .loc 1 6473 5 is_stmt 1 view .LVU337 6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1144 .loc 1 6473 9 is_stmt 0 view .LVU338 1145 0022 2368 ldr r3, [r4] 1146 0024 9A69 ldr r2, [r3, #24] 6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1147 .loc 1 6473 8 view .LVU339 1148 0026 12F0200F tst r2, #32 1149 002a 13D1 bne .L109 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1150 .loc 1 6503 5 is_stmt 1 view .LVU340 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1151 .loc 1 6503 11 is_stmt 0 view .LVU341 1152 002c FFF7FEFF bl HAL_GetTick 1153 .LVL74: 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1154 .loc 1 6503 25 view .LVU342 1155 0030 801B subs r0, r0, r6 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1156 .loc 1 6503 8 view .LVU343 1157 0032 A842 cmp r0, r5 1158 0034 01D8 bhi .L104 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1159 .loc 1 6503 49 discriminator 1 view .LVU344 1160 0036 002D cmp r5, #0 1161 0038 E6D1 bne .L100 1162 .L104: 6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1163 .loc 1 6505 7 is_stmt 1 view .LVU345 6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1164 .loc 1 6505 11 is_stmt 0 view .LVU346 1165 003a 636C ldr r3, [r4, #68] 6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1166 .loc 1 6505 23 view .LVU347 1167 003c 43F02003 orr r3, r3, #32 1168 0040 6364 str r3, [r4, #68] 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1169 .loc 1 6506 7 is_stmt 1 view .LVU348 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1170 .loc 1 6506 19 is_stmt 0 view .LVU349 1171 0042 2023 movs r3, #32 1172 0044 84F84130 strb r3, [r4, #65] 6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1173 .loc 1 6509 7 is_stmt 1 view .LVU350 6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1174 .loc 1 6509 7 view .LVU351 1175 0048 0023 movs r3, #0 1176 004a 84F84030 strb r3, [r4, #64] 6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1177 .loc 1 6509 7 view .LVU352 6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1178 .loc 1 6511 7 view .LVU353 6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1179 .loc 1 6511 14 is_stmt 0 view .LVU354 1180 004e 0121 movs r1, #1 1181 .L101: 6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 145 1182 .loc 1 6515 1 view .LVU355 1183 0050 0846 mov r0, r1 1184 0052 70BD pop {r4, r5, r6, pc} 1185 .LVL75: 1186 .L109: 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1187 .loc 1 6477 7 is_stmt 1 view .LVU356 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1188 .loc 1 6477 12 is_stmt 0 view .LVU357 1189 0054 9A69 ldr r2, [r3, #24] 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1190 .loc 1 6477 10 view .LVU358 1191 0056 12F0040F tst r2, #4 1192 005a 02D0 beq .L103 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1193 .loc 1 6477 68 discriminator 1 view .LVU359 1194 005c 228D ldrh r2, [r4, #40] 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1195 .loc 1 6477 60 discriminator 1 view .LVU360 1196 005e 002A cmp r2, #0 1197 0060 F6D1 bne .L101 1198 .L103: 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1199 .loc 1 6486 9 is_stmt 1 view .LVU361 1200 0062 2022 movs r2, #32 1201 0064 DA61 str r2, [r3, #28] 6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1202 .loc 1 6489 9 view .LVU362 1203 0066 2168 ldr r1, [r4] 1204 0068 4B68 ldr r3, [r1, #4] 1205 006a 23F0FF73 bic r3, r3, #33423360 1206 006e 23F48B33 bic r3, r3, #71168 1207 0072 23F4FF73 bic r3, r3, #510 1208 0076 23F00103 bic r3, r3, #1 1209 007a 4B60 str r3, [r1, #4] 6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1210 .loc 1 6491 9 view .LVU363 6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1211 .loc 1 6491 25 is_stmt 0 view .LVU364 1212 007c 0023 movs r3, #0 1213 007e 6364 str r3, [r4, #68] 6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1214 .loc 1 6492 9 is_stmt 1 view .LVU365 6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1215 .loc 1 6492 21 is_stmt 0 view .LVU366 1216 0080 84F84120 strb r2, [r4, #65] 6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1217 .loc 1 6493 9 is_stmt 1 view .LVU367 6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1218 .loc 1 6493 20 is_stmt 0 view .LVU368 1219 0084 84F84230 strb r3, [r4, #66] 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1220 .loc 1 6496 9 is_stmt 1 view .LVU369 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1221 .loc 1 6496 9 view .LVU370 1222 0088 84F84030 strb r3, [r4, #64] 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 146 1223 .loc 1 6496 9 view .LVU371 6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1224 .loc 1 6498 9 view .LVU372 6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1225 .loc 1 6498 16 is_stmt 0 view .LVU373 1226 008c 0121 movs r1, #1 1227 008e DFE7 b .L101 1228 .L108: 6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1229 .loc 1 6514 10 view .LVU374 1230 0090 0021 movs r1, #0 1231 0092 DDE7 b .L101 1232 .L106: 6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1233 .loc 1 6469 14 view .LVU375 1234 0094 0121 movs r1, #1 1235 0096 DBE7 b .L101 1236 .cfi_endproc 1237 .LFE203: 1239 .section .text.HAL_I2C_MspInit,"ax",%progbits 1240 .align 1 1241 .weak HAL_I2C_MspInit 1242 .syntax unified 1243 .thumb 1244 .thumb_func 1246 HAL_I2C_MspInit: 1247 .LVL76: 1248 .LFB132: 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1249 .loc 1 679 1 is_stmt 1 view -0 1250 .cfi_startproc 1251 @ args = 0, pretend = 0, frame = 0 1252 @ frame_needed = 0, uses_anonymous_args = 0 1253 @ link register save eliminated. 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1254 .loc 1 681 3 view .LVU377 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1255 .loc 1 686 1 is_stmt 0 view .LVU378 1256 0000 7047 bx lr 1257 .cfi_endproc 1258 .LFE132: 1260 .section .text.HAL_I2C_Init,"ax",%progbits 1261 .align 1 1262 .global HAL_I2C_Init 1263 .syntax unified 1264 .thumb 1265 .thumb_func 1267 HAL_I2C_Init: 1268 .LVL77: 1269 .LFB130: 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1270 .loc 1 523 1 is_stmt 1 view -0 1271 .cfi_startproc 1272 @ args = 0, pretend = 0, frame = 0 1273 @ frame_needed = 0, uses_anonymous_args = 0 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1274 .loc 1 525 3 view .LVU380 ARM GAS /tmp/cczJHHnF.s page 147 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1275 .loc 1 525 6 is_stmt 0 view .LVU381 1276 0000 0028 cmp r0, #0 1277 0002 59D0 beq .L117 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1278 .loc 1 523 1 view .LVU382 1279 0004 10B5 push {r4, lr} 1280 .cfi_def_cfa_offset 8 1281 .cfi_offset 4, -8 1282 .cfi_offset 14, -4 1283 0006 0446 mov r4, r0 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1284 .loc 1 531 3 is_stmt 1 view .LVU383 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1285 .loc 1 532 3 view .LVU384 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1286 .loc 1 533 3 view .LVU385 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1287 .loc 1 534 3 view .LVU386 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1288 .loc 1 535 3 view .LVU387 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1289 .loc 1 536 3 view .LVU388 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1290 .loc 1 537 3 view .LVU389 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1291 .loc 1 538 3 view .LVU390 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1292 .loc 1 540 3 view .LVU391 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1293 .loc 1 540 11 is_stmt 0 view .LVU392 1294 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1295 .loc 1 540 6 view .LVU393 1296 000c 002B cmp r3, #0 1297 000e 43D0 beq .L122 1298 .LVL78: 1299 .L113: 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1300 .loc 1 571 3 is_stmt 1 view .LVU394 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1301 .loc 1 571 15 is_stmt 0 view .LVU395 1302 0010 2423 movs r3, #36 1303 0012 84F84130 strb r3, [r4, #65] 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1304 .loc 1 574 3 is_stmt 1 view .LVU396 1305 0016 2268 ldr r2, [r4] 1306 0018 1368 ldr r3, [r2] 1307 001a 23F00103 bic r3, r3, #1 1308 001e 1360 str r3, [r2] 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1309 .loc 1 578 3 view .LVU397 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1310 .loc 1 578 39 is_stmt 0 view .LVU398 1311 0020 6368 ldr r3, [r4, #4] 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1312 .loc 1 578 7 view .LVU399 ARM GAS /tmp/cczJHHnF.s page 148 1313 0022 2268 ldr r2, [r4] 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1314 .loc 1 578 47 view .LVU400 1315 0024 23F07063 bic r3, r3, #251658240 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1316 .loc 1 578 27 view .LVU401 1317 0028 1361 str r3, [r2, #16] 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1318 .loc 1 582 3 is_stmt 1 view .LVU402 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1319 .loc 1 582 7 is_stmt 0 view .LVU403 1320 002a 2268 ldr r2, [r4] 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1321 .loc 1 582 17 view .LVU404 1322 002c 9368 ldr r3, [r2, #8] 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1323 .loc 1 582 24 view .LVU405 1324 002e 23F40043 bic r3, r3, #32768 1325 0032 9360 str r3, [r2, #8] 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1326 .loc 1 585 3 is_stmt 1 view .LVU406 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1327 .loc 1 585 17 is_stmt 0 view .LVU407 1328 0034 E368 ldr r3, [r4, #12] 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1329 .loc 1 585 6 view .LVU408 1330 0036 012B cmp r3, #1 1331 0038 33D0 beq .L123 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1332 .loc 1 591 5 is_stmt 1 view .LVU409 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1333 .loc 1 591 75 is_stmt 0 view .LVU410 1334 003a A368 ldr r3, [r4, #8] 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1335 .loc 1 591 9 view .LVU411 1336 003c 2268 ldr r2, [r4] 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1337 .loc 1 591 63 view .LVU412 1338 003e 43F40443 orr r3, r3, #33792 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1339 .loc 1 591 26 view .LVU413 1340 0042 9360 str r3, [r2, #8] 1341 .L115: 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1342 .loc 1 596 3 is_stmt 1 view .LVU414 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1343 .loc 1 596 17 is_stmt 0 view .LVU415 1344 0044 E368 ldr r3, [r4, #12] 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1345 .loc 1 596 6 view .LVU416 1346 0046 022B cmp r3, #2 1347 0048 31D0 beq .L124 1348 .L116: 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1349 .loc 1 601 3 is_stmt 1 view .LVU417 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1350 .loc 1 601 7 is_stmt 0 view .LVU418 ARM GAS /tmp/cczJHHnF.s page 149 1351 004a 2268 ldr r2, [r4] 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1352 .loc 1 601 17 view .LVU419 1353 004c 5368 ldr r3, [r2, #4] 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1354 .loc 1 601 23 view .LVU420 1355 004e 43F00073 orr r3, r3, #33554432 1356 0052 43F40043 orr r3, r3, #32768 1357 0056 5360 str r3, [r2, #4] 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1358 .loc 1 605 3 is_stmt 1 view .LVU421 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1359 .loc 1 605 7 is_stmt 0 view .LVU422 1360 0058 2268 ldr r2, [r4] 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1361 .loc 1 605 17 view .LVU423 1362 005a D368 ldr r3, [r2, #12] 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1363 .loc 1 605 24 view .LVU424 1364 005c 23F40043 bic r3, r3, #32768 1365 0060 D360 str r3, [r2, #12] 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1366 .loc 1 608 3 is_stmt 1 view .LVU425 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1367 .loc 1 608 37 is_stmt 0 view .LVU426 1368 0062 2369 ldr r3, [r4, #16] 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1369 .loc 1 608 66 view .LVU427 1370 0064 6269 ldr r2, [r4, #20] 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1371 .loc 1 608 54 view .LVU428 1372 0066 1343 orrs r3, r3, r2 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1373 .loc 1 609 38 view .LVU429 1374 0068 A169 ldr r1, [r4, #24] 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1375 .loc 1 608 7 view .LVU430 1376 006a 2268 ldr r2, [r4] 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1377 .loc 1 608 79 view .LVU431 1378 006c 43EA0123 orr r3, r3, r1, lsl #8 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1379 .loc 1 608 24 view .LVU432 1380 0070 D360 str r3, [r2, #12] 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1381 .loc 1 613 3 is_stmt 1 view .LVU433 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1382 .loc 1 613 36 is_stmt 0 view .LVU434 1383 0072 E369 ldr r3, [r4, #28] 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1384 .loc 1 613 65 view .LVU435 1385 0074 216A ldr r1, [r4, #32] 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1386 .loc 1 613 7 view .LVU436 1387 0076 2268 ldr r2, [r4] 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1388 .loc 1 613 53 view .LVU437 ARM GAS /tmp/cczJHHnF.s page 150 1389 0078 0B43 orrs r3, r3, r1 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1390 .loc 1 613 23 view .LVU438 1391 007a 1360 str r3, [r2] 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1392 .loc 1 616 3 is_stmt 1 view .LVU439 1393 007c 2268 ldr r2, [r4] 1394 007e 1368 ldr r3, [r2] 1395 0080 43F00103 orr r3, r3, #1 1396 0084 1360 str r3, [r2] 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1397 .loc 1 618 3 view .LVU440 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1398 .loc 1 618 19 is_stmt 0 view .LVU441 1399 0086 0020 movs r0, #0 1400 0088 6064 str r0, [r4, #68] 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1401 .loc 1 619 3 is_stmt 1 view .LVU442 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1402 .loc 1 619 15 is_stmt 0 view .LVU443 1403 008a 2023 movs r3, #32 1404 008c 84F84130 strb r3, [r4, #65] 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1405 .loc 1 620 3 is_stmt 1 view .LVU444 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1406 .loc 1 620 23 is_stmt 0 view .LVU445 1407 0090 2063 str r0, [r4, #48] 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1408 .loc 1 621 3 is_stmt 1 view .LVU446 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1409 .loc 1 621 14 is_stmt 0 view .LVU447 1410 0092 84F84200 strb r0, [r4, #66] 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1411 .loc 1 623 3 is_stmt 1 view .LVU448 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1412 .loc 1 624 1 is_stmt 0 view .LVU449 1413 0096 10BD pop {r4, pc} 1414 .LVL79: 1415 .L122: 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1416 .loc 1 543 5 is_stmt 1 view .LVU450 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1417 .loc 1 543 16 is_stmt 0 view .LVU451 1418 0098 80F84030 strb r3, [r0, #64] 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1419 .loc 1 567 5 is_stmt 1 view .LVU452 1420 009c FFF7FEFF bl HAL_I2C_MspInit 1421 .LVL80: 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1422 .loc 1 567 5 is_stmt 0 view .LVU453 1423 00a0 B6E7 b .L113 1424 .L123: 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1425 .loc 1 587 5 is_stmt 1 view .LVU454 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1426 .loc 1 587 56 is_stmt 0 view .LVU455 1427 00a2 A368 ldr r3, [r4, #8] ARM GAS /tmp/cczJHHnF.s page 151 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1428 .loc 1 587 9 view .LVU456 1429 00a4 2268 ldr r2, [r4] 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1430 .loc 1 587 44 view .LVU457 1431 00a6 43F40043 orr r3, r3, #32768 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1432 .loc 1 587 26 view .LVU458 1433 00aa 9360 str r3, [r2, #8] 1434 00ac CAE7 b .L115 1435 .L124: 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1436 .loc 1 598 5 is_stmt 1 view .LVU459 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1437 .loc 1 598 9 is_stmt 0 view .LVU460 1438 00ae 2368 ldr r3, [r4] 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1439 .loc 1 598 25 view .LVU461 1440 00b0 4FF40062 mov r2, #2048 1441 00b4 5A60 str r2, [r3, #4] 1442 00b6 C8E7 b .L116 1443 .LVL81: 1444 .L117: 1445 .cfi_def_cfa_offset 0 1446 .cfi_restore 4 1447 .cfi_restore 14 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1448 .loc 1 527 12 view .LVU462 1449 00b8 0120 movs r0, #1 1450 .LVL82: 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1451 .loc 1 624 1 view .LVU463 1452 00ba 7047 bx lr 1453 .cfi_endproc 1454 .LFE130: 1456 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1457 .align 1 1458 .weak HAL_I2C_MspDeInit 1459 .syntax unified 1460 .thumb 1461 .thumb_func 1463 HAL_I2C_MspDeInit: 1464 .LVL83: 1465 .LFB133: 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1466 .loc 1 695 1 is_stmt 1 view -0 1467 .cfi_startproc 1468 @ args = 0, pretend = 0, frame = 0 1469 @ frame_needed = 0, uses_anonymous_args = 0 1470 @ link register save eliminated. 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1471 .loc 1 697 3 view .LVU465 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1472 .loc 1 702 1 is_stmt 0 view .LVU466 1473 0000 7047 bx lr 1474 .cfi_endproc 1475 .LFE133: ARM GAS /tmp/cczJHHnF.s page 152 1477 .section .text.HAL_I2C_DeInit,"ax",%progbits 1478 .align 1 1479 .global HAL_I2C_DeInit 1480 .syntax unified 1481 .thumb 1482 .thumb_func 1484 HAL_I2C_DeInit: 1485 .LVL84: 1486 .LFB131: 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1487 .loc 1 633 1 is_stmt 1 view -0 1488 .cfi_startproc 1489 @ args = 0, pretend = 0, frame = 0 1490 @ frame_needed = 0, uses_anonymous_args = 0 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1491 .loc 1 635 3 view .LVU468 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1492 .loc 1 635 6 is_stmt 0 view .LVU469 1493 0000 A8B1 cbz r0, .L128 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1494 .loc 1 633 1 view .LVU470 1495 0002 10B5 push {r4, lr} 1496 .cfi_def_cfa_offset 8 1497 .cfi_offset 4, -8 1498 .cfi_offset 14, -4 1499 0004 0446 mov r4, r0 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1500 .loc 1 641 3 is_stmt 1 view .LVU471 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1501 .loc 1 643 3 view .LVU472 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1502 .loc 1 643 15 is_stmt 0 view .LVU473 1503 0006 2423 movs r3, #36 1504 0008 80F84130 strb r3, [r0, #65] 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1505 .loc 1 646 3 is_stmt 1 view .LVU474 1506 000c 0268 ldr r2, [r0] 1507 000e 1368 ldr r3, [r2] 1508 0010 23F00103 bic r3, r3, #1 1509 0014 1360 str r3, [r2] 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1510 .loc 1 658 3 view .LVU475 1511 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1512 .LVL85: 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1513 .loc 1 661 3 view .LVU476 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1514 .loc 1 661 19 is_stmt 0 view .LVU477 1515 001a 0020 movs r0, #0 1516 001c 6064 str r0, [r4, #68] 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1517 .loc 1 662 3 is_stmt 1 view .LVU478 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1518 .loc 1 662 15 is_stmt 0 view .LVU479 1519 001e 84F84100 strb r0, [r4, #65] 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1520 .loc 1 663 3 is_stmt 1 view .LVU480 ARM GAS /tmp/cczJHHnF.s page 153 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1521 .loc 1 663 23 is_stmt 0 view .LVU481 1522 0022 2063 str r0, [r4, #48] 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1523 .loc 1 664 3 is_stmt 1 view .LVU482 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1524 .loc 1 664 14 is_stmt 0 view .LVU483 1525 0024 84F84200 strb r0, [r4, #66] 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1526 .loc 1 667 3 is_stmt 1 view .LVU484 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1527 .loc 1 667 3 view .LVU485 1528 0028 84F84000 strb r0, [r4, #64] 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1529 .loc 1 667 3 view .LVU486 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1530 .loc 1 669 3 view .LVU487 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1531 .loc 1 670 1 is_stmt 0 view .LVU488 1532 002c 10BD pop {r4, pc} 1533 .LVL86: 1534 .L128: 1535 .cfi_def_cfa_offset 0 1536 .cfi_restore 4 1537 .cfi_restore 14 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1538 .loc 1 637 12 view .LVU489 1539 002e 0120 movs r0, #1 1540 .LVL87: 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1541 .loc 1 670 1 view .LVU490 1542 0030 7047 bx lr 1543 .cfi_endproc 1544 .LFE131: 1546 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1547 .align 1 1548 .global HAL_I2C_Master_Transmit 1549 .syntax unified 1550 .thumb 1551 .thumb_func 1553 HAL_I2C_Master_Transmit: 1554 .LVL88: 1555 .LFB134: 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1556 .loc 1 1117 1 is_stmt 1 view -0 1557 .cfi_startproc 1558 @ args = 4, pretend = 0, frame = 0 1559 @ frame_needed = 0, uses_anonymous_args = 0 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1560 .loc 1 1117 1 is_stmt 0 view .LVU492 1561 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1562 .cfi_def_cfa_offset 32 1563 .cfi_offset 4, -32 1564 .cfi_offset 5, -28 1565 .cfi_offset 6, -24 1566 .cfi_offset 7, -20 1567 .cfi_offset 8, -16 ARM GAS /tmp/cczJHHnF.s page 154 1568 .cfi_offset 9, -12 1569 .cfi_offset 10, -8 1570 .cfi_offset 14, -4 1571 0004 82B0 sub sp, sp, #8 1572 .cfi_def_cfa_offset 40 1573 0006 0F46 mov r7, r1 1574 0008 0A9E ldr r6, [sp, #40] 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1575 .loc 1 1118 3 is_stmt 1 view .LVU493 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1576 .loc 1 1120 3 view .LVU494 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1577 .loc 1 1120 11 is_stmt 0 view .LVU495 1578 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1579 .LVL89: 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1580 .loc 1 1120 11 view .LVU496 1581 000e C9B2 uxtb r1, r1 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1582 .loc 1 1120 6 view .LVU497 1583 0010 2029 cmp r1, #32 1584 0012 40F0A380 bne .L141 1585 0016 0446 mov r4, r0 1586 0018 9046 mov r8, r2 1587 001a 9946 mov r9, r3 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1588 .loc 1 1123 5 is_stmt 1 view .LVU498 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1589 .loc 1 1123 5 view .LVU499 1590 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1591 .LVL90: 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1592 .loc 1 1123 5 is_stmt 0 view .LVU500 1593 0020 012B cmp r3, #1 1594 0022 00F09F80 beq .L142 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1595 .loc 1 1123 5 is_stmt 1 discriminator 2 view .LVU501 1596 0026 4FF0010A mov r10, #1 1597 002a 80F840A0 strb r10, [r0, #64] 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1598 .loc 1 1123 5 discriminator 2 view .LVU502 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1599 .loc 1 1126 5 discriminator 2 view .LVU503 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1600 .loc 1 1126 17 is_stmt 0 discriminator 2 view .LVU504 1601 002e FFF7FEFF bl HAL_GetTick 1602 .LVL91: 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1603 .loc 1 1126 17 discriminator 2 view .LVU505 1604 0032 0546 mov r5, r0 1605 .LVL92: 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1606 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU506 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1607 .loc 1 1128 9 is_stmt 0 discriminator 2 view .LVU507 1608 0034 0090 str r0, [sp] 1609 0036 1923 movs r3, #25 ARM GAS /tmp/cczJHHnF.s page 155 1610 0038 5246 mov r2, r10 1611 003a 4FF40041 mov r1, #32768 1612 003e 2046 mov r0, r4 1613 .LVL93: 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1614 .loc 1 1128 9 discriminator 2 view .LVU508 1615 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1616 .LVL94: 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1617 .loc 1 1128 8 discriminator 2 view .LVU509 1618 0044 0028 cmp r0, #0 1619 0046 40F08F80 bne .L143 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1620 .loc 1 1133 5 is_stmt 1 view .LVU510 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1621 .loc 1 1133 21 is_stmt 0 view .LVU511 1622 004a 2123 movs r3, #33 1623 004c 84F84130 strb r3, [r4, #65] 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1624 .loc 1 1134 5 is_stmt 1 view .LVU512 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1625 .loc 1 1134 21 is_stmt 0 view .LVU513 1626 0050 1023 movs r3, #16 1627 0052 84F84230 strb r3, [r4, #66] 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1628 .loc 1 1135 5 is_stmt 1 view .LVU514 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1629 .loc 1 1135 21 is_stmt 0 view .LVU515 1630 0056 0023 movs r3, #0 1631 0058 6364 str r3, [r4, #68] 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1632 .loc 1 1138 5 is_stmt 1 view .LVU516 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1633 .loc 1 1138 21 is_stmt 0 view .LVU517 1634 005a C4F82480 str r8, [r4, #36] 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1635 .loc 1 1139 5 is_stmt 1 view .LVU518 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1636 .loc 1 1139 21 is_stmt 0 view .LVU519 1637 005e A4F82A90 strh r9, [r4, #42] @ movhi 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1638 .loc 1 1140 5 is_stmt 1 view .LVU520 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1639 .loc 1 1140 21 is_stmt 0 view .LVU521 1640 0062 6363 str r3, [r4, #52] 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1641 .loc 1 1144 5 is_stmt 1 view .LVU522 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1642 .loc 1 1144 13 is_stmt 0 view .LVU523 1643 0064 638D ldrh r3, [r4, #42] 1644 0066 9BB2 uxth r3, r3 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1645 .loc 1 1144 8 view .LVU524 1646 0068 FF2B cmp r3, #255 1647 006a 0AD9 bls .L135 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1648 .loc 1 1146 7 is_stmt 1 view .LVU525 ARM GAS /tmp/cczJHHnF.s page 156 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1649 .loc 1 1146 22 is_stmt 0 view .LVU526 1650 006c FF22 movs r2, #255 1651 006e 2285 strh r2, [r4, #40] @ movhi 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1652 .loc 1 1147 7 is_stmt 1 view .LVU527 1653 0070 414B ldr r3, .L149 1654 0072 0093 str r3, [sp] 1655 0074 4FF08073 mov r3, #16777216 1656 0078 3946 mov r1, r7 1657 007a 2046 mov r0, r4 1658 007c FFF7FEFF bl I2C_TransferConfig 1659 .LVL95: 1660 0080 18E0 b .L137 1661 .L135: 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1662 .loc 1 1152 7 view .LVU528 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1663 .loc 1 1152 28 is_stmt 0 view .LVU529 1664 0082 628D ldrh r2, [r4, #42] 1665 0084 92B2 uxth r2, r2 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1666 .loc 1 1152 22 view .LVU530 1667 0086 2285 strh r2, [r4, #40] @ movhi 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1668 .loc 1 1153 7 is_stmt 1 view .LVU531 1669 0088 3B4B ldr r3, .L149 1670 008a 0093 str r3, [sp] 1671 008c 4FF00073 mov r3, #33554432 1672 0090 D2B2 uxtb r2, r2 1673 0092 3946 mov r1, r7 1674 0094 2046 mov r0, r4 1675 0096 FFF7FEFF bl I2C_TransferConfig 1676 .LVL96: 1677 009a 0BE0 b .L137 1678 .L139: 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1679 .loc 1 1189 11 view .LVU532 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1680 .loc 1 1189 32 is_stmt 0 view .LVU533 1681 009c 628D ldrh r2, [r4, #42] 1682 009e 92B2 uxth r2, r2 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1683 .loc 1 1189 26 view .LVU534 1684 00a0 2285 strh r2, [r4, #40] @ movhi 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1685 .loc 1 1190 11 is_stmt 1 view .LVU535 1686 00a2 0023 movs r3, #0 1687 00a4 0093 str r3, [sp] 1688 00a6 4FF00073 mov r3, #33554432 1689 00aa D2B2 uxtb r2, r2 1690 00ac 3946 mov r1, r7 1691 00ae 2046 mov r0, r4 1692 00b0 FFF7FEFF bl I2C_TransferConfig 1693 .LVL97: 1694 .L137: 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 157 1695 .loc 1 1157 28 view .LVU536 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1696 .loc 1 1157 16 is_stmt 0 view .LVU537 1697 00b4 638D ldrh r3, [r4, #42] 1698 00b6 9BB2 uxth r3, r3 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1699 .loc 1 1157 28 view .LVU538 1700 00b8 002B cmp r3, #0 1701 00ba 33D0 beq .L148 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1702 .loc 1 1160 7 is_stmt 1 view .LVU539 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1703 .loc 1 1160 11 is_stmt 0 view .LVU540 1704 00bc 2A46 mov r2, r5 1705 00be 3146 mov r1, r6 1706 00c0 2046 mov r0, r4 1707 00c2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1708 .LVL98: 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1709 .loc 1 1160 10 view .LVU541 1710 00c6 0028 cmp r0, #0 1711 00c8 50D1 bne .L144 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1712 .loc 1 1165 7 is_stmt 1 view .LVU542 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1713 .loc 1 1165 35 is_stmt 0 view .LVU543 1714 00ca 626A ldr r2, [r4, #36] 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1715 .loc 1 1165 11 view .LVU544 1716 00cc 2368 ldr r3, [r4] 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1717 .loc 1 1165 30 view .LVU545 1718 00ce 1278 ldrb r2, [r2] @ zero_extendqisi2 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1719 .loc 1 1165 28 view .LVU546 1720 00d0 9A62 str r2, [r3, #40] 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1721 .loc 1 1168 7 is_stmt 1 view .LVU547 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1722 .loc 1 1168 11 is_stmt 0 view .LVU548 1723 00d2 636A ldr r3, [r4, #36] 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1724 .loc 1 1168 21 view .LVU549 1725 00d4 0133 adds r3, r3, #1 1726 00d6 6362 str r3, [r4, #36] 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1727 .loc 1 1170 7 is_stmt 1 view .LVU550 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1728 .loc 1 1170 11 is_stmt 0 view .LVU551 1729 00d8 638D ldrh r3, [r4, #42] 1730 00da 9BB2 uxth r3, r3 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1731 .loc 1 1170 22 view .LVU552 1732 00dc 013B subs r3, r3, #1 1733 00de 9BB2 uxth r3, r3 1734 00e0 6385 strh r3, [r4, #42] @ movhi 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 158 1735 .loc 1 1171 7 is_stmt 1 view .LVU553 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1736 .loc 1 1171 11 is_stmt 0 view .LVU554 1737 00e2 238D ldrh r3, [r4, #40] 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1738 .loc 1 1171 21 view .LVU555 1739 00e4 013B subs r3, r3, #1 1740 00e6 9BB2 uxth r3, r3 1741 00e8 2385 strh r3, [r4, #40] @ movhi 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1742 .loc 1 1173 7 is_stmt 1 view .LVU556 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1743 .loc 1 1173 16 is_stmt 0 view .LVU557 1744 00ea 628D ldrh r2, [r4, #42] 1745 00ec 92B2 uxth r2, r2 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1746 .loc 1 1173 10 view .LVU558 1747 00ee 002A cmp r2, #0 1748 00f0 E0D0 beq .L137 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1749 .loc 1 1173 35 discriminator 1 view .LVU559 1750 00f2 002B cmp r3, #0 1751 00f4 DED1 bne .L137 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1752 .loc 1 1176 9 is_stmt 1 view .LVU560 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1753 .loc 1 1176 13 is_stmt 0 view .LVU561 1754 00f6 0095 str r5, [sp] 1755 00f8 3346 mov r3, r6 1756 00fa 0022 movs r2, #0 1757 00fc 8021 movs r1, #128 1758 00fe 2046 mov r0, r4 1759 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1760 .LVL99: 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1761 .loc 1 1176 12 view .LVU562 1762 0104 A0BB cbnz r0, .L145 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1763 .loc 1 1181 9 is_stmt 1 view .LVU563 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1764 .loc 1 1181 17 is_stmt 0 view .LVU564 1765 0106 638D ldrh r3, [r4, #42] 1766 0108 9BB2 uxth r3, r3 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1767 .loc 1 1181 12 view .LVU565 1768 010a FF2B cmp r3, #255 1769 010c C6D9 bls .L139 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1770 .loc 1 1183 11 is_stmt 1 view .LVU566 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1771 .loc 1 1183 26 is_stmt 0 view .LVU567 1772 010e FF22 movs r2, #255 1773 0110 2285 strh r2, [r4, #40] @ movhi 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1774 .loc 1 1184 11 is_stmt 1 view .LVU568 1775 0112 0023 movs r3, #0 1776 0114 0093 str r3, [sp] ARM GAS /tmp/cczJHHnF.s page 159 1777 0116 4FF08073 mov r3, #16777216 1778 011a 3946 mov r1, r7 1779 011c 2046 mov r0, r4 1780 011e FFF7FEFF bl I2C_TransferConfig 1781 .LVL100: 1782 0122 C7E7 b .L137 1783 .L148: 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1784 .loc 1 1198 5 view .LVU569 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1785 .loc 1 1198 9 is_stmt 0 view .LVU570 1786 0124 2A46 mov r2, r5 1787 0126 3146 mov r1, r6 1788 0128 2046 mov r0, r4 1789 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 1790 .LVL101: 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1791 .loc 1 1198 8 view .LVU571 1792 012e 08BB cbnz r0, .L146 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1793 .loc 1 1204 5 is_stmt 1 view .LVU572 1794 0130 2368 ldr r3, [r4] 1795 0132 2022 movs r2, #32 1796 0134 DA61 str r2, [r3, #28] 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1797 .loc 1 1207 5 view .LVU573 1798 0136 2168 ldr r1, [r4] 1799 0138 4B68 ldr r3, [r1, #4] 1800 013a 23F0FF73 bic r3, r3, #33423360 1801 013e 23F48B33 bic r3, r3, #71168 1802 0142 23F4FF73 bic r3, r3, #510 1803 0146 23F00103 bic r3, r3, #1 1804 014a 4B60 str r3, [r1, #4] 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1805 .loc 1 1209 5 view .LVU574 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1806 .loc 1 1209 17 is_stmt 0 view .LVU575 1807 014c 84F84120 strb r2, [r4, #65] 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1808 .loc 1 1210 5 is_stmt 1 view .LVU576 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1809 .loc 1 1210 17 is_stmt 0 view .LVU577 1810 0150 0023 movs r3, #0 1811 0152 84F84230 strb r3, [r4, #66] 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1812 .loc 1 1213 5 is_stmt 1 view .LVU578 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1813 .loc 1 1213 5 view .LVU579 1814 0156 84F84030 strb r3, [r4, #64] 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1815 .loc 1 1213 5 view .LVU580 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1816 .loc 1 1215 5 view .LVU581 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1817 .loc 1 1215 12 is_stmt 0 view .LVU582 1818 015a 00E0 b .L134 1819 .LVL102: ARM GAS /tmp/cczJHHnF.s page 160 1820 .L141: 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1821 .loc 1 1219 12 view .LVU583 1822 015c 0220 movs r0, #2 1823 .LVL103: 1824 .L134: 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1825 .loc 1 1221 1 view .LVU584 1826 015e 02B0 add sp, sp, #8 1827 .cfi_remember_state 1828 .cfi_def_cfa_offset 32 1829 @ sp needed 1830 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 1831 .LVL104: 1832 .L142: 1833 .cfi_restore_state 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1834 .loc 1 1123 5 view .LVU585 1835 0164 0220 movs r0, #2 1836 .LVL105: 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1837 .loc 1 1123 5 view .LVU586 1838 0166 FAE7 b .L134 1839 .LVL106: 1840 .L143: 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1841 .loc 1 1130 14 view .LVU587 1842 0168 0120 movs r0, #1 1843 016a F8E7 b .L134 1844 .L144: 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1845 .loc 1 1162 16 view .LVU588 1846 016c 0120 movs r0, #1 1847 016e F6E7 b .L134 1848 .L145: 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1849 .loc 1 1178 18 view .LVU589 1850 0170 0120 movs r0, #1 1851 0172 F4E7 b .L134 1852 .L146: 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1853 .loc 1 1200 14 view .LVU590 1854 0174 0120 movs r0, #1 1855 0176 F2E7 b .L134 1856 .L150: 1857 .align 2 1858 .L149: 1859 0178 00200080 .word -2147475456 1860 .cfi_endproc 1861 .LFE134: 1863 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 1864 .align 1 1865 .global HAL_I2C_Master_Receive 1866 .syntax unified 1867 .thumb 1868 .thumb_func 1870 HAL_I2C_Master_Receive: ARM GAS /tmp/cczJHHnF.s page 161 1871 .LVL107: 1872 .LFB135: 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1873 .loc 1 1236 1 is_stmt 1 view -0 1874 .cfi_startproc 1875 @ args = 4, pretend = 0, frame = 0 1876 @ frame_needed = 0, uses_anonymous_args = 0 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1877 .loc 1 1236 1 is_stmt 0 view .LVU592 1878 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1879 .cfi_def_cfa_offset 32 1880 .cfi_offset 4, -32 1881 .cfi_offset 5, -28 1882 .cfi_offset 6, -24 1883 .cfi_offset 7, -20 1884 .cfi_offset 8, -16 1885 .cfi_offset 9, -12 1886 .cfi_offset 10, -8 1887 .cfi_offset 14, -4 1888 0004 82B0 sub sp, sp, #8 1889 .cfi_def_cfa_offset 40 1890 0006 0F46 mov r7, r1 1891 0008 0A9E ldr r6, [sp, #40] 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1892 .loc 1 1237 3 is_stmt 1 view .LVU593 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1893 .loc 1 1239 3 view .LVU594 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1894 .loc 1 1239 11 is_stmt 0 view .LVU595 1895 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1896 .LVL108: 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1897 .loc 1 1239 11 view .LVU596 1898 000e C9B2 uxtb r1, r1 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1899 .loc 1 1239 6 view .LVU597 1900 0010 2029 cmp r1, #32 1901 0012 40F0A280 bne .L159 1902 0016 0446 mov r4, r0 1903 0018 9046 mov r8, r2 1904 001a 9946 mov r9, r3 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1905 .loc 1 1242 5 is_stmt 1 view .LVU598 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1906 .loc 1 1242 5 view .LVU599 1907 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1908 .LVL109: 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1909 .loc 1 1242 5 is_stmt 0 view .LVU600 1910 0020 012B cmp r3, #1 1911 0022 00F09E80 beq .L160 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1912 .loc 1 1242 5 is_stmt 1 discriminator 2 view .LVU601 1913 0026 4FF0010A mov r10, #1 1914 002a 80F840A0 strb r10, [r0, #64] 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1915 .loc 1 1242 5 discriminator 2 view .LVU602 ARM GAS /tmp/cczJHHnF.s page 162 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1916 .loc 1 1245 5 discriminator 2 view .LVU603 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1917 .loc 1 1245 17 is_stmt 0 discriminator 2 view .LVU604 1918 002e FFF7FEFF bl HAL_GetTick 1919 .LVL110: 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1920 .loc 1 1245 17 discriminator 2 view .LVU605 1921 0032 0546 mov r5, r0 1922 .LVL111: 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1923 .loc 1 1247 5 is_stmt 1 discriminator 2 view .LVU606 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1924 .loc 1 1247 9 is_stmt 0 discriminator 2 view .LVU607 1925 0034 0090 str r0, [sp] 1926 0036 1923 movs r3, #25 1927 0038 5246 mov r2, r10 1928 003a 4FF40041 mov r1, #32768 1929 003e 2046 mov r0, r4 1930 .LVL112: 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1931 .loc 1 1247 9 discriminator 2 view .LVU608 1932 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1933 .LVL113: 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1934 .loc 1 1247 8 discriminator 2 view .LVU609 1935 0044 0028 cmp r0, #0 1936 0046 40F08E80 bne .L161 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1937 .loc 1 1252 5 is_stmt 1 view .LVU610 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1938 .loc 1 1252 21 is_stmt 0 view .LVU611 1939 004a 2223 movs r3, #34 1940 004c 84F84130 strb r3, [r4, #65] 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1941 .loc 1 1253 5 is_stmt 1 view .LVU612 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1942 .loc 1 1253 21 is_stmt 0 view .LVU613 1943 0050 1023 movs r3, #16 1944 0052 84F84230 strb r3, [r4, #66] 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1945 .loc 1 1254 5 is_stmt 1 view .LVU614 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1946 .loc 1 1254 21 is_stmt 0 view .LVU615 1947 0056 0023 movs r3, #0 1948 0058 6364 str r3, [r4, #68] 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1949 .loc 1 1257 5 is_stmt 1 view .LVU616 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1950 .loc 1 1257 21 is_stmt 0 view .LVU617 1951 005a C4F82480 str r8, [r4, #36] 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1952 .loc 1 1258 5 is_stmt 1 view .LVU618 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1953 .loc 1 1258 21 is_stmt 0 view .LVU619 1954 005e A4F82A90 strh r9, [r4, #42] @ movhi 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 163 1955 .loc 1 1259 5 is_stmt 1 view .LVU620 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1956 .loc 1 1259 21 is_stmt 0 view .LVU621 1957 0062 6363 str r3, [r4, #52] 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1958 .loc 1 1263 5 is_stmt 1 view .LVU622 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1959 .loc 1 1263 13 is_stmt 0 view .LVU623 1960 0064 638D ldrh r3, [r4, #42] 1961 0066 9BB2 uxth r3, r3 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1962 .loc 1 1263 8 view .LVU624 1963 0068 FF2B cmp r3, #255 1964 006a 0AD9 bls .L153 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1965 .loc 1 1265 7 is_stmt 1 view .LVU625 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1966 .loc 1 1265 22 is_stmt 0 view .LVU626 1967 006c FF22 movs r2, #255 1968 006e 2285 strh r2, [r4, #40] @ movhi 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1969 .loc 1 1266 7 is_stmt 1 view .LVU627 1970 0070 414B ldr r3, .L167 1971 0072 0093 str r3, [sp] 1972 0074 4FF08073 mov r3, #16777216 1973 0078 3946 mov r1, r7 1974 007a 2046 mov r0, r4 1975 007c FFF7FEFF bl I2C_TransferConfig 1976 .LVL114: 1977 0080 18E0 b .L155 1978 .L153: 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1979 .loc 1 1271 7 view .LVU628 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1980 .loc 1 1271 28 is_stmt 0 view .LVU629 1981 0082 628D ldrh r2, [r4, #42] 1982 0084 92B2 uxth r2, r2 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1983 .loc 1 1271 22 view .LVU630 1984 0086 2285 strh r2, [r4, #40] @ movhi 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1985 .loc 1 1272 7 is_stmt 1 view .LVU631 1986 0088 3B4B ldr r3, .L167 1987 008a 0093 str r3, [sp] 1988 008c 4FF00073 mov r3, #33554432 1989 0090 D2B2 uxtb r2, r2 1990 0092 3946 mov r1, r7 1991 0094 2046 mov r0, r4 1992 0096 FFF7FEFF bl I2C_TransferConfig 1993 .LVL115: 1994 009a 0BE0 b .L155 1995 .L157: 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1996 .loc 1 1309 11 view .LVU632 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1997 .loc 1 1309 32 is_stmt 0 view .LVU633 1998 009c 628D ldrh r2, [r4, #42] ARM GAS /tmp/cczJHHnF.s page 164 1999 009e 92B2 uxth r2, r2 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2000 .loc 1 1309 26 view .LVU634 2001 00a0 2285 strh r2, [r4, #40] @ movhi 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2002 .loc 1 1310 11 is_stmt 1 view .LVU635 2003 00a2 0023 movs r3, #0 2004 00a4 0093 str r3, [sp] 2005 00a6 4FF00073 mov r3, #33554432 2006 00aa D2B2 uxtb r2, r2 2007 00ac 3946 mov r1, r7 2008 00ae 2046 mov r0, r4 2009 00b0 FFF7FEFF bl I2C_TransferConfig 2010 .LVL116: 2011 .L155: 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2012 .loc 1 1276 28 view .LVU636 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2013 .loc 1 1276 16 is_stmt 0 view .LVU637 2014 00b4 638D ldrh r3, [r4, #42] 2015 00b6 9BB2 uxth r3, r3 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2016 .loc 1 1276 28 view .LVU638 2017 00b8 002B cmp r3, #0 2018 00ba 32D0 beq .L166 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2019 .loc 1 1279 7 is_stmt 1 view .LVU639 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2020 .loc 1 1279 11 is_stmt 0 view .LVU640 2021 00bc 2A46 mov r2, r5 2022 00be 3146 mov r1, r6 2023 00c0 2046 mov r0, r4 2024 00c2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2025 .LVL117: 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2026 .loc 1 1279 10 view .LVU641 2027 00c6 0028 cmp r0, #0 2028 00c8 4FD1 bne .L162 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2029 .loc 1 1285 7 is_stmt 1 view .LVU642 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2030 .loc 1 1285 38 is_stmt 0 view .LVU643 2031 00ca 2368 ldr r3, [r4] 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2032 .loc 1 1285 48 view .LVU644 2033 00cc 5A6A ldr r2, [r3, #36] 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2034 .loc 1 1285 12 view .LVU645 2035 00ce 636A ldr r3, [r4, #36] 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2036 .loc 1 1285 23 view .LVU646 2037 00d0 1A70 strb r2, [r3] 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2038 .loc 1 1288 7 is_stmt 1 view .LVU647 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2039 .loc 1 1288 11 is_stmt 0 view .LVU648 2040 00d2 636A ldr r3, [r4, #36] ARM GAS /tmp/cczJHHnF.s page 165 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2041 .loc 1 1288 21 view .LVU649 2042 00d4 0133 adds r3, r3, #1 2043 00d6 6362 str r3, [r4, #36] 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2044 .loc 1 1290 7 is_stmt 1 view .LVU650 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2045 .loc 1 1290 11 is_stmt 0 view .LVU651 2046 00d8 228D ldrh r2, [r4, #40] 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2047 .loc 1 1290 21 view .LVU652 2048 00da 013A subs r2, r2, #1 2049 00dc 92B2 uxth r2, r2 2050 00de 2285 strh r2, [r4, #40] @ movhi 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2051 .loc 1 1291 7 is_stmt 1 view .LVU653 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2052 .loc 1 1291 11 is_stmt 0 view .LVU654 2053 00e0 638D ldrh r3, [r4, #42] 2054 00e2 9BB2 uxth r3, r3 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2055 .loc 1 1291 22 view .LVU655 2056 00e4 013B subs r3, r3, #1 2057 00e6 9BB2 uxth r3, r3 2058 00e8 6385 strh r3, [r4, #42] @ movhi 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2059 .loc 1 1293 7 is_stmt 1 view .LVU656 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2060 .loc 1 1293 16 is_stmt 0 view .LVU657 2061 00ea 638D ldrh r3, [r4, #42] 2062 00ec 9BB2 uxth r3, r3 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2063 .loc 1 1293 10 view .LVU658 2064 00ee 002B cmp r3, #0 2065 00f0 E0D0 beq .L155 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2066 .loc 1 1293 35 discriminator 1 view .LVU659 2067 00f2 002A cmp r2, #0 2068 00f4 DED1 bne .L155 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2069 .loc 1 1296 9 is_stmt 1 view .LVU660 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2070 .loc 1 1296 13 is_stmt 0 view .LVU661 2071 00f6 0095 str r5, [sp] 2072 00f8 3346 mov r3, r6 2073 00fa 8021 movs r1, #128 2074 00fc 2046 mov r0, r4 2075 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2076 .LVL118: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2077 .loc 1 1296 12 view .LVU662 2078 0102 A0BB cbnz r0, .L163 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2079 .loc 1 1301 9 is_stmt 1 view .LVU663 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2080 .loc 1 1301 17 is_stmt 0 view .LVU664 2081 0104 638D ldrh r3, [r4, #42] ARM GAS /tmp/cczJHHnF.s page 166 2082 0106 9BB2 uxth r3, r3 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2083 .loc 1 1301 12 view .LVU665 2084 0108 FF2B cmp r3, #255 2085 010a C7D9 bls .L157 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2086 .loc 1 1303 11 is_stmt 1 view .LVU666 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2087 .loc 1 1303 26 is_stmt 0 view .LVU667 2088 010c FF22 movs r2, #255 2089 010e 2285 strh r2, [r4, #40] @ movhi 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2090 .loc 1 1304 11 is_stmt 1 view .LVU668 2091 0110 0023 movs r3, #0 2092 0112 0093 str r3, [sp] 2093 0114 4FF08073 mov r3, #16777216 2094 0118 3946 mov r1, r7 2095 011a 2046 mov r0, r4 2096 011c FFF7FEFF bl I2C_TransferConfig 2097 .LVL119: 2098 0120 C8E7 b .L155 2099 .L166: 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2100 .loc 1 1318 5 view .LVU669 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2101 .loc 1 1318 9 is_stmt 0 view .LVU670 2102 0122 2A46 mov r2, r5 2103 0124 3146 mov r1, r6 2104 0126 2046 mov r0, r4 2105 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2106 .LVL120: 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2107 .loc 1 1318 8 view .LVU671 2108 012c 08BB cbnz r0, .L164 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2109 .loc 1 1324 5 is_stmt 1 view .LVU672 2110 012e 2368 ldr r3, [r4] 2111 0130 2022 movs r2, #32 2112 0132 DA61 str r2, [r3, #28] 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2113 .loc 1 1327 5 view .LVU673 2114 0134 2168 ldr r1, [r4] 2115 0136 4B68 ldr r3, [r1, #4] 2116 0138 23F0FF73 bic r3, r3, #33423360 2117 013c 23F48B33 bic r3, r3, #71168 2118 0140 23F4FF73 bic r3, r3, #510 2119 0144 23F00103 bic r3, r3, #1 2120 0148 4B60 str r3, [r1, #4] 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2121 .loc 1 1329 5 view .LVU674 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2122 .loc 1 1329 17 is_stmt 0 view .LVU675 2123 014a 84F84120 strb r2, [r4, #65] 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2124 .loc 1 1330 5 is_stmt 1 view .LVU676 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2125 .loc 1 1330 17 is_stmt 0 view .LVU677 ARM GAS /tmp/cczJHHnF.s page 167 2126 014e 0023 movs r3, #0 2127 0150 84F84230 strb r3, [r4, #66] 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2128 .loc 1 1333 5 is_stmt 1 view .LVU678 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2129 .loc 1 1333 5 view .LVU679 2130 0154 84F84030 strb r3, [r4, #64] 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2131 .loc 1 1333 5 view .LVU680 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2132 .loc 1 1335 5 view .LVU681 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2133 .loc 1 1335 12 is_stmt 0 view .LVU682 2134 0158 00E0 b .L152 2135 .LVL121: 2136 .L159: 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2137 .loc 1 1339 12 view .LVU683 2138 015a 0220 movs r0, #2 2139 .LVL122: 2140 .L152: 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2141 .loc 1 1341 1 view .LVU684 2142 015c 02B0 add sp, sp, #8 2143 .cfi_remember_state 2144 .cfi_def_cfa_offset 32 2145 @ sp needed 2146 015e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2147 .LVL123: 2148 .L160: 2149 .cfi_restore_state 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2150 .loc 1 1242 5 view .LVU685 2151 0162 0220 movs r0, #2 2152 .LVL124: 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2153 .loc 1 1242 5 view .LVU686 2154 0164 FAE7 b .L152 2155 .LVL125: 2156 .L161: 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2157 .loc 1 1249 14 view .LVU687 2158 0166 0120 movs r0, #1 2159 0168 F8E7 b .L152 2160 .L162: 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2161 .loc 1 1281 16 view .LVU688 2162 016a 0120 movs r0, #1 2163 016c F6E7 b .L152 2164 .L163: 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2165 .loc 1 1298 18 view .LVU689 2166 016e 0120 movs r0, #1 2167 0170 F4E7 b .L152 2168 .L164: 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2169 .loc 1 1320 14 view .LVU690 ARM GAS /tmp/cczJHHnF.s page 168 2170 0172 0120 movs r0, #1 2171 0174 F2E7 b .L152 2172 .L168: 2173 0176 00BF .align 2 2174 .L167: 2175 0178 00240080 .word -2147474432 2176 .cfi_endproc 2177 .LFE135: 2179 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2180 .align 1 2181 .global HAL_I2C_Slave_Transmit 2182 .syntax unified 2183 .thumb 2184 .thumb_func 2186 HAL_I2C_Slave_Transmit: 2187 .LVL126: 2188 .LFB136: 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2189 .loc 1 1354 1 is_stmt 1 view -0 2190 .cfi_startproc 2191 @ args = 0, pretend = 0, frame = 0 2192 @ frame_needed = 0, uses_anonymous_args = 0 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2193 .loc 1 1354 1 is_stmt 0 view .LVU692 2194 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2195 .cfi_def_cfa_offset 24 2196 .cfi_offset 4, -24 2197 .cfi_offset 5, -20 2198 .cfi_offset 6, -16 2199 .cfi_offset 7, -12 2200 .cfi_offset 8, -8 2201 .cfi_offset 14, -4 2202 0004 82B0 sub sp, sp, #8 2203 .cfi_def_cfa_offset 32 2204 0006 1D46 mov r5, r3 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2205 .loc 1 1355 3 is_stmt 1 view .LVU693 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2206 .loc 1 1357 3 view .LVU694 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2207 .loc 1 1357 11 is_stmt 0 view .LVU695 2208 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2209 .LVL127: 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2210 .loc 1 1357 11 view .LVU696 2211 000c DBB2 uxtb r3, r3 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2212 .loc 1 1357 6 view .LVU697 2213 000e 202B cmp r3, #32 2214 0010 40F0B680 bne .L181 2215 0014 0446 mov r4, r0 2216 0016 0F46 mov r7, r1 2217 0018 9046 mov r8, r2 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2218 .loc 1 1359 5 is_stmt 1 view .LVU698 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2219 .loc 1 1359 8 is_stmt 0 view .LVU699 ARM GAS /tmp/cczJHHnF.s page 169 2220 001a 0029 cmp r1, #0 2221 001c 52D0 beq .L171 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2222 .loc 1 1359 25 discriminator 1 view .LVU700 2223 001e 002A cmp r2, #0 2224 0020 50D0 beq .L171 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2225 .loc 1 1365 5 is_stmt 1 view .LVU701 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2226 .loc 1 1365 5 view .LVU702 2227 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2228 0026 012B cmp r3, #1 2229 0028 00F0AE80 beq .L182 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2230 .loc 1 1365 5 discriminator 2 view .LVU703 2231 002c 0123 movs r3, #1 2232 002e 80F84030 strb r3, [r0, #64] 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2233 .loc 1 1365 5 discriminator 2 view .LVU704 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2234 .loc 1 1368 5 discriminator 2 view .LVU705 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2235 .loc 1 1368 17 is_stmt 0 discriminator 2 view .LVU706 2236 0032 FFF7FEFF bl HAL_GetTick 2237 .LVL128: 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2238 .loc 1 1368 17 discriminator 2 view .LVU707 2239 0036 0646 mov r6, r0 2240 .LVL129: 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2241 .loc 1 1370 5 is_stmt 1 discriminator 2 view .LVU708 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2242 .loc 1 1370 21 is_stmt 0 discriminator 2 view .LVU709 2243 0038 2123 movs r3, #33 2244 003a 84F84130 strb r3, [r4, #65] 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2245 .loc 1 1371 5 is_stmt 1 discriminator 2 view .LVU710 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2246 .loc 1 1371 21 is_stmt 0 discriminator 2 view .LVU711 2247 003e 2023 movs r3, #32 2248 0040 84F84230 strb r3, [r4, #66] 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2249 .loc 1 1372 5 is_stmt 1 discriminator 2 view .LVU712 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2250 .loc 1 1372 21 is_stmt 0 discriminator 2 view .LVU713 2251 0044 0022 movs r2, #0 2252 0046 6264 str r2, [r4, #68] 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2253 .loc 1 1375 5 is_stmt 1 discriminator 2 view .LVU714 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2254 .loc 1 1375 21 is_stmt 0 discriminator 2 view .LVU715 2255 0048 6762 str r7, [r4, #36] 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2256 .loc 1 1376 5 is_stmt 1 discriminator 2 view .LVU716 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2257 .loc 1 1376 21 is_stmt 0 discriminator 2 view .LVU717 2258 004a A4F82A80 strh r8, [r4, #42] @ movhi ARM GAS /tmp/cczJHHnF.s page 170 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2259 .loc 1 1377 5 is_stmt 1 discriminator 2 view .LVU718 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2260 .loc 1 1377 21 is_stmt 0 discriminator 2 view .LVU719 2261 004e 6263 str r2, [r4, #52] 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2262 .loc 1 1380 5 is_stmt 1 discriminator 2 view .LVU720 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2263 .loc 1 1380 9 is_stmt 0 discriminator 2 view .LVU721 2264 0050 2168 ldr r1, [r4] 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2265 .loc 1 1380 19 discriminator 2 view .LVU722 2266 0052 4B68 ldr r3, [r1, #4] 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2267 .loc 1 1380 25 discriminator 2 view .LVU723 2268 0054 23F40043 bic r3, r3, #32768 2269 0058 4B60 str r3, [r1, #4] 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2270 .loc 1 1383 5 is_stmt 1 discriminator 2 view .LVU724 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2271 .loc 1 1383 9 is_stmt 0 discriminator 2 view .LVU725 2272 005a 0090 str r0, [sp] 2273 005c 2B46 mov r3, r5 2274 005e 0821 movs r1, #8 2275 0060 2046 mov r0, r4 2276 .LVL130: 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2277 .loc 1 1383 9 discriminator 2 view .LVU726 2278 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2279 .LVL131: 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2280 .loc 1 1383 8 discriminator 2 view .LVU727 2281 0066 0028 cmp r0, #0 2282 0068 31D1 bne .L185 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2283 .loc 1 1391 5 is_stmt 1 view .LVU728 2284 006a 2368 ldr r3, [r4] 2285 006c 0822 movs r2, #8 2286 006e DA61 str r2, [r3, #28] 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2287 .loc 1 1394 5 view .LVU729 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2288 .loc 1 1394 19 is_stmt 0 view .LVU730 2289 0070 E368 ldr r3, [r4, #12] 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2290 .loc 1 1394 8 view .LVU731 2291 0072 022B cmp r3, #2 2292 0074 32D0 beq .L186 2293 .L174: 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2294 .loc 1 1409 5 is_stmt 1 view .LVU732 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2295 .loc 1 1409 9 is_stmt 0 view .LVU733 2296 0076 0096 str r6, [sp] 2297 0078 2B46 mov r3, r5 2298 007a 0022 movs r2, #0 2299 007c 4FF48031 mov r1, #65536 ARM GAS /tmp/cczJHHnF.s page 171 2300 0080 2046 mov r0, r4 2301 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2302 .LVL132: 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2303 .loc 1 1409 8 view .LVU734 2304 0086 0028 cmp r0, #0 2305 0088 3BD1 bne .L187 2306 .L176: 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2307 .loc 1 1416 28 is_stmt 1 view .LVU735 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2308 .loc 1 1416 16 is_stmt 0 view .LVU736 2309 008a 638D ldrh r3, [r4, #42] 2310 008c 9BB2 uxth r3, r3 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2311 .loc 1 1416 28 view .LVU737 2312 008e 002B cmp r3, #0 2313 0090 45D0 beq .L188 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2314 .loc 1 1419 7 is_stmt 1 view .LVU738 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2315 .loc 1 1419 11 is_stmt 0 view .LVU739 2316 0092 3246 mov r2, r6 2317 0094 2946 mov r1, r5 2318 0096 2046 mov r0, r4 2319 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2320 .LVL133: 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2321 .loc 1 1419 10 view .LVU740 2322 009c 0028 cmp r0, #0 2323 009e 37D1 bne .L189 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2324 .loc 1 1427 7 is_stmt 1 view .LVU741 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2325 .loc 1 1427 35 is_stmt 0 view .LVU742 2326 00a0 626A ldr r2, [r4, #36] 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2327 .loc 1 1427 11 view .LVU743 2328 00a2 2368 ldr r3, [r4] 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2329 .loc 1 1427 30 view .LVU744 2330 00a4 1278 ldrb r2, [r2] @ zero_extendqisi2 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2331 .loc 1 1427 28 view .LVU745 2332 00a6 9A62 str r2, [r3, #40] 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2333 .loc 1 1430 7 is_stmt 1 view .LVU746 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2334 .loc 1 1430 11 is_stmt 0 view .LVU747 2335 00a8 636A ldr r3, [r4, #36] 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2336 .loc 1 1430 21 view .LVU748 2337 00aa 0133 adds r3, r3, #1 2338 00ac 6362 str r3, [r4, #36] 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2339 .loc 1 1432 7 is_stmt 1 view .LVU749 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 172 2340 .loc 1 1432 11 is_stmt 0 view .LVU750 2341 00ae B4F82AC0 ldrh ip, [r4, #42] 2342 00b2 1FFA8CFC uxth ip, ip 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2343 .loc 1 1432 22 view .LVU751 2344 00b6 0CF1FF3C add ip, ip, #-1 2345 00ba 1FFA8CFC uxth ip, ip 2346 00be A4F82AC0 strh ip, [r4, #42] @ movhi 2347 00c2 E2E7 b .L176 2348 .LVL134: 2349 .L171: 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2350 .loc 1 1361 7 is_stmt 1 view .LVU752 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2351 .loc 1 1361 23 is_stmt 0 view .LVU753 2352 00c4 4FF40073 mov r3, #512 2353 00c8 6364 str r3, [r4, #68] 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2354 .loc 1 1362 7 is_stmt 1 view .LVU754 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2355 .loc 1 1362 15 is_stmt 0 view .LVU755 2356 00ca 0120 movs r0, #1 2357 .LVL135: 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2358 .loc 1 1362 15 view .LVU756 2359 00cc 59E0 b .L170 2360 .LVL136: 2361 .L185: 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2362 .loc 1 1386 7 is_stmt 1 view .LVU757 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2363 .loc 1 1386 11 is_stmt 0 view .LVU758 2364 00ce 2268 ldr r2, [r4] 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2365 .loc 1 1386 21 view .LVU759 2366 00d0 5368 ldr r3, [r2, #4] 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2367 .loc 1 1386 27 view .LVU760 2368 00d2 43F40043 orr r3, r3, #32768 2369 00d6 5360 str r3, [r2, #4] 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2370 .loc 1 1387 7 is_stmt 1 view .LVU761 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2371 .loc 1 1387 14 is_stmt 0 view .LVU762 2372 00d8 0120 movs r0, #1 2373 00da 52E0 b .L170 2374 .L186: 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2375 .loc 1 1397 7 is_stmt 1 view .LVU763 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2376 .loc 1 1397 11 is_stmt 0 view .LVU764 2377 00dc 0096 str r6, [sp] 2378 00de 2B46 mov r3, r5 2379 00e0 0022 movs r2, #0 2380 00e2 0821 movs r1, #8 2381 00e4 2046 mov r0, r4 2382 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout ARM GAS /tmp/cczJHHnF.s page 173 2383 .LVL137: 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2384 .loc 1 1397 10 view .LVU765 2385 00ea 18B9 cbnz r0, .L190 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2386 .loc 1 1405 7 is_stmt 1 view .LVU766 2387 00ec 2368 ldr r3, [r4] 2388 00ee 0822 movs r2, #8 2389 00f0 DA61 str r2, [r3, #28] 2390 00f2 C0E7 b .L174 2391 .L190: 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2392 .loc 1 1400 9 view .LVU767 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2393 .loc 1 1400 13 is_stmt 0 view .LVU768 2394 00f4 2268 ldr r2, [r4] 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2395 .loc 1 1400 23 view .LVU769 2396 00f6 5368 ldr r3, [r2, #4] 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2397 .loc 1 1400 29 view .LVU770 2398 00f8 43F40043 orr r3, r3, #32768 2399 00fc 5360 str r3, [r2, #4] 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2400 .loc 1 1401 9 is_stmt 1 view .LVU771 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2401 .loc 1 1401 16 is_stmt 0 view .LVU772 2402 00fe 0120 movs r0, #1 2403 0100 3FE0 b .L170 2404 .L187: 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2405 .loc 1 1412 7 is_stmt 1 view .LVU773 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2406 .loc 1 1412 11 is_stmt 0 view .LVU774 2407 0102 2268 ldr r2, [r4] 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2408 .loc 1 1412 21 view .LVU775 2409 0104 5368 ldr r3, [r2, #4] 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2410 .loc 1 1412 27 view .LVU776 2411 0106 43F40043 orr r3, r3, #32768 2412 010a 5360 str r3, [r2, #4] 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2413 .loc 1 1413 7 is_stmt 1 view .LVU777 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2414 .loc 1 1413 14 is_stmt 0 view .LVU778 2415 010c 0120 movs r0, #1 2416 010e 38E0 b .L170 2417 .L189: 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2418 .loc 1 1422 9 is_stmt 1 view .LVU779 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2419 .loc 1 1422 13 is_stmt 0 view .LVU780 2420 0110 2268 ldr r2, [r4] 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2421 .loc 1 1422 23 view .LVU781 2422 0112 5368 ldr r3, [r2, #4] ARM GAS /tmp/cczJHHnF.s page 174 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2423 .loc 1 1422 29 view .LVU782 2424 0114 43F40043 orr r3, r3, #32768 2425 0118 5360 str r3, [r2, #4] 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2426 .loc 1 1423 9 is_stmt 1 view .LVU783 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2427 .loc 1 1423 16 is_stmt 0 view .LVU784 2428 011a 0120 movs r0, #1 2429 011c 31E0 b .L170 2430 .L188: 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2431 .loc 1 1436 5 is_stmt 1 view .LVU785 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2432 .loc 1 1436 9 is_stmt 0 view .LVU786 2433 011e 3246 mov r2, r6 2434 0120 2946 mov r1, r5 2435 0122 2046 mov r0, r4 2436 0124 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2437 .LVL138: 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2438 .loc 1 1436 8 view .LVU787 2439 0128 48B1 cbz r0, .L179 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2440 .loc 1 1439 7 is_stmt 1 view .LVU788 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2441 .loc 1 1439 11 is_stmt 0 view .LVU789 2442 012a 2268 ldr r2, [r4] 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2443 .loc 1 1439 21 view .LVU790 2444 012c 5368 ldr r3, [r2, #4] 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2445 .loc 1 1439 27 view .LVU791 2446 012e 43F40043 orr r3, r3, #32768 2447 0132 5360 str r3, [r2, #4] 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2448 .loc 1 1441 7 is_stmt 1 view .LVU792 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2449 .loc 1 1441 15 is_stmt 0 view .LVU793 2450 0134 636C ldr r3, [r4, #68] 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2451 .loc 1 1441 10 view .LVU794 2452 0136 042B cmp r3, #4 2453 0138 28D1 bne .L183 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2454 .loc 1 1445 9 is_stmt 1 view .LVU795 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2455 .loc 1 1445 25 is_stmt 0 view .LVU796 2456 013a 0023 movs r3, #0 2457 013c 6364 str r3, [r4, #68] 2458 .L179: 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2459 .loc 1 1454 5 is_stmt 1 view .LVU797 2460 013e 2368 ldr r3, [r4] 2461 0140 2022 movs r2, #32 2462 0142 DA61 str r2, [r3, #28] 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 175 2463 .loc 1 1457 5 view .LVU798 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2464 .loc 1 1457 9 is_stmt 0 view .LVU799 2465 0144 0096 str r6, [sp] 2466 0146 2B46 mov r3, r5 2467 0148 0122 movs r2, #1 2468 014a 4FF40041 mov r1, #32768 2469 014e 2046 mov r0, r4 2470 0150 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2471 .LVL139: 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2472 .loc 1 1457 8 view .LVU800 2473 0154 30B1 cbz r0, .L180 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2474 .loc 1 1460 7 is_stmt 1 view .LVU801 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2475 .loc 1 1460 11 is_stmt 0 view .LVU802 2476 0156 2268 ldr r2, [r4] 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2477 .loc 1 1460 21 view .LVU803 2478 0158 5368 ldr r3, [r2, #4] 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2479 .loc 1 1460 27 view .LVU804 2480 015a 43F40043 orr r3, r3, #32768 2481 015e 5360 str r3, [r2, #4] 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2482 .loc 1 1461 7 is_stmt 1 view .LVU805 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2483 .loc 1 1461 14 is_stmt 0 view .LVU806 2484 0160 0120 movs r0, #1 2485 0162 0EE0 b .L170 2486 .L180: 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2487 .loc 1 1465 5 is_stmt 1 view .LVU807 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2488 .loc 1 1465 9 is_stmt 0 view .LVU808 2489 0164 2268 ldr r2, [r4] 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2490 .loc 1 1465 19 view .LVU809 2491 0166 5368 ldr r3, [r2, #4] 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2492 .loc 1 1465 25 view .LVU810 2493 0168 43F40043 orr r3, r3, #32768 2494 016c 5360 str r3, [r2, #4] 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2495 .loc 1 1467 5 is_stmt 1 view .LVU811 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2496 .loc 1 1467 17 is_stmt 0 view .LVU812 2497 016e 2023 movs r3, #32 2498 0170 84F84130 strb r3, [r4, #65] 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2499 .loc 1 1468 5 is_stmt 1 view .LVU813 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2500 .loc 1 1468 17 is_stmt 0 view .LVU814 2501 0174 0023 movs r3, #0 2502 0176 84F84230 strb r3, [r4, #66] 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 176 2503 .loc 1 1471 5 is_stmt 1 view .LVU815 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2504 .loc 1 1471 5 view .LVU816 2505 017a 84F84030 strb r3, [r4, #64] 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2506 .loc 1 1471 5 view .LVU817 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2507 .loc 1 1473 5 view .LVU818 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2508 .loc 1 1473 12 is_stmt 0 view .LVU819 2509 017e 00E0 b .L170 2510 .LVL140: 2511 .L181: 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2512 .loc 1 1477 12 view .LVU820 2513 0180 0220 movs r0, #2 2514 .LVL141: 2515 .L170: 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2516 .loc 1 1479 1 view .LVU821 2517 0182 02B0 add sp, sp, #8 2518 .cfi_remember_state 2519 .cfi_def_cfa_offset 24 2520 @ sp needed 2521 0184 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2522 .LVL142: 2523 .L182: 2524 .cfi_restore_state 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2525 .loc 1 1365 5 view .LVU822 2526 0188 0220 movs r0, #2 2527 .LVL143: 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2528 .loc 1 1365 5 view .LVU823 2529 018a FAE7 b .L170 2530 .LVL144: 2531 .L183: 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2532 .loc 1 1449 16 view .LVU824 2533 018c 0120 movs r0, #1 2534 018e F8E7 b .L170 2535 .cfi_endproc 2536 .LFE136: 2538 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2539 .align 1 2540 .global HAL_I2C_Slave_Receive 2541 .syntax unified 2542 .thumb 2543 .thumb_func 2545 HAL_I2C_Slave_Receive: 2546 .LVL145: 2547 .LFB137: 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2548 .loc 1 1492 1 is_stmt 1 view -0 2549 .cfi_startproc 2550 @ args = 0, pretend = 0, frame = 0 2551 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cczJHHnF.s page 177 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2552 .loc 1 1492 1 is_stmt 0 view .LVU826 2553 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2554 .cfi_def_cfa_offset 24 2555 .cfi_offset 4, -24 2556 .cfi_offset 5, -20 2557 .cfi_offset 6, -16 2558 .cfi_offset 7, -12 2559 .cfi_offset 8, -8 2560 .cfi_offset 14, -4 2561 0004 82B0 sub sp, sp, #8 2562 .cfi_def_cfa_offset 32 2563 0006 1D46 mov r5, r3 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2564 .loc 1 1493 3 is_stmt 1 view .LVU827 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2565 .loc 1 1495 3 view .LVU828 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2566 .loc 1 1495 11 is_stmt 0 view .LVU829 2567 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2568 .LVL146: 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2569 .loc 1 1495 11 view .LVU830 2570 000c DBB2 uxtb r3, r3 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2571 .loc 1 1495 6 view .LVU831 2572 000e 202B cmp r3, #32 2573 0010 40F0A780 bne .L202 2574 0014 0446 mov r4, r0 2575 0016 0E46 mov r6, r1 2576 0018 9046 mov r8, r2 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2577 .loc 1 1497 5 is_stmt 1 view .LVU832 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2578 .loc 1 1497 8 is_stmt 0 view .LVU833 2579 001a 51B3 cbz r1, .L193 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2580 .loc 1 1497 25 discriminator 1 view .LVU834 2581 001c 4AB3 cbz r2, .L193 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2582 .loc 1 1503 5 is_stmt 1 view .LVU835 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2583 .loc 1 1503 5 view .LVU836 2584 001e 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2585 0022 012B cmp r3, #1 2586 0024 00F0A180 beq .L203 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2587 .loc 1 1503 5 discriminator 2 view .LVU837 2588 0028 0123 movs r3, #1 2589 002a 80F84030 strb r3, [r0, #64] 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2590 .loc 1 1503 5 discriminator 2 view .LVU838 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2591 .loc 1 1506 5 discriminator 2 view .LVU839 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2592 .loc 1 1506 17 is_stmt 0 discriminator 2 view .LVU840 2593 002e FFF7FEFF bl HAL_GetTick ARM GAS /tmp/cczJHHnF.s page 178 2594 .LVL147: 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2595 .loc 1 1506 17 discriminator 2 view .LVU841 2596 0032 0746 mov r7, r0 2597 .LVL148: 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2598 .loc 1 1508 5 is_stmt 1 discriminator 2 view .LVU842 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2599 .loc 1 1508 21 is_stmt 0 discriminator 2 view .LVU843 2600 0034 2223 movs r3, #34 2601 0036 84F84130 strb r3, [r4, #65] 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2602 .loc 1 1509 5 is_stmt 1 discriminator 2 view .LVU844 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2603 .loc 1 1509 21 is_stmt 0 discriminator 2 view .LVU845 2604 003a 2023 movs r3, #32 2605 003c 84F84230 strb r3, [r4, #66] 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2606 .loc 1 1510 5 is_stmt 1 discriminator 2 view .LVU846 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2607 .loc 1 1510 21 is_stmt 0 discriminator 2 view .LVU847 2608 0040 0022 movs r2, #0 2609 0042 6264 str r2, [r4, #68] 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2610 .loc 1 1513 5 is_stmt 1 discriminator 2 view .LVU848 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2611 .loc 1 1513 21 is_stmt 0 discriminator 2 view .LVU849 2612 0044 6662 str r6, [r4, #36] 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2613 .loc 1 1514 5 is_stmt 1 discriminator 2 view .LVU850 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2614 .loc 1 1514 21 is_stmt 0 discriminator 2 view .LVU851 2615 0046 A4F82A80 strh r8, [r4, #42] @ movhi 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2616 .loc 1 1515 5 is_stmt 1 discriminator 2 view .LVU852 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2617 .loc 1 1515 21 is_stmt 0 discriminator 2 view .LVU853 2618 004a 6263 str r2, [r4, #52] 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2619 .loc 1 1518 5 is_stmt 1 discriminator 2 view .LVU854 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2620 .loc 1 1518 9 is_stmt 0 discriminator 2 view .LVU855 2621 004c 2168 ldr r1, [r4] 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2622 .loc 1 1518 19 discriminator 2 view .LVU856 2623 004e 4B68 ldr r3, [r1, #4] 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2624 .loc 1 1518 25 discriminator 2 view .LVU857 2625 0050 23F40043 bic r3, r3, #32768 2626 0054 4B60 str r3, [r1, #4] 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2627 .loc 1 1521 5 is_stmt 1 discriminator 2 view .LVU858 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2628 .loc 1 1521 9 is_stmt 0 discriminator 2 view .LVU859 2629 0056 0090 str r0, [sp] 2630 0058 2B46 mov r3, r5 2631 005a 0821 movs r1, #8 ARM GAS /tmp/cczJHHnF.s page 179 2632 005c 2046 mov r0, r4 2633 .LVL149: 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2634 .loc 1 1521 9 discriminator 2 view .LVU860 2635 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2636 .LVL150: 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2637 .loc 1 1521 8 discriminator 2 view .LVU861 2638 0062 58B1 cbz r0, .L195 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2639 .loc 1 1524 7 is_stmt 1 view .LVU862 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2640 .loc 1 1524 11 is_stmt 0 view .LVU863 2641 0064 2268 ldr r2, [r4] 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2642 .loc 1 1524 21 view .LVU864 2643 0066 5368 ldr r3, [r2, #4] 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2644 .loc 1 1524 27 view .LVU865 2645 0068 43F40043 orr r3, r3, #32768 2646 006c 5360 str r3, [r2, #4] 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2647 .loc 1 1525 7 is_stmt 1 view .LVU866 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2648 .loc 1 1525 14 is_stmt 0 view .LVU867 2649 006e 0120 movs r0, #1 2650 0070 78E0 b .L192 2651 .LVL151: 2652 .L193: 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2653 .loc 1 1499 7 is_stmt 1 view .LVU868 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2654 .loc 1 1499 23 is_stmt 0 view .LVU869 2655 0072 4FF40073 mov r3, #512 2656 0076 6364 str r3, [r4, #68] 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2657 .loc 1 1500 7 is_stmt 1 view .LVU870 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2658 .loc 1 1500 15 is_stmt 0 view .LVU871 2659 0078 0120 movs r0, #1 2660 .LVL152: 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2661 .loc 1 1500 15 view .LVU872 2662 007a 73E0 b .L192 2663 .LVL153: 2664 .L195: 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2665 .loc 1 1529 5 is_stmt 1 view .LVU873 2666 007c 2368 ldr r3, [r4] 2667 007e 0822 movs r2, #8 2668 0080 DA61 str r2, [r3, #28] 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2669 .loc 1 1532 5 view .LVU874 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2670 .loc 1 1532 9 is_stmt 0 view .LVU875 2671 0082 0097 str r7, [sp] 2672 0084 2B46 mov r3, r5 ARM GAS /tmp/cczJHHnF.s page 180 2673 0086 0122 movs r2, #1 2674 0088 4FF48031 mov r1, #65536 2675 008c 2046 mov r0, r4 2676 008e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2677 .LVL154: 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2678 .loc 1 1532 8 view .LVU876 2679 0092 B8B1 cbz r0, .L196 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2680 .loc 1 1535 7 is_stmt 1 view .LVU877 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2681 .loc 1 1535 11 is_stmt 0 view .LVU878 2682 0094 2268 ldr r2, [r4] 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2683 .loc 1 1535 21 view .LVU879 2684 0096 5368 ldr r3, [r2, #4] 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2685 .loc 1 1535 27 view .LVU880 2686 0098 43F40043 orr r3, r3, #32768 2687 009c 5360 str r3, [r2, #4] 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2688 .loc 1 1536 7 is_stmt 1 view .LVU881 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2689 .loc 1 1536 14 is_stmt 0 view .LVU882 2690 009e 0120 movs r0, #1 2691 00a0 60E0 b .L192 2692 .L197: 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2693 .loc 1 1563 7 is_stmt 1 view .LVU883 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2694 .loc 1 1563 38 is_stmt 0 view .LVU884 2695 00a2 2368 ldr r3, [r4] 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2696 .loc 1 1563 48 view .LVU885 2697 00a4 5A6A ldr r2, [r3, #36] 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2698 .loc 1 1563 12 view .LVU886 2699 00a6 636A ldr r3, [r4, #36] 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2700 .loc 1 1563 23 view .LVU887 2701 00a8 1A70 strb r2, [r3] 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2702 .loc 1 1566 7 is_stmt 1 view .LVU888 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2703 .loc 1 1566 11 is_stmt 0 view .LVU889 2704 00aa 636A ldr r3, [r4, #36] 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2705 .loc 1 1566 21 view .LVU890 2706 00ac 0133 adds r3, r3, #1 2707 00ae 6362 str r3, [r4, #36] 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2708 .loc 1 1568 7 is_stmt 1 view .LVU891 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2709 .loc 1 1568 11 is_stmt 0 view .LVU892 2710 00b0 B4F82AC0 ldrh ip, [r4, #42] 2711 00b4 1FFA8CFC uxth ip, ip 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 181 2712 .loc 1 1568 22 view .LVU893 2713 00b8 0CF1FF3C add ip, ip, #-1 2714 00bc 1FFA8CFC uxth ip, ip 2715 00c0 A4F82AC0 strh ip, [r4, #42] @ movhi 2716 .L196: 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2717 .loc 1 1539 28 is_stmt 1 view .LVU894 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2718 .loc 1 1539 16 is_stmt 0 view .LVU895 2719 00c4 638D ldrh r3, [r4, #42] 2720 00c6 9BB2 uxth r3, r3 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2721 .loc 1 1539 28 view .LVU896 2722 00c8 EBB1 cbz r3, .L205 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2723 .loc 1 1542 7 is_stmt 1 view .LVU897 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2724 .loc 1 1542 11 is_stmt 0 view .LVU898 2725 00ca 3A46 mov r2, r7 2726 00cc 2946 mov r1, r5 2727 00ce 2046 mov r0, r4 2728 00d0 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2729 .LVL155: 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2730 .loc 1 1542 10 view .LVU899 2731 00d4 0028 cmp r0, #0 2732 00d6 E4D0 beq .L197 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2733 .loc 1 1545 9 is_stmt 1 view .LVU900 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2734 .loc 1 1545 13 is_stmt 0 view .LVU901 2735 00d8 2268 ldr r2, [r4] 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2736 .loc 1 1545 23 view .LVU902 2737 00da 5368 ldr r3, [r2, #4] 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2738 .loc 1 1545 29 view .LVU903 2739 00dc 43F40043 orr r3, r3, #32768 2740 00e0 5360 str r3, [r2, #4] 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2741 .loc 1 1548 9 is_stmt 1 view .LVU904 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2742 .loc 1 1548 13 is_stmt 0 view .LVU905 2743 00e2 2368 ldr r3, [r4] 2744 00e4 9A69 ldr r2, [r3, #24] 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2745 .loc 1 1548 12 view .LVU906 2746 00e6 12F0040F tst r2, #4 2747 00ea 0AD0 beq .L198 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2748 .loc 1 1551 11 is_stmt 1 view .LVU907 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2749 .loc 1 1551 52 is_stmt 0 view .LVU908 2750 00ec 5A6A ldr r2, [r3, #36] 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2751 .loc 1 1551 16 view .LVU909 2752 00ee 636A ldr r3, [r4, #36] ARM GAS /tmp/cczJHHnF.s page 182 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2753 .loc 1 1551 27 view .LVU910 2754 00f0 1A70 strb r2, [r3] 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2755 .loc 1 1554 11 is_stmt 1 view .LVU911 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2756 .loc 1 1554 15 is_stmt 0 view .LVU912 2757 00f2 636A ldr r3, [r4, #36] 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2758 .loc 1 1554 25 view .LVU913 2759 00f4 0133 adds r3, r3, #1 2760 00f6 6362 str r3, [r4, #36] 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2761 .loc 1 1556 11 is_stmt 1 view .LVU914 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2762 .loc 1 1556 15 is_stmt 0 view .LVU915 2763 00f8 638D ldrh r3, [r4, #42] 2764 00fa 9BB2 uxth r3, r3 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2765 .loc 1 1556 26 view .LVU916 2766 00fc 013B subs r3, r3, #1 2767 00fe 9BB2 uxth r3, r3 2768 0100 6385 strh r3, [r4, #42] @ movhi 2769 .L198: 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2770 .loc 1 1559 9 is_stmt 1 view .LVU917 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2771 .loc 1 1559 16 is_stmt 0 view .LVU918 2772 0102 0120 movs r0, #1 2773 0104 2EE0 b .L192 2774 .L205: 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2775 .loc 1 1572 5 is_stmt 1 view .LVU919 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2776 .loc 1 1572 9 is_stmt 0 view .LVU920 2777 0106 3A46 mov r2, r7 2778 0108 2946 mov r1, r5 2779 010a 2046 mov r0, r4 2780 010c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2781 .LVL156: 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2782 .loc 1 1572 8 view .LVU921 2783 0110 30B1 cbz r0, .L200 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2784 .loc 1 1575 7 is_stmt 1 view .LVU922 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2785 .loc 1 1575 11 is_stmt 0 view .LVU923 2786 0112 2268 ldr r2, [r4] 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2787 .loc 1 1575 21 view .LVU924 2788 0114 5368 ldr r3, [r2, #4] 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2789 .loc 1 1575 27 view .LVU925 2790 0116 43F40043 orr r3, r3, #32768 2791 011a 5360 str r3, [r2, #4] 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2792 .loc 1 1576 7 is_stmt 1 view .LVU926 ARM GAS /tmp/cczJHHnF.s page 183 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2793 .loc 1 1576 14 is_stmt 0 view .LVU927 2794 011c 0120 movs r0, #1 2795 011e 21E0 b .L192 2796 .L200: 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2797 .loc 1 1580 5 is_stmt 1 view .LVU928 2798 0120 2368 ldr r3, [r4] 2799 0122 2022 movs r2, #32 2800 0124 DA61 str r2, [r3, #28] 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2801 .loc 1 1583 5 view .LVU929 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2802 .loc 1 1583 9 is_stmt 0 view .LVU930 2803 0126 0097 str r7, [sp] 2804 0128 2B46 mov r3, r5 2805 012a 0122 movs r2, #1 2806 012c 4FF40041 mov r1, #32768 2807 0130 2046 mov r0, r4 2808 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2809 .LVL157: 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2810 .loc 1 1583 8 view .LVU931 2811 0136 30B1 cbz r0, .L201 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2812 .loc 1 1586 7 is_stmt 1 view .LVU932 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2813 .loc 1 1586 11 is_stmt 0 view .LVU933 2814 0138 2268 ldr r2, [r4] 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2815 .loc 1 1586 21 view .LVU934 2816 013a 5368 ldr r3, [r2, #4] 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2817 .loc 1 1586 27 view .LVU935 2818 013c 43F40043 orr r3, r3, #32768 2819 0140 5360 str r3, [r2, #4] 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2820 .loc 1 1587 7 is_stmt 1 view .LVU936 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2821 .loc 1 1587 14 is_stmt 0 view .LVU937 2822 0142 0120 movs r0, #1 2823 0144 0EE0 b .L192 2824 .L201: 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2825 .loc 1 1591 5 is_stmt 1 view .LVU938 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2826 .loc 1 1591 9 is_stmt 0 view .LVU939 2827 0146 2268 ldr r2, [r4] 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2828 .loc 1 1591 19 view .LVU940 2829 0148 5368 ldr r3, [r2, #4] 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2830 .loc 1 1591 25 view .LVU941 2831 014a 43F40043 orr r3, r3, #32768 2832 014e 5360 str r3, [r2, #4] 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2833 .loc 1 1593 5 is_stmt 1 view .LVU942 ARM GAS /tmp/cczJHHnF.s page 184 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2834 .loc 1 1593 17 is_stmt 0 view .LVU943 2835 0150 2023 movs r3, #32 2836 0152 84F84130 strb r3, [r4, #65] 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2837 .loc 1 1594 5 is_stmt 1 view .LVU944 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2838 .loc 1 1594 17 is_stmt 0 view .LVU945 2839 0156 0023 movs r3, #0 2840 0158 84F84230 strb r3, [r4, #66] 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2841 .loc 1 1597 5 is_stmt 1 view .LVU946 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2842 .loc 1 1597 5 view .LVU947 2843 015c 84F84030 strb r3, [r4, #64] 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2844 .loc 1 1597 5 view .LVU948 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2845 .loc 1 1599 5 view .LVU949 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2846 .loc 1 1599 12 is_stmt 0 view .LVU950 2847 0160 00E0 b .L192 2848 .LVL158: 2849 .L202: 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2850 .loc 1 1603 12 view .LVU951 2851 0162 0220 movs r0, #2 2852 .LVL159: 2853 .L192: 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2854 .loc 1 1605 1 view .LVU952 2855 0164 02B0 add sp, sp, #8 2856 .cfi_remember_state 2857 .cfi_def_cfa_offset 24 2858 @ sp needed 2859 0166 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2860 .LVL160: 2861 .L203: 2862 .cfi_restore_state 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2863 .loc 1 1503 5 view .LVU953 2864 016a 0220 movs r0, #2 2865 .LVL161: 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2866 .loc 1 1503 5 view .LVU954 2867 016c FAE7 b .L192 2868 .cfi_endproc 2869 .LFE137: 2871 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 2872 .align 1 2873 .global HAL_I2C_Master_Transmit_IT 2874 .syntax unified 2875 .thumb 2876 .thumb_func 2878 HAL_I2C_Master_Transmit_IT: 2879 .LVL162: 2880 .LFB138: ARM GAS /tmp/cczJHHnF.s page 185 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2881 .loc 1 1619 1 is_stmt 1 view -0 2882 .cfi_startproc 2883 @ args = 0, pretend = 0, frame = 0 2884 @ frame_needed = 0, uses_anonymous_args = 0 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2885 .loc 1 1619 1 is_stmt 0 view .LVU956 2886 0000 30B5 push {r4, r5, lr} 2887 .cfi_def_cfa_offset 12 2888 .cfi_offset 4, -12 2889 .cfi_offset 5, -8 2890 .cfi_offset 14, -4 2891 0002 83B0 sub sp, sp, #12 2892 .cfi_def_cfa_offset 24 2893 0004 0446 mov r4, r0 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2894 .loc 1 1620 3 is_stmt 1 view .LVU957 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2895 .loc 1 1622 3 view .LVU958 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2896 .loc 1 1622 11 is_stmt 0 view .LVU959 2897 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 2898 .LVL163: 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2899 .loc 1 1622 11 view .LVU960 2900 000a C0B2 uxtb r0, r0 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2901 .loc 1 1622 6 view .LVU961 2902 000c 2028 cmp r0, #32 2903 000e 37D1 bne .L210 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2904 .loc 1 1624 5 is_stmt 1 view .LVU962 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2905 .loc 1 1624 9 is_stmt 0 view .LVU963 2906 0010 2068 ldr r0, [r4] 2907 0012 8069 ldr r0, [r0, #24] 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2908 .loc 1 1624 8 view .LVU964 2909 0014 10F4004F tst r0, #32768 2910 0018 34D1 bne .L211 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2911 .loc 1 1630 5 is_stmt 1 view .LVU965 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2912 .loc 1 1630 5 view .LVU966 2913 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 2914 001e 0128 cmp r0, #1 2915 0020 32D0 beq .L212 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2916 .loc 1 1630 5 discriminator 2 view .LVU967 2917 0022 0120 movs r0, #1 2918 0024 84F84000 strb r0, [r4, #64] 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2919 .loc 1 1630 5 discriminator 2 view .LVU968 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2920 .loc 1 1632 5 discriminator 2 view .LVU969 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2921 .loc 1 1632 23 is_stmt 0 discriminator 2 view .LVU970 ARM GAS /tmp/cczJHHnF.s page 186 2922 0028 2120 movs r0, #33 2923 002a 84F84100 strb r0, [r4, #65] 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2924 .loc 1 1633 5 is_stmt 1 discriminator 2 view .LVU971 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2925 .loc 1 1633 23 is_stmt 0 discriminator 2 view .LVU972 2926 002e 1020 movs r0, #16 2927 0030 84F84200 strb r0, [r4, #66] 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2928 .loc 1 1634 5 is_stmt 1 discriminator 2 view .LVU973 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2929 .loc 1 1634 23 is_stmt 0 discriminator 2 view .LVU974 2930 0034 0020 movs r0, #0 2931 0036 6064 str r0, [r4, #68] 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2932 .loc 1 1637 5 is_stmt 1 discriminator 2 view .LVU975 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2933 .loc 1 1637 23 is_stmt 0 discriminator 2 view .LVU976 2934 0038 6262 str r2, [r4, #36] 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2935 .loc 1 1638 5 is_stmt 1 discriminator 2 view .LVU977 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2936 .loc 1 1638 23 is_stmt 0 discriminator 2 view .LVU978 2937 003a 6385 strh r3, [r4, #42] @ movhi 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2938 .loc 1 1639 5 is_stmt 1 discriminator 2 view .LVU979 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2939 .loc 1 1639 23 is_stmt 0 discriminator 2 view .LVU980 2940 003c 134B ldr r3, .L214 2941 .LVL164: 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2942 .loc 1 1639 23 discriminator 2 view .LVU981 2943 003e E362 str r3, [r4, #44] 2944 .LVL165: 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2945 .loc 1 1640 5 is_stmt 1 discriminator 2 view .LVU982 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2946 .loc 1 1640 23 is_stmt 0 discriminator 2 view .LVU983 2947 0040 134B ldr r3, .L214+4 2948 0042 6363 str r3, [r4, #52] 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2949 .loc 1 1642 5 is_stmt 1 discriminator 2 view .LVU984 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2950 .loc 1 1642 13 is_stmt 0 discriminator 2 view .LVU985 2951 0044 638D ldrh r3, [r4, #42] 2952 0046 9BB2 uxth r3, r3 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2953 .loc 1 1642 8 discriminator 2 view .LVU986 2954 0048 FF2B cmp r3, #255 2955 004a 14D9 bls .L208 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2956 .loc 1 1644 7 is_stmt 1 view .LVU987 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2957 .loc 1 1644 22 is_stmt 0 view .LVU988 2958 004c FF23 movs r3, #255 2959 004e 2385 strh r3, [r4, #40] @ movhi 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 187 2960 .loc 1 1645 7 is_stmt 1 view .LVU989 2961 .LVL166: 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2962 .loc 1 1645 16 is_stmt 0 view .LVU990 2963 0050 4FF08073 mov r3, #16777216 2964 .LVL167: 2965 .L209: 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2966 .loc 1 1655 5 is_stmt 1 view .LVU991 2967 0054 0F4A ldr r2, .L214+8 2968 .LVL168: 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2969 .loc 1 1655 5 is_stmt 0 view .LVU992 2970 0056 0092 str r2, [sp] 2971 .LVL169: 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2972 .loc 1 1655 5 view .LVU993 2973 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 2974 005c 2046 mov r0, r4 2975 005e FFF7FEFF bl I2C_TransferConfig 2976 .LVL170: 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2977 .loc 1 1658 5 is_stmt 1 view .LVU994 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2978 .loc 1 1658 5 view .LVU995 2979 0062 0025 movs r5, #0 2980 0064 84F84050 strb r5, [r4, #64] 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2981 .loc 1 1658 5 view .LVU996 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2982 .loc 1 1668 5 view .LVU997 2983 0068 0121 movs r1, #1 2984 006a 2046 mov r0, r4 2985 006c FFF7FEFF bl I2C_Enable_IRQ 2986 .LVL171: 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2987 .loc 1 1670 5 view .LVU998 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2988 .loc 1 1670 12 is_stmt 0 view .LVU999 2989 0070 2846 mov r0, r5 2990 .LVL172: 2991 .L207: 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2992 .loc 1 1676 1 view .LVU1000 2993 0072 03B0 add sp, sp, #12 2994 .cfi_remember_state 2995 .cfi_def_cfa_offset 12 2996 @ sp needed 2997 0074 30BD pop {r4, r5, pc} 2998 .LVL173: 2999 .L208: 3000 .cfi_restore_state 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3001 .loc 1 1649 7 is_stmt 1 view .LVU1001 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3002 .loc 1 1649 28 is_stmt 0 view .LVU1002 3003 0076 638D ldrh r3, [r4, #42] ARM GAS /tmp/cczJHHnF.s page 188 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3004 .loc 1 1649 22 view .LVU1003 3005 0078 2385 strh r3, [r4, #40] @ movhi 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3006 .loc 1 1650 7 is_stmt 1 view .LVU1004 3007 .LVL174: 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3008 .loc 1 1650 16 is_stmt 0 view .LVU1005 3009 007a 4FF00073 mov r3, #33554432 3010 007e E9E7 b .L209 3011 .LVL175: 3012 .L210: 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3013 .loc 1 1674 12 view .LVU1006 3014 0080 0220 movs r0, #2 3015 0082 F6E7 b .L207 3016 .L211: 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3017 .loc 1 1626 14 view .LVU1007 3018 0084 0220 movs r0, #2 3019 0086 F4E7 b .L207 3020 .L212: 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3021 .loc 1 1630 5 view .LVU1008 3022 0088 0220 movs r0, #2 3023 008a F2E7 b .L207 3024 .L215: 3025 .align 2 3026 .L214: 3027 008c 0000FFFF .word -65536 3028 0090 00000000 .word I2C_Master_ISR_IT 3029 0094 00200080 .word -2147475456 3030 .cfi_endproc 3031 .LFE138: 3033 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3034 .align 1 3035 .global HAL_I2C_Master_Receive_IT 3036 .syntax unified 3037 .thumb 3038 .thumb_func 3040 HAL_I2C_Master_Receive_IT: 3041 .LVL176: 3042 .LFB139: 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3043 .loc 1 1690 1 is_stmt 1 view -0 3044 .cfi_startproc 3045 @ args = 0, pretend = 0, frame = 0 3046 @ frame_needed = 0, uses_anonymous_args = 0 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3047 .loc 1 1690 1 is_stmt 0 view .LVU1010 3048 0000 30B5 push {r4, r5, lr} 3049 .cfi_def_cfa_offset 12 3050 .cfi_offset 4, -12 3051 .cfi_offset 5, -8 3052 .cfi_offset 14, -4 3053 0002 83B0 sub sp, sp, #12 3054 .cfi_def_cfa_offset 24 ARM GAS /tmp/cczJHHnF.s page 189 3055 0004 0446 mov r4, r0 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3056 .loc 1 1691 3 is_stmt 1 view .LVU1011 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3057 .loc 1 1693 3 view .LVU1012 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3058 .loc 1 1693 11 is_stmt 0 view .LVU1013 3059 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3060 .LVL177: 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3061 .loc 1 1693 11 view .LVU1014 3062 000a C0B2 uxtb r0, r0 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3063 .loc 1 1693 6 view .LVU1015 3064 000c 2028 cmp r0, #32 3065 000e 37D1 bne .L220 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3066 .loc 1 1695 5 is_stmt 1 view .LVU1016 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3067 .loc 1 1695 9 is_stmt 0 view .LVU1017 3068 0010 2068 ldr r0, [r4] 3069 0012 8069 ldr r0, [r0, #24] 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3070 .loc 1 1695 8 view .LVU1018 3071 0014 10F4004F tst r0, #32768 3072 0018 34D1 bne .L221 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3073 .loc 1 1701 5 is_stmt 1 view .LVU1019 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3074 .loc 1 1701 5 view .LVU1020 3075 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3076 001e 0128 cmp r0, #1 3077 0020 32D0 beq .L222 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3078 .loc 1 1701 5 discriminator 2 view .LVU1021 3079 0022 0120 movs r0, #1 3080 0024 84F84000 strb r0, [r4, #64] 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3081 .loc 1 1701 5 discriminator 2 view .LVU1022 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3082 .loc 1 1703 5 discriminator 2 view .LVU1023 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3083 .loc 1 1703 23 is_stmt 0 discriminator 2 view .LVU1024 3084 0028 2220 movs r0, #34 3085 002a 84F84100 strb r0, [r4, #65] 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3086 .loc 1 1704 5 is_stmt 1 discriminator 2 view .LVU1025 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3087 .loc 1 1704 23 is_stmt 0 discriminator 2 view .LVU1026 3088 002e 1020 movs r0, #16 3089 0030 84F84200 strb r0, [r4, #66] 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3090 .loc 1 1705 5 is_stmt 1 discriminator 2 view .LVU1027 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3091 .loc 1 1705 23 is_stmt 0 discriminator 2 view .LVU1028 3092 0034 0020 movs r0, #0 3093 0036 6064 str r0, [r4, #68] ARM GAS /tmp/cczJHHnF.s page 190 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3094 .loc 1 1708 5 is_stmt 1 discriminator 2 view .LVU1029 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3095 .loc 1 1708 23 is_stmt 0 discriminator 2 view .LVU1030 3096 0038 6262 str r2, [r4, #36] 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3097 .loc 1 1709 5 is_stmt 1 discriminator 2 view .LVU1031 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3098 .loc 1 1709 23 is_stmt 0 discriminator 2 view .LVU1032 3099 003a 6385 strh r3, [r4, #42] @ movhi 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3100 .loc 1 1710 5 is_stmt 1 discriminator 2 view .LVU1033 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3101 .loc 1 1710 23 is_stmt 0 discriminator 2 view .LVU1034 3102 003c 134B ldr r3, .L224 3103 .LVL178: 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3104 .loc 1 1710 23 discriminator 2 view .LVU1035 3105 003e E362 str r3, [r4, #44] 3106 .LVL179: 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3107 .loc 1 1711 5 is_stmt 1 discriminator 2 view .LVU1036 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3108 .loc 1 1711 23 is_stmt 0 discriminator 2 view .LVU1037 3109 0040 134B ldr r3, .L224+4 3110 0042 6363 str r3, [r4, #52] 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3111 .loc 1 1713 5 is_stmt 1 discriminator 2 view .LVU1038 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3112 .loc 1 1713 13 is_stmt 0 discriminator 2 view .LVU1039 3113 0044 638D ldrh r3, [r4, #42] 3114 0046 9BB2 uxth r3, r3 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3115 .loc 1 1713 8 discriminator 2 view .LVU1040 3116 0048 FF2B cmp r3, #255 3117 004a 14D9 bls .L218 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3118 .loc 1 1715 7 is_stmt 1 view .LVU1041 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3119 .loc 1 1715 22 is_stmt 0 view .LVU1042 3120 004c FF23 movs r3, #255 3121 004e 2385 strh r3, [r4, #40] @ movhi 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3122 .loc 1 1716 7 is_stmt 1 view .LVU1043 3123 .LVL180: 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3124 .loc 1 1716 16 is_stmt 0 view .LVU1044 3125 0050 4FF08073 mov r3, #16777216 3126 .LVL181: 3127 .L219: 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3128 .loc 1 1726 5 is_stmt 1 view .LVU1045 3129 0054 0F4A ldr r2, .L224+8 3130 .LVL182: 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3131 .loc 1 1726 5 is_stmt 0 view .LVU1046 3132 0056 0092 str r2, [sp] ARM GAS /tmp/cczJHHnF.s page 191 3133 .LVL183: 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3134 .loc 1 1726 5 view .LVU1047 3135 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3136 005c 2046 mov r0, r4 3137 005e FFF7FEFF bl I2C_TransferConfig 3138 .LVL184: 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3139 .loc 1 1729 5 is_stmt 1 view .LVU1048 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3140 .loc 1 1729 5 view .LVU1049 3141 0062 0025 movs r5, #0 3142 0064 84F84050 strb r5, [r4, #64] 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3143 .loc 1 1729 5 view .LVU1050 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3144 .loc 1 1739 5 view .LVU1051 3145 0068 0221 movs r1, #2 3146 006a 2046 mov r0, r4 3147 006c FFF7FEFF bl I2C_Enable_IRQ 3148 .LVL185: 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3149 .loc 1 1741 5 view .LVU1052 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3150 .loc 1 1741 12 is_stmt 0 view .LVU1053 3151 0070 2846 mov r0, r5 3152 .LVL186: 3153 .L217: 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3154 .loc 1 1747 1 view .LVU1054 3155 0072 03B0 add sp, sp, #12 3156 .cfi_remember_state 3157 .cfi_def_cfa_offset 12 3158 @ sp needed 3159 0074 30BD pop {r4, r5, pc} 3160 .LVL187: 3161 .L218: 3162 .cfi_restore_state 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3163 .loc 1 1720 7 is_stmt 1 view .LVU1055 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3164 .loc 1 1720 28 is_stmt 0 view .LVU1056 3165 0076 638D ldrh r3, [r4, #42] 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3166 .loc 1 1720 22 view .LVU1057 3167 0078 2385 strh r3, [r4, #40] @ movhi 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3168 .loc 1 1721 7 is_stmt 1 view .LVU1058 3169 .LVL188: 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3170 .loc 1 1721 16 is_stmt 0 view .LVU1059 3171 007a 4FF00073 mov r3, #33554432 3172 007e E9E7 b .L219 3173 .LVL189: 3174 .L220: 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3175 .loc 1 1745 12 view .LVU1060 ARM GAS /tmp/cczJHHnF.s page 192 3176 0080 0220 movs r0, #2 3177 0082 F6E7 b .L217 3178 .L221: 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3179 .loc 1 1697 14 view .LVU1061 3180 0084 0220 movs r0, #2 3181 0086 F4E7 b .L217 3182 .L222: 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3183 .loc 1 1701 5 view .LVU1062 3184 0088 0220 movs r0, #2 3185 008a F2E7 b .L217 3186 .L225: 3187 .align 2 3188 .L224: 3189 008c 0000FFFF .word -65536 3190 0090 00000000 .word I2C_Master_ISR_IT 3191 0094 00240080 .word -2147474432 3192 .cfi_endproc 3193 .LFE139: 3195 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3196 .align 1 3197 .global HAL_I2C_Slave_Transmit_IT 3198 .syntax unified 3199 .thumb 3200 .thumb_func 3202 HAL_I2C_Slave_Transmit_IT: 3203 .LVL190: 3204 .LFB140: 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3205 .loc 1 1758 1 is_stmt 1 view -0 3206 .cfi_startproc 3207 @ args = 0, pretend = 0, frame = 0 3208 @ frame_needed = 0, uses_anonymous_args = 0 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3209 .loc 1 1758 1 is_stmt 0 view .LVU1064 3210 0000 38B5 push {r3, r4, r5, lr} 3211 .cfi_def_cfa_offset 16 3212 .cfi_offset 3, -16 3213 .cfi_offset 4, -12 3214 .cfi_offset 5, -8 3215 .cfi_offset 14, -4 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3216 .loc 1 1759 3 is_stmt 1 view .LVU1065 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3217 .loc 1 1759 11 is_stmt 0 view .LVU1066 3218 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3219 0006 DBB2 uxtb r3, r3 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3220 .loc 1 1759 6 view .LVU1067 3221 0008 202B cmp r3, #32 3222 000a 23D1 bne .L228 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3223 .loc 1 1762 5 is_stmt 1 view .LVU1068 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3224 .loc 1 1762 5 view .LVU1069 3225 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 ARM GAS /tmp/cczJHHnF.s page 193 3226 0010 012B cmp r3, #1 3227 0012 21D0 beq .L229 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3228 .loc 1 1762 5 discriminator 2 view .LVU1070 3229 0014 0123 movs r3, #1 3230 0016 80F84030 strb r3, [r0, #64] 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3231 .loc 1 1762 5 discriminator 2 view .LVU1071 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3232 .loc 1 1764 5 discriminator 2 view .LVU1072 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3233 .loc 1 1764 23 is_stmt 0 discriminator 2 view .LVU1073 3234 001a 2123 movs r3, #33 3235 001c 80F84130 strb r3, [r0, #65] 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3236 .loc 1 1765 5 is_stmt 1 discriminator 2 view .LVU1074 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3237 .loc 1 1765 23 is_stmt 0 discriminator 2 view .LVU1075 3238 0020 2023 movs r3, #32 3239 0022 80F84230 strb r3, [r0, #66] 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3240 .loc 1 1766 5 is_stmt 1 discriminator 2 view .LVU1076 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3241 .loc 1 1766 23 is_stmt 0 discriminator 2 view .LVU1077 3242 0026 0024 movs r4, #0 3243 0028 4464 str r4, [r0, #68] 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3244 .loc 1 1769 5 is_stmt 1 discriminator 2 view .LVU1078 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3245 .loc 1 1769 9 is_stmt 0 discriminator 2 view .LVU1079 3246 002a 0568 ldr r5, [r0] 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3247 .loc 1 1769 19 discriminator 2 view .LVU1080 3248 002c 6B68 ldr r3, [r5, #4] 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3249 .loc 1 1769 25 discriminator 2 view .LVU1081 3250 002e 23F40043 bic r3, r3, #32768 3251 0032 6B60 str r3, [r5, #4] 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3252 .loc 1 1772 5 is_stmt 1 discriminator 2 view .LVU1082 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3253 .loc 1 1772 23 is_stmt 0 discriminator 2 view .LVU1083 3254 0034 4162 str r1, [r0, #36] 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3255 .loc 1 1773 5 is_stmt 1 discriminator 2 view .LVU1084 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3256 .loc 1 1773 23 is_stmt 0 discriminator 2 view .LVU1085 3257 0036 4285 strh r2, [r0, #42] @ movhi 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3258 .loc 1 1774 5 is_stmt 1 discriminator 2 view .LVU1086 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3259 .loc 1 1774 29 is_stmt 0 discriminator 2 view .LVU1087 3260 0038 438D ldrh r3, [r0, #42] 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3261 .loc 1 1774 23 discriminator 2 view .LVU1088 3262 003a 0385 strh r3, [r0, #40] @ movhi 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; ARM GAS /tmp/cczJHHnF.s page 194 3263 .loc 1 1775 5 is_stmt 1 discriminator 2 view .LVU1089 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3264 .loc 1 1775 23 is_stmt 0 discriminator 2 view .LVU1090 3265 003c 074B ldr r3, .L231 3266 003e C362 str r3, [r0, #44] 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3267 .loc 1 1776 5 is_stmt 1 discriminator 2 view .LVU1091 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3268 .loc 1 1776 23 is_stmt 0 discriminator 2 view .LVU1092 3269 0040 074B ldr r3, .L231+4 3270 0042 4363 str r3, [r0, #52] 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3271 .loc 1 1779 5 is_stmt 1 discriminator 2 view .LVU1093 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3272 .loc 1 1779 5 discriminator 2 view .LVU1094 3273 0044 80F84040 strb r4, [r0, #64] 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3274 .loc 1 1779 5 discriminator 2 view .LVU1095 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3275 .loc 1 1789 5 discriminator 2 view .LVU1096 3276 0048 48F20101 movw r1, #32769 3277 .LVL191: 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3278 .loc 1 1789 5 is_stmt 0 discriminator 2 view .LVU1097 3279 004c FFF7FEFF bl I2C_Enable_IRQ 3280 .LVL192: 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3281 .loc 1 1791 5 is_stmt 1 discriminator 2 view .LVU1098 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3282 .loc 1 1791 12 is_stmt 0 discriminator 2 view .LVU1099 3283 0050 2046 mov r0, r4 3284 .L227: 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3285 .loc 1 1797 1 view .LVU1100 3286 0052 38BD pop {r3, r4, r5, pc} 3287 .LVL193: 3288 .L228: 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3289 .loc 1 1795 12 view .LVU1101 3290 0054 0220 movs r0, #2 3291 .LVL194: 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3292 .loc 1 1795 12 view .LVU1102 3293 0056 FCE7 b .L227 3294 .LVL195: 3295 .L229: 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3296 .loc 1 1762 5 view .LVU1103 3297 0058 0220 movs r0, #2 3298 .LVL196: 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3299 .loc 1 1762 5 view .LVU1104 3300 005a FAE7 b .L227 3301 .L232: 3302 .align 2 3303 .L231: 3304 005c 0000FFFF .word -65536 ARM GAS /tmp/cczJHHnF.s page 195 3305 0060 00000000 .word I2C_Slave_ISR_IT 3306 .cfi_endproc 3307 .LFE140: 3309 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3310 .align 1 3311 .global HAL_I2C_Slave_Receive_IT 3312 .syntax unified 3313 .thumb 3314 .thumb_func 3316 HAL_I2C_Slave_Receive_IT: 3317 .LVL197: 3318 .LFB141: 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3319 .loc 1 1808 1 is_stmt 1 view -0 3320 .cfi_startproc 3321 @ args = 0, pretend = 0, frame = 0 3322 @ frame_needed = 0, uses_anonymous_args = 0 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3323 .loc 1 1808 1 is_stmt 0 view .LVU1106 3324 0000 38B5 push {r3, r4, r5, lr} 3325 .cfi_def_cfa_offset 16 3326 .cfi_offset 3, -16 3327 .cfi_offset 4, -12 3328 .cfi_offset 5, -8 3329 .cfi_offset 14, -4 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3330 .loc 1 1809 3 is_stmt 1 view .LVU1107 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3331 .loc 1 1809 11 is_stmt 0 view .LVU1108 3332 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3333 0006 DBB2 uxtb r3, r3 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3334 .loc 1 1809 6 view .LVU1109 3335 0008 202B cmp r3, #32 3336 000a 23D1 bne .L235 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3337 .loc 1 1812 5 is_stmt 1 view .LVU1110 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3338 .loc 1 1812 5 view .LVU1111 3339 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3340 0010 012B cmp r3, #1 3341 0012 21D0 beq .L236 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3342 .loc 1 1812 5 discriminator 2 view .LVU1112 3343 0014 0123 movs r3, #1 3344 0016 80F84030 strb r3, [r0, #64] 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3345 .loc 1 1812 5 discriminator 2 view .LVU1113 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3346 .loc 1 1814 5 discriminator 2 view .LVU1114 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3347 .loc 1 1814 23 is_stmt 0 discriminator 2 view .LVU1115 3348 001a 2223 movs r3, #34 3349 001c 80F84130 strb r3, [r0, #65] 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3350 .loc 1 1815 5 is_stmt 1 discriminator 2 view .LVU1116 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/cczJHHnF.s page 196 3351 .loc 1 1815 23 is_stmt 0 discriminator 2 view .LVU1117 3352 0020 2023 movs r3, #32 3353 0022 80F84230 strb r3, [r0, #66] 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3354 .loc 1 1816 5 is_stmt 1 discriminator 2 view .LVU1118 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3355 .loc 1 1816 23 is_stmt 0 discriminator 2 view .LVU1119 3356 0026 0024 movs r4, #0 3357 0028 4464 str r4, [r0, #68] 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3358 .loc 1 1819 5 is_stmt 1 discriminator 2 view .LVU1120 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3359 .loc 1 1819 9 is_stmt 0 discriminator 2 view .LVU1121 3360 002a 0568 ldr r5, [r0] 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3361 .loc 1 1819 19 discriminator 2 view .LVU1122 3362 002c 6B68 ldr r3, [r5, #4] 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3363 .loc 1 1819 25 discriminator 2 view .LVU1123 3364 002e 23F40043 bic r3, r3, #32768 3365 0032 6B60 str r3, [r5, #4] 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3366 .loc 1 1822 5 is_stmt 1 discriminator 2 view .LVU1124 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3367 .loc 1 1822 23 is_stmt 0 discriminator 2 view .LVU1125 3368 0034 4162 str r1, [r0, #36] 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3369 .loc 1 1823 5 is_stmt 1 discriminator 2 view .LVU1126 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3370 .loc 1 1823 23 is_stmt 0 discriminator 2 view .LVU1127 3371 0036 4285 strh r2, [r0, #42] @ movhi 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3372 .loc 1 1824 5 is_stmt 1 discriminator 2 view .LVU1128 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3373 .loc 1 1824 29 is_stmt 0 discriminator 2 view .LVU1129 3374 0038 438D ldrh r3, [r0, #42] 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3375 .loc 1 1824 23 discriminator 2 view .LVU1130 3376 003a 0385 strh r3, [r0, #40] @ movhi 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3377 .loc 1 1825 5 is_stmt 1 discriminator 2 view .LVU1131 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3378 .loc 1 1825 23 is_stmt 0 discriminator 2 view .LVU1132 3379 003c 074B ldr r3, .L238 3380 003e C362 str r3, [r0, #44] 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3381 .loc 1 1826 5 is_stmt 1 discriminator 2 view .LVU1133 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3382 .loc 1 1826 23 is_stmt 0 discriminator 2 view .LVU1134 3383 0040 074B ldr r3, .L238+4 3384 0042 4363 str r3, [r0, #52] 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3385 .loc 1 1829 5 is_stmt 1 discriminator 2 view .LVU1135 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3386 .loc 1 1829 5 discriminator 2 view .LVU1136 3387 0044 80F84040 strb r4, [r0, #64] 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 197 3388 .loc 1 1829 5 discriminator 2 view .LVU1137 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3389 .loc 1 1839 5 discriminator 2 view .LVU1138 3390 0048 48F20201 movw r1, #32770 3391 .LVL198: 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3392 .loc 1 1839 5 is_stmt 0 discriminator 2 view .LVU1139 3393 004c FFF7FEFF bl I2C_Enable_IRQ 3394 .LVL199: 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3395 .loc 1 1841 5 is_stmt 1 discriminator 2 view .LVU1140 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3396 .loc 1 1841 12 is_stmt 0 discriminator 2 view .LVU1141 3397 0050 2046 mov r0, r4 3398 .L234: 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3399 .loc 1 1847 1 view .LVU1142 3400 0052 38BD pop {r3, r4, r5, pc} 3401 .LVL200: 3402 .L235: 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3403 .loc 1 1845 12 view .LVU1143 3404 0054 0220 movs r0, #2 3405 .LVL201: 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3406 .loc 1 1845 12 view .LVU1144 3407 0056 FCE7 b .L234 3408 .LVL202: 3409 .L236: 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3410 .loc 1 1812 5 view .LVU1145 3411 0058 0220 movs r0, #2 3412 .LVL203: 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3413 .loc 1 1812 5 view .LVU1146 3414 005a FAE7 b .L234 3415 .L239: 3416 .align 2 3417 .L238: 3418 005c 0000FFFF .word -65536 3419 0060 00000000 .word I2C_Slave_ISR_IT 3420 .cfi_endproc 3421 .LFE141: 3423 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3424 .align 1 3425 .global HAL_I2C_Master_Transmit_DMA 3426 .syntax unified 3427 .thumb 3428 .thumb_func 3430 HAL_I2C_Master_Transmit_DMA: 3431 .LVL204: 3432 .LFB142: 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3433 .loc 1 1861 1 is_stmt 1 view -0 3434 .cfi_startproc 3435 @ args = 0, pretend = 0, frame = 0 3436 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cczJHHnF.s page 198 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3437 .loc 1 1861 1 is_stmt 0 view .LVU1148 3438 0000 70B5 push {r4, r5, r6, lr} 3439 .cfi_def_cfa_offset 16 3440 .cfi_offset 4, -16 3441 .cfi_offset 5, -12 3442 .cfi_offset 6, -8 3443 .cfi_offset 14, -4 3444 0002 82B0 sub sp, sp, #8 3445 .cfi_def_cfa_offset 24 3446 0004 0446 mov r4, r0 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3447 .loc 1 1862 3 is_stmt 1 view .LVU1149 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3448 .loc 1 1863 3 view .LVU1150 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3449 .loc 1 1865 3 view .LVU1151 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3450 .loc 1 1865 11 is_stmt 0 view .LVU1152 3451 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3452 .LVL205: 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3453 .loc 1 1865 11 view .LVU1153 3454 000a C0B2 uxtb r0, r0 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3455 .loc 1 1865 6 view .LVU1154 3456 000c 2028 cmp r0, #32 3457 000e 40F08D80 bne .L249 3458 0012 0D46 mov r5, r1 3459 0014 1146 mov r1, r2 3460 .LVL206: 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3461 .loc 1 1867 5 is_stmt 1 view .LVU1155 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3462 .loc 1 1867 9 is_stmt 0 view .LVU1156 3463 0016 2268 ldr r2, [r4] 3464 .LVL207: 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3465 .loc 1 1867 9 view .LVU1157 3466 0018 9269 ldr r2, [r2, #24] 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3467 .loc 1 1867 8 view .LVU1158 3468 001a 12F4004F tst r2, #32768 3469 001e 40F08880 bne .L250 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3470 .loc 1 1873 5 is_stmt 1 view .LVU1159 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3471 .loc 1 1873 5 view .LVU1160 3472 0022 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2 3473 0026 012A cmp r2, #1 3474 0028 00F08580 beq .L251 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3475 .loc 1 1873 5 discriminator 2 view .LVU1161 3476 002c 0122 movs r2, #1 3477 002e 84F84020 strb r2, [r4, #64] 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3478 .loc 1 1873 5 discriminator 2 view .LVU1162 ARM GAS /tmp/cczJHHnF.s page 199 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3479 .loc 1 1875 5 discriminator 2 view .LVU1163 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3480 .loc 1 1875 23 is_stmt 0 discriminator 2 view .LVU1164 3481 0032 2122 movs r2, #33 3482 0034 84F84120 strb r2, [r4, #65] 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3483 .loc 1 1876 5 is_stmt 1 discriminator 2 view .LVU1165 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3484 .loc 1 1876 23 is_stmt 0 discriminator 2 view .LVU1166 3485 0038 1022 movs r2, #16 3486 003a 84F84220 strb r2, [r4, #66] 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3487 .loc 1 1877 5 is_stmt 1 discriminator 2 view .LVU1167 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3488 .loc 1 1877 23 is_stmt 0 discriminator 2 view .LVU1168 3489 003e 0022 movs r2, #0 3490 0040 6264 str r2, [r4, #68] 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3491 .loc 1 1880 5 is_stmt 1 discriminator 2 view .LVU1169 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3492 .loc 1 1880 23 is_stmt 0 discriminator 2 view .LVU1170 3493 0042 6162 str r1, [r4, #36] 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3494 .loc 1 1881 5 is_stmt 1 discriminator 2 view .LVU1171 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3495 .loc 1 1881 23 is_stmt 0 discriminator 2 view .LVU1172 3496 0044 6385 strh r3, [r4, #42] @ movhi 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3497 .loc 1 1882 5 is_stmt 1 discriminator 2 view .LVU1173 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3498 .loc 1 1882 23 is_stmt 0 discriminator 2 view .LVU1174 3499 0046 3D4B ldr r3, .L255 3500 .LVL208: 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3501 .loc 1 1882 23 discriminator 2 view .LVU1175 3502 0048 E362 str r3, [r4, #44] 3503 .LVL209: 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3504 .loc 1 1883 5 is_stmt 1 discriminator 2 view .LVU1176 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3505 .loc 1 1883 23 is_stmt 0 discriminator 2 view .LVU1177 3506 004a 3D4B ldr r3, .L255+4 3507 004c 6363 str r3, [r4, #52] 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3508 .loc 1 1885 5 is_stmt 1 discriminator 2 view .LVU1178 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3509 .loc 1 1885 13 is_stmt 0 discriminator 2 view .LVU1179 3510 004e 638D ldrh r3, [r4, #42] 3511 0050 9BB2 uxth r3, r3 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3512 .loc 1 1885 8 discriminator 2 view .LVU1180 3513 0052 FF2B cmp r3, #255 3514 0054 27D9 bls .L242 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3515 .loc 1 1887 7 is_stmt 1 view .LVU1181 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/cczJHHnF.s page 200 3516 .loc 1 1887 22 is_stmt 0 view .LVU1182 3517 0056 FF23 movs r3, #255 3518 0058 2385 strh r3, [r4, #40] @ movhi 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3519 .loc 1 1888 7 is_stmt 1 view .LVU1183 3520 .LVL210: 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3521 .loc 1 1888 16 is_stmt 0 view .LVU1184 3522 005a 4FF08076 mov r6, #16777216 3523 .LVL211: 3524 .L243: 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3525 .loc 1 1896 5 is_stmt 1 view .LVU1185 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3526 .loc 1 1896 13 is_stmt 0 view .LVU1186 3527 005e 228D ldrh r2, [r4, #40] 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3528 .loc 1 1896 8 view .LVU1187 3529 0060 002A cmp r2, #0 3530 0062 4FD0 beq .L244 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3531 .loc 1 1898 7 is_stmt 1 view .LVU1188 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3532 .loc 1 1898 15 is_stmt 0 view .LVU1189 3533 0064 A36B ldr r3, [r4, #56] 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3534 .loc 1 1898 10 view .LVU1190 3535 0066 1BB3 cbz r3, .L245 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3536 .loc 1 1901 9 is_stmt 1 view .LVU1191 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3537 .loc 1 1901 40 is_stmt 0 view .LVU1192 3538 0068 364A ldr r2, .L255+8 3539 006a 9A62 str r2, [r3, #40] 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3540 .loc 1 1904 9 is_stmt 1 view .LVU1193 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3541 .loc 1 1904 13 is_stmt 0 view .LVU1194 3542 006c A36B ldr r3, [r4, #56] 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3543 .loc 1 1904 41 view .LVU1195 3544 006e 364A ldr r2, .L255+12 3545 0070 1A63 str r2, [r3, #48] 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3546 .loc 1 1907 9 is_stmt 1 view .LVU1196 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3547 .loc 1 1907 13 is_stmt 0 view .LVU1197 3548 0072 A26B ldr r2, [r4, #56] 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3549 .loc 1 1907 44 view .LVU1198 3550 0074 0023 movs r3, #0 3551 0076 D362 str r3, [r2, #44] 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3552 .loc 1 1908 9 is_stmt 1 view .LVU1199 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3553 .loc 1 1908 13 is_stmt 0 view .LVU1200 3554 0078 A26B ldr r2, [r4, #56] ARM GAS /tmp/cczJHHnF.s page 201 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3555 .loc 1 1908 41 view .LVU1201 3556 007a 5363 str r3, [r2, #52] 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3557 .loc 1 1911 9 is_stmt 1 view .LVU1202 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3558 .loc 1 1911 88 is_stmt 0 view .LVU1203 3559 007c 2268 ldr r2, [r4] 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3560 .loc 1 1911 25 view .LVU1204 3561 007e 238D ldrh r3, [r4, #40] 3562 0080 2832 adds r2, r2, #40 3563 0082 A06B ldr r0, [r4, #56] 3564 0084 FFF7FEFF bl HAL_DMA_Start_IT 3565 .LVL212: 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3566 .loc 1 1929 7 is_stmt 1 view .LVU1205 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3567 .loc 1 1929 10 is_stmt 0 view .LVU1206 3568 0088 00B3 cbz r0, .L254 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3569 .loc 1 1953 9 is_stmt 1 view .LVU1207 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3570 .loc 1 1953 25 is_stmt 0 view .LVU1208 3571 008a 2023 movs r3, #32 3572 008c 84F84130 strb r3, [r4, #65] 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3573 .loc 1 1954 9 is_stmt 1 view .LVU1209 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3574 .loc 1 1954 25 is_stmt 0 view .LVU1210 3575 0090 0022 movs r2, #0 3576 0092 84F84220 strb r2, [r4, #66] 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3577 .loc 1 1957 9 is_stmt 1 view .LVU1211 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3578 .loc 1 1957 13 is_stmt 0 view .LVU1212 3579 0096 636C ldr r3, [r4, #68] 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3580 .loc 1 1957 25 view .LVU1213 3581 0098 43F01003 orr r3, r3, #16 3582 009c 6364 str r3, [r4, #68] 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3583 .loc 1 1960 9 is_stmt 1 view .LVU1214 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3584 .loc 1 1960 9 view .LVU1215 3585 009e 84F84020 strb r2, [r4, #64] 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3586 .loc 1 1960 9 view .LVU1216 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3587 .loc 1 1962 9 view .LVU1217 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3588 .loc 1 1962 16 is_stmt 0 view .LVU1218 3589 00a2 0120 movs r0, #1 3590 .LVL213: 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3591 .loc 1 1962 16 view .LVU1219 3592 00a4 43E0 b .L241 ARM GAS /tmp/cczJHHnF.s page 202 3593 .LVL214: 3594 .L242: 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3595 .loc 1 1892 7 is_stmt 1 view .LVU1220 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3596 .loc 1 1892 28 is_stmt 0 view .LVU1221 3597 00a6 638D ldrh r3, [r4, #42] 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3598 .loc 1 1892 22 view .LVU1222 3599 00a8 2385 strh r3, [r4, #40] @ movhi 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3600 .loc 1 1893 7 is_stmt 1 view .LVU1223 3601 .LVL215: 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3602 .loc 1 1893 16 is_stmt 0 view .LVU1224 3603 00aa 4FF00076 mov r6, #33554432 3604 00ae D6E7 b .L243 3605 .LVL216: 3606 .L245: 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3607 .loc 1 1917 9 is_stmt 1 view .LVU1225 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3608 .loc 1 1917 25 is_stmt 0 view .LVU1226 3609 00b0 2023 movs r3, #32 3610 00b2 84F84130 strb r3, [r4, #65] 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3611 .loc 1 1918 9 is_stmt 1 view .LVU1227 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3612 .loc 1 1918 25 is_stmt 0 view .LVU1228 3613 00b6 0022 movs r2, #0 3614 00b8 84F84220 strb r2, [r4, #66] 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3615 .loc 1 1921 9 is_stmt 1 view .LVU1229 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3616 .loc 1 1921 13 is_stmt 0 view .LVU1230 3617 00bc 636C ldr r3, [r4, #68] 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3618 .loc 1 1921 25 view .LVU1231 3619 00be 43F08003 orr r3, r3, #128 3620 00c2 6364 str r3, [r4, #68] 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3621 .loc 1 1924 9 is_stmt 1 view .LVU1232 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3622 .loc 1 1924 9 view .LVU1233 3623 00c4 84F84020 strb r2, [r4, #64] 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3624 .loc 1 1924 9 view .LVU1234 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3625 .loc 1 1926 9 view .LVU1235 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3626 .loc 1 1926 16 is_stmt 0 view .LVU1236 3627 00c8 0120 movs r0, #1 3628 00ca 30E0 b .L241 3629 .LVL217: 3630 .L254: 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3631 .loc 1 1933 9 is_stmt 1 view .LVU1237 ARM GAS /tmp/cczJHHnF.s page 203 3632 00cc 1F4B ldr r3, .L255+16 3633 00ce 0093 str r3, [sp] 3634 00d0 3346 mov r3, r6 3635 00d2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3636 00d6 2946 mov r1, r5 3637 00d8 2046 mov r0, r4 3638 .LVL218: 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3639 .loc 1 1933 9 is_stmt 0 view .LVU1238 3640 00da FFF7FEFF bl I2C_TransferConfig 3641 .LVL219: 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3642 .loc 1 1936 9 is_stmt 1 view .LVU1239 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3643 .loc 1 1936 13 is_stmt 0 view .LVU1240 3644 00de 638D ldrh r3, [r4, #42] 3645 00e0 9BB2 uxth r3, r3 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3646 .loc 1 1936 32 view .LVU1241 3647 00e2 228D ldrh r2, [r4, #40] 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3648 .loc 1 1936 25 view .LVU1242 3649 00e4 9B1A subs r3, r3, r2 3650 00e6 9BB2 uxth r3, r3 3651 00e8 6385 strh r3, [r4, #42] @ movhi 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3652 .loc 1 1939 9 is_stmt 1 view .LVU1243 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3653 .loc 1 1939 9 view .LVU1244 3654 00ea 0023 movs r3, #0 3655 00ec 84F84030 strb r3, [r4, #64] 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3656 .loc 1 1939 9 view .LVU1245 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3657 .loc 1 1945 9 view .LVU1246 3658 00f0 1021 movs r1, #16 3659 00f2 2046 mov r0, r4 3660 00f4 FFF7FEFF bl I2C_Enable_IRQ 3661 .LVL220: 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3662 .loc 1 1948 9 view .LVU1247 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3663 .loc 1 1948 13 is_stmt 0 view .LVU1248 3664 00f8 2268 ldr r2, [r4] 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3665 .loc 1 1948 23 view .LVU1249 3666 00fa 1368 ldr r3, [r2] 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3667 .loc 1 1948 29 view .LVU1250 3668 00fc 43F48043 orr r3, r3, #16384 3669 0100 1360 str r3, [r2] 3670 0102 11E0 b .L248 3671 .LVL221: 3672 .L244: 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3673 .loc 1 1968 7 is_stmt 1 view .LVU1251 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 204 3674 .loc 1 1968 21 is_stmt 0 view .LVU1252 3675 0104 124B ldr r3, .L255+20 3676 0106 6363 str r3, [r4, #52] 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3677 .loc 1 1972 7 is_stmt 1 view .LVU1253 3678 0108 104B ldr r3, .L255+16 3679 010a 0093 str r3, [sp] 3680 010c 4FF00073 mov r3, #33554432 3681 0110 D2B2 uxtb r2, r2 3682 0112 2946 mov r1, r5 3683 .LVL222: 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3684 .loc 1 1972 7 is_stmt 0 view .LVU1254 3685 0114 2046 mov r0, r4 3686 0116 FFF7FEFF bl I2C_TransferConfig 3687 .LVL223: 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3688 .loc 1 1976 7 is_stmt 1 view .LVU1255 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3689 .loc 1 1976 7 view .LVU1256 3690 011a 0023 movs r3, #0 3691 011c 84F84030 strb r3, [r4, #64] 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3692 .loc 1 1976 7 view .LVU1257 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3693 .loc 1 1985 7 view .LVU1258 3694 0120 0121 movs r1, #1 3695 0122 2046 mov r0, r4 3696 0124 FFF7FEFF bl I2C_Enable_IRQ 3697 .LVL224: 3698 .L248: 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3699 .loc 1 1988 5 view .LVU1259 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3700 .loc 1 1988 12 is_stmt 0 view .LVU1260 3701 0128 0020 movs r0, #0 3702 012a 00E0 b .L241 3703 .LVL225: 3704 .L249: 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3705 .loc 1 1992 12 view .LVU1261 3706 012c 0220 movs r0, #2 3707 .LVL226: 3708 .L241: 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3709 .loc 1 1994 1 view .LVU1262 3710 012e 02B0 add sp, sp, #8 3711 .cfi_remember_state 3712 .cfi_def_cfa_offset 16 3713 @ sp needed 3714 0130 70BD pop {r4, r5, r6, pc} 3715 .LVL227: 3716 .L250: 3717 .cfi_restore_state 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3718 .loc 1 1869 14 view .LVU1263 3719 0132 0220 movs r0, #2 ARM GAS /tmp/cczJHHnF.s page 205 3720 0134 FBE7 b .L241 3721 .L251: 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3722 .loc 1 1873 5 view .LVU1264 3723 0136 0220 movs r0, #2 3724 0138 F9E7 b .L241 3725 .L256: 3726 013a 00BF .align 2 3727 .L255: 3728 013c 0000FFFF .word -65536 3729 0140 00000000 .word I2C_Master_ISR_DMA 3730 0144 00000000 .word I2C_DMAMasterTransmitCplt 3731 0148 00000000 .word I2C_DMAError 3732 014c 00200080 .word -2147475456 3733 0150 00000000 .word I2C_Master_ISR_IT 3734 .cfi_endproc 3735 .LFE142: 3737 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 3738 .align 1 3739 .global HAL_I2C_Master_Receive_DMA 3740 .syntax unified 3741 .thumb 3742 .thumb_func 3744 HAL_I2C_Master_Receive_DMA: 3745 .LVL228: 3746 .LFB143: 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3747 .loc 1 2008 1 is_stmt 1 view -0 3748 .cfi_startproc 3749 @ args = 0, pretend = 0, frame = 0 3750 @ frame_needed = 0, uses_anonymous_args = 0 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3751 .loc 1 2008 1 is_stmt 0 view .LVU1266 3752 0000 70B5 push {r4, r5, r6, lr} 3753 .cfi_def_cfa_offset 16 3754 .cfi_offset 4, -16 3755 .cfi_offset 5, -12 3756 .cfi_offset 6, -8 3757 .cfi_offset 14, -4 3758 0002 82B0 sub sp, sp, #8 3759 .cfi_def_cfa_offset 24 3760 0004 0446 mov r4, r0 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3761 .loc 1 2009 3 is_stmt 1 view .LVU1267 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3762 .loc 1 2010 3 view .LVU1268 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3763 .loc 1 2012 3 view .LVU1269 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3764 .loc 1 2012 11 is_stmt 0 view .LVU1270 3765 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3766 .LVL229: 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3767 .loc 1 2012 11 view .LVU1271 3768 000a C0B2 uxtb r0, r0 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3769 .loc 1 2012 6 view .LVU1272 ARM GAS /tmp/cczJHHnF.s page 206 3770 000c 2028 cmp r0, #32 3771 000e 40F08C80 bne .L266 3772 0012 0D46 mov r5, r1 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3773 .loc 1 2014 5 is_stmt 1 view .LVU1273 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3774 .loc 1 2014 9 is_stmt 0 view .LVU1274 3775 0014 2168 ldr r1, [r4] 3776 .LVL230: 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3777 .loc 1 2014 9 view .LVU1275 3778 0016 8969 ldr r1, [r1, #24] 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3779 .loc 1 2014 8 view .LVU1276 3780 0018 11F4004F tst r1, #32768 3781 001c 40F08880 bne .L267 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3782 .loc 1 2020 5 is_stmt 1 view .LVU1277 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3783 .loc 1 2020 5 view .LVU1278 3784 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 3785 0024 0129 cmp r1, #1 3786 0026 00F08580 beq .L268 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3787 .loc 1 2020 5 discriminator 2 view .LVU1279 3788 002a 0121 movs r1, #1 3789 002c 84F84010 strb r1, [r4, #64] 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3790 .loc 1 2020 5 discriminator 2 view .LVU1280 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3791 .loc 1 2022 5 discriminator 2 view .LVU1281 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3792 .loc 1 2022 23 is_stmt 0 discriminator 2 view .LVU1282 3793 0030 2221 movs r1, #34 3794 0032 84F84110 strb r1, [r4, #65] 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3795 .loc 1 2023 5 is_stmt 1 discriminator 2 view .LVU1283 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3796 .loc 1 2023 23 is_stmt 0 discriminator 2 view .LVU1284 3797 0036 1021 movs r1, #16 3798 0038 84F84210 strb r1, [r4, #66] 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3799 .loc 1 2024 5 is_stmt 1 discriminator 2 view .LVU1285 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3800 .loc 1 2024 23 is_stmt 0 discriminator 2 view .LVU1286 3801 003c 0021 movs r1, #0 3802 003e 6164 str r1, [r4, #68] 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3803 .loc 1 2027 5 is_stmt 1 discriminator 2 view .LVU1287 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3804 .loc 1 2027 23 is_stmt 0 discriminator 2 view .LVU1288 3805 0040 6262 str r2, [r4, #36] 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3806 .loc 1 2028 5 is_stmt 1 discriminator 2 view .LVU1289 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3807 .loc 1 2028 23 is_stmt 0 discriminator 2 view .LVU1290 3808 0042 6385 strh r3, [r4, #42] @ movhi ARM GAS /tmp/cczJHHnF.s page 207 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3809 .loc 1 2029 5 is_stmt 1 discriminator 2 view .LVU1291 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3810 .loc 1 2029 23 is_stmt 0 discriminator 2 view .LVU1292 3811 0044 3C4B ldr r3, .L272 3812 .LVL231: 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3813 .loc 1 2029 23 discriminator 2 view .LVU1293 3814 0046 E362 str r3, [r4, #44] 3815 .LVL232: 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3816 .loc 1 2030 5 is_stmt 1 discriminator 2 view .LVU1294 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3817 .loc 1 2030 23 is_stmt 0 discriminator 2 view .LVU1295 3818 0048 3C4B ldr r3, .L272+4 3819 004a 6363 str r3, [r4, #52] 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3820 .loc 1 2032 5 is_stmt 1 discriminator 2 view .LVU1296 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3821 .loc 1 2032 13 is_stmt 0 discriminator 2 view .LVU1297 3822 004c 638D ldrh r3, [r4, #42] 3823 004e 9BB2 uxth r3, r3 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3824 .loc 1 2032 8 discriminator 2 view .LVU1298 3825 0050 FF2B cmp r3, #255 3826 0052 27D9 bls .L259 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3827 .loc 1 2034 7 is_stmt 1 view .LVU1299 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3828 .loc 1 2034 22 is_stmt 0 view .LVU1300 3829 0054 FF23 movs r3, #255 3830 0056 2385 strh r3, [r4, #40] @ movhi 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3831 .loc 1 2035 7 is_stmt 1 view .LVU1301 3832 .LVL233: 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3833 .loc 1 2035 16 is_stmt 0 view .LVU1302 3834 0058 4FF08076 mov r6, #16777216 3835 .LVL234: 3836 .L260: 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3837 .loc 1 2043 5 is_stmt 1 view .LVU1303 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3838 .loc 1 2043 13 is_stmt 0 view .LVU1304 3839 005c 218D ldrh r1, [r4, #40] 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3840 .loc 1 2043 8 view .LVU1305 3841 005e 0029 cmp r1, #0 3842 0060 4FD0 beq .L261 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3843 .loc 1 2045 7 is_stmt 1 view .LVU1306 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3844 .loc 1 2045 15 is_stmt 0 view .LVU1307 3845 0062 E36B ldr r3, [r4, #60] 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3846 .loc 1 2045 10 view .LVU1308 3847 0064 1BB3 cbz r3, .L262 ARM GAS /tmp/cczJHHnF.s page 208 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3848 .loc 1 2048 9 is_stmt 1 view .LVU1309 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3849 .loc 1 2048 40 is_stmt 0 view .LVU1310 3850 0066 3649 ldr r1, .L272+8 3851 0068 9962 str r1, [r3, #40] 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3852 .loc 1 2051 9 is_stmt 1 view .LVU1311 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3853 .loc 1 2051 13 is_stmt 0 view .LVU1312 3854 006a E36B ldr r3, [r4, #60] 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3855 .loc 1 2051 41 view .LVU1313 3856 006c 3549 ldr r1, .L272+12 3857 006e 1963 str r1, [r3, #48] 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3858 .loc 1 2054 9 is_stmt 1 view .LVU1314 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3859 .loc 1 2054 13 is_stmt 0 view .LVU1315 3860 0070 E16B ldr r1, [r4, #60] 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3861 .loc 1 2054 44 view .LVU1316 3862 0072 0023 movs r3, #0 3863 0074 CB62 str r3, [r1, #44] 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3864 .loc 1 2055 9 is_stmt 1 view .LVU1317 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3865 .loc 1 2055 13 is_stmt 0 view .LVU1318 3866 0076 E16B ldr r1, [r4, #60] 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3867 .loc 1 2055 41 view .LVU1319 3868 0078 4B63 str r3, [r1, #52] 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3869 .loc 1 2058 9 is_stmt 1 view .LVU1320 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3870 .loc 1 2058 71 is_stmt 0 view .LVU1321 3871 007a 2168 ldr r1, [r4] 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3872 .loc 1 2058 25 view .LVU1322 3873 007c 238D ldrh r3, [r4, #40] 3874 007e 2431 adds r1, r1, #36 3875 0080 E06B ldr r0, [r4, #60] 3876 0082 FFF7FEFF bl HAL_DMA_Start_IT 3877 .LVL235: 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3878 .loc 1 2076 7 is_stmt 1 view .LVU1323 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3879 .loc 1 2076 10 is_stmt 0 view .LVU1324 3880 0086 00B3 cbz r0, .L271 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3881 .loc 1 2100 9 is_stmt 1 view .LVU1325 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3882 .loc 1 2100 25 is_stmt 0 view .LVU1326 3883 0088 2023 movs r3, #32 3884 008a 84F84130 strb r3, [r4, #65] 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3885 .loc 1 2101 9 is_stmt 1 view .LVU1327 ARM GAS /tmp/cczJHHnF.s page 209 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3886 .loc 1 2101 25 is_stmt 0 view .LVU1328 3887 008e 0022 movs r2, #0 3888 0090 84F84220 strb r2, [r4, #66] 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3889 .loc 1 2104 9 is_stmt 1 view .LVU1329 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3890 .loc 1 2104 13 is_stmt 0 view .LVU1330 3891 0094 636C ldr r3, [r4, #68] 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3892 .loc 1 2104 25 view .LVU1331 3893 0096 43F01003 orr r3, r3, #16 3894 009a 6364 str r3, [r4, #68] 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3895 .loc 1 2107 9 is_stmt 1 view .LVU1332 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3896 .loc 1 2107 9 view .LVU1333 3897 009c 84F84020 strb r2, [r4, #64] 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3898 .loc 1 2107 9 view .LVU1334 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3899 .loc 1 2109 9 view .LVU1335 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3900 .loc 1 2109 16 is_stmt 0 view .LVU1336 3901 00a0 0120 movs r0, #1 3902 .LVL236: 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3903 .loc 1 2109 16 view .LVU1337 3904 00a2 43E0 b .L258 3905 .LVL237: 3906 .L259: 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3907 .loc 1 2039 7 is_stmt 1 view .LVU1338 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3908 .loc 1 2039 28 is_stmt 0 view .LVU1339 3909 00a4 638D ldrh r3, [r4, #42] 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3910 .loc 1 2039 22 view .LVU1340 3911 00a6 2385 strh r3, [r4, #40] @ movhi 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3912 .loc 1 2040 7 is_stmt 1 view .LVU1341 3913 .LVL238: 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3914 .loc 1 2040 16 is_stmt 0 view .LVU1342 3915 00a8 4FF00076 mov r6, #33554432 3916 00ac D6E7 b .L260 3917 .LVL239: 3918 .L262: 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3919 .loc 1 2064 9 is_stmt 1 view .LVU1343 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3920 .loc 1 2064 25 is_stmt 0 view .LVU1344 3921 00ae 2023 movs r3, #32 3922 00b0 84F84130 strb r3, [r4, #65] 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3923 .loc 1 2065 9 is_stmt 1 view .LVU1345 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 210 3924 .loc 1 2065 25 is_stmt 0 view .LVU1346 3925 00b4 0022 movs r2, #0 3926 .LVL240: 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3927 .loc 1 2065 25 view .LVU1347 3928 00b6 84F84220 strb r2, [r4, #66] 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3929 .loc 1 2068 9 is_stmt 1 view .LVU1348 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3930 .loc 1 2068 13 is_stmt 0 view .LVU1349 3931 00ba 636C ldr r3, [r4, #68] 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3932 .loc 1 2068 25 view .LVU1350 3933 00bc 43F08003 orr r3, r3, #128 3934 00c0 6364 str r3, [r4, #68] 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3935 .loc 1 2071 9 is_stmt 1 view .LVU1351 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3936 .loc 1 2071 9 view .LVU1352 3937 00c2 84F84020 strb r2, [r4, #64] 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3938 .loc 1 2071 9 view .LVU1353 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3939 .loc 1 2073 9 view .LVU1354 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3940 .loc 1 2073 16 is_stmt 0 view .LVU1355 3941 00c6 0120 movs r0, #1 3942 00c8 30E0 b .L258 3943 .LVL241: 3944 .L271: 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3945 .loc 1 2080 9 is_stmt 1 view .LVU1356 3946 00ca 1F4B ldr r3, .L272+16 3947 00cc 0093 str r3, [sp] 3948 00ce 3346 mov r3, r6 3949 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3950 00d4 2946 mov r1, r5 3951 00d6 2046 mov r0, r4 3952 .LVL242: 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3953 .loc 1 2080 9 is_stmt 0 view .LVU1357 3954 00d8 FFF7FEFF bl I2C_TransferConfig 3955 .LVL243: 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3956 .loc 1 2083 9 is_stmt 1 view .LVU1358 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3957 .loc 1 2083 13 is_stmt 0 view .LVU1359 3958 00dc 638D ldrh r3, [r4, #42] 3959 00de 9BB2 uxth r3, r3 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3960 .loc 1 2083 32 view .LVU1360 3961 00e0 228D ldrh r2, [r4, #40] 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3962 .loc 1 2083 25 view .LVU1361 3963 00e2 9B1A subs r3, r3, r2 3964 00e4 9BB2 uxth r3, r3 3965 00e6 6385 strh r3, [r4, #42] @ movhi ARM GAS /tmp/cczJHHnF.s page 211 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3966 .loc 1 2086 9 is_stmt 1 view .LVU1362 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3967 .loc 1 2086 9 view .LVU1363 3968 00e8 0023 movs r3, #0 3969 00ea 84F84030 strb r3, [r4, #64] 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3970 .loc 1 2086 9 view .LVU1364 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3971 .loc 1 2092 9 view .LVU1365 3972 00ee 1021 movs r1, #16 3973 00f0 2046 mov r0, r4 3974 00f2 FFF7FEFF bl I2C_Enable_IRQ 3975 .LVL244: 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3976 .loc 1 2095 9 view .LVU1366 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3977 .loc 1 2095 13 is_stmt 0 view .LVU1367 3978 00f6 2268 ldr r2, [r4] 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3979 .loc 1 2095 23 view .LVU1368 3980 00f8 1368 ldr r3, [r2] 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3981 .loc 1 2095 29 view .LVU1369 3982 00fa 43F40043 orr r3, r3, #32768 3983 00fe 1360 str r3, [r2] 3984 0100 11E0 b .L265 3985 .LVL245: 3986 .L261: 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3987 .loc 1 2115 7 is_stmt 1 view .LVU1370 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3988 .loc 1 2115 21 is_stmt 0 view .LVU1371 3989 0102 124B ldr r3, .L272+20 3990 0104 6363 str r3, [r4, #52] 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3991 .loc 1 2119 7 is_stmt 1 view .LVU1372 3992 0106 104B ldr r3, .L272+16 3993 0108 0093 str r3, [sp] 3994 010a 4FF00073 mov r3, #33554432 3995 010e CAB2 uxtb r2, r1 3996 .LVL246: 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3997 .loc 1 2119 7 is_stmt 0 view .LVU1373 3998 0110 2946 mov r1, r5 3999 0112 2046 mov r0, r4 4000 0114 FFF7FEFF bl I2C_TransferConfig 4001 .LVL247: 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4002 .loc 1 2123 7 is_stmt 1 view .LVU1374 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4003 .loc 1 2123 7 view .LVU1375 4004 0118 0023 movs r3, #0 4005 011a 84F84030 strb r3, [r4, #64] 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4006 .loc 1 2123 7 view .LVU1376 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 212 4007 .loc 1 2132 7 view .LVU1377 4008 011e 0121 movs r1, #1 4009 0120 2046 mov r0, r4 4010 0122 FFF7FEFF bl I2C_Enable_IRQ 4011 .LVL248: 4012 .L265: 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4013 .loc 1 2135 5 view .LVU1378 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4014 .loc 1 2135 12 is_stmt 0 view .LVU1379 4015 0126 0020 movs r0, #0 4016 0128 00E0 b .L258 4017 .LVL249: 4018 .L266: 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4019 .loc 1 2139 12 view .LVU1380 4020 012a 0220 movs r0, #2 4021 .LVL250: 4022 .L258: 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4023 .loc 1 2141 1 view .LVU1381 4024 012c 02B0 add sp, sp, #8 4025 .cfi_remember_state 4026 .cfi_def_cfa_offset 16 4027 @ sp needed 4028 012e 70BD pop {r4, r5, r6, pc} 4029 .LVL251: 4030 .L267: 4031 .cfi_restore_state 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4032 .loc 1 2016 14 view .LVU1382 4033 0130 0220 movs r0, #2 4034 0132 FBE7 b .L258 4035 .L268: 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4036 .loc 1 2020 5 view .LVU1383 4037 0134 0220 movs r0, #2 4038 0136 F9E7 b .L258 4039 .L273: 4040 .align 2 4041 .L272: 4042 0138 0000FFFF .word -65536 4043 013c 00000000 .word I2C_Master_ISR_DMA 4044 0140 00000000 .word I2C_DMAMasterReceiveCplt 4045 0144 00000000 .word I2C_DMAError 4046 0148 00240080 .word -2147474432 4047 014c 00000000 .word I2C_Master_ISR_IT 4048 .cfi_endproc 4049 .LFE143: 4051 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4052 .align 1 4053 .global HAL_I2C_Slave_Transmit_DMA 4054 .syntax unified 4055 .thumb 4056 .thumb_func 4058 HAL_I2C_Slave_Transmit_DMA: 4059 .LVL252: ARM GAS /tmp/cczJHHnF.s page 213 4060 .LFB144: 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4061 .loc 1 2152 1 is_stmt 1 view -0 4062 .cfi_startproc 4063 @ args = 0, pretend = 0, frame = 0 4064 @ frame_needed = 0, uses_anonymous_args = 0 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4065 .loc 1 2152 1 is_stmt 0 view .LVU1385 4066 0000 38B5 push {r3, r4, r5, lr} 4067 .cfi_def_cfa_offset 16 4068 .cfi_offset 3, -16 4069 .cfi_offset 4, -12 4070 .cfi_offset 5, -8 4071 .cfi_offset 14, -4 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4072 .loc 1 2153 3 is_stmt 1 view .LVU1386 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4073 .loc 1 2155 3 view .LVU1387 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4074 .loc 1 2155 11 is_stmt 0 view .LVU1388 4075 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4076 0006 DBB2 uxtb r3, r3 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4077 .loc 1 2155 6 view .LVU1389 4078 0008 202B cmp r3, #32 4079 000a 63D1 bne .L281 4080 000c 0446 mov r4, r0 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4081 .loc 1 2157 5 is_stmt 1 view .LVU1390 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4082 .loc 1 2157 8 is_stmt 0 view .LVU1391 4083 000e 0029 cmp r1, #0 4084 0010 3AD0 beq .L276 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4085 .loc 1 2157 25 discriminator 1 view .LVU1392 4086 0012 002A cmp r2, #0 4087 0014 38D0 beq .L276 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4088 .loc 1 2163 5 is_stmt 1 view .LVU1393 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4089 .loc 1 2163 5 view .LVU1394 4090 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4091 001a 012B cmp r3, #1 4092 001c 5DD0 beq .L282 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4093 .loc 1 2163 5 discriminator 2 view .LVU1395 4094 001e 0123 movs r3, #1 4095 0020 80F84030 strb r3, [r0, #64] 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4096 .loc 1 2163 5 discriminator 2 view .LVU1396 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4097 .loc 1 2165 5 discriminator 2 view .LVU1397 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4098 .loc 1 2165 23 is_stmt 0 discriminator 2 view .LVU1398 4099 0024 2123 movs r3, #33 4100 0026 80F84130 strb r3, [r0, #65] 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/cczJHHnF.s page 214 4101 .loc 1 2166 5 is_stmt 1 discriminator 2 view .LVU1399 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4102 .loc 1 2166 23 is_stmt 0 discriminator 2 view .LVU1400 4103 002a 2023 movs r3, #32 4104 002c 80F84230 strb r3, [r0, #66] 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4105 .loc 1 2167 5 is_stmt 1 discriminator 2 view .LVU1401 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4106 .loc 1 2167 23 is_stmt 0 discriminator 2 view .LVU1402 4107 0030 0023 movs r3, #0 4108 0032 4364 str r3, [r0, #68] 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4109 .loc 1 2170 5 is_stmt 1 discriminator 2 view .LVU1403 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4110 .loc 1 2170 23 is_stmt 0 discriminator 2 view .LVU1404 4111 0034 4162 str r1, [r0, #36] 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4112 .loc 1 2171 5 is_stmt 1 discriminator 2 view .LVU1405 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4113 .loc 1 2171 23 is_stmt 0 discriminator 2 view .LVU1406 4114 0036 4285 strh r2, [r0, #42] @ movhi 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4115 .loc 1 2172 5 is_stmt 1 discriminator 2 view .LVU1407 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4116 .loc 1 2172 29 is_stmt 0 discriminator 2 view .LVU1408 4117 0038 438D ldrh r3, [r0, #42] 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4118 .loc 1 2172 23 discriminator 2 view .LVU1409 4119 003a 0385 strh r3, [r0, #40] @ movhi 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4120 .loc 1 2173 5 is_stmt 1 discriminator 2 view .LVU1410 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4121 .loc 1 2173 23 is_stmt 0 discriminator 2 view .LVU1411 4122 003c 284B ldr r3, .L286 4123 003e C362 str r3, [r0, #44] 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4124 .loc 1 2174 5 is_stmt 1 discriminator 2 view .LVU1412 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4125 .loc 1 2174 23 is_stmt 0 discriminator 2 view .LVU1413 4126 0040 284B ldr r3, .L286+4 4127 0042 4363 str r3, [r0, #52] 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4128 .loc 1 2176 5 is_stmt 1 discriminator 2 view .LVU1414 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4129 .loc 1 2176 13 is_stmt 0 discriminator 2 view .LVU1415 4130 0044 836B ldr r3, [r0, #56] 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4131 .loc 1 2176 8 discriminator 2 view .LVU1416 4132 0046 23B3 cbz r3, .L278 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4133 .loc 1 2179 7 is_stmt 1 view .LVU1417 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4134 .loc 1 2179 38 is_stmt 0 view .LVU1418 4135 0048 274A ldr r2, .L286+8 4136 .LVL253: 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4137 .loc 1 2179 38 view .LVU1419 ARM GAS /tmp/cczJHHnF.s page 215 4138 004a 9A62 str r2, [r3, #40] 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4139 .loc 1 2182 7 is_stmt 1 view .LVU1420 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4140 .loc 1 2182 11 is_stmt 0 view .LVU1421 4141 004c 836B ldr r3, [r0, #56] 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4142 .loc 1 2182 39 view .LVU1422 4143 004e 274A ldr r2, .L286+12 4144 0050 1A63 str r2, [r3, #48] 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4145 .loc 1 2185 7 is_stmt 1 view .LVU1423 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4146 .loc 1 2185 11 is_stmt 0 view .LVU1424 4147 0052 826B ldr r2, [r0, #56] 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4148 .loc 1 2185 42 view .LVU1425 4149 0054 0023 movs r3, #0 4150 0056 D362 str r3, [r2, #44] 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4151 .loc 1 2186 7 is_stmt 1 view .LVU1426 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4152 .loc 1 2186 11 is_stmt 0 view .LVU1427 4153 0058 826B ldr r2, [r0, #56] 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4154 .loc 1 2186 39 view .LVU1428 4155 005a 5363 str r3, [r2, #52] 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4156 .loc 1 2189 7 is_stmt 1 view .LVU1429 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4157 .loc 1 2189 86 is_stmt 0 view .LVU1430 4158 005c 0268 ldr r2, [r0] 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4159 .loc 1 2189 23 view .LVU1431 4160 005e 038D ldrh r3, [r0, #40] 4161 0060 2832 adds r2, r2, #40 4162 0062 806B ldr r0, [r0, #56] 4163 .LVL254: 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4164 .loc 1 2189 23 view .LVU1432 4165 0064 FFF7FEFF bl HAL_DMA_Start_IT 4166 .LVL255: 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4167 .loc 1 2207 5 is_stmt 1 view .LVU1433 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4168 .loc 1 2207 8 is_stmt 0 view .LVU1434 4169 0068 0546 mov r5, r0 4170 006a 00B3 cbz r0, .L285 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4171 .loc 1 2227 7 is_stmt 1 view .LVU1435 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4172 .loc 1 2227 23 is_stmt 0 view .LVU1436 4173 006c 2823 movs r3, #40 4174 006e 84F84130 strb r3, [r4, #65] 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4175 .loc 1 2228 7 is_stmt 1 view .LVU1437 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 216 4176 .loc 1 2228 23 is_stmt 0 view .LVU1438 4177 0072 0022 movs r2, #0 4178 0074 84F84220 strb r2, [r4, #66] 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4179 .loc 1 2231 7 is_stmt 1 view .LVU1439 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4180 .loc 1 2231 11 is_stmt 0 view .LVU1440 4181 0078 636C ldr r3, [r4, #68] 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4182 .loc 1 2231 23 view .LVU1441 4183 007a 43F01003 orr r3, r3, #16 4184 007e 6364 str r3, [r4, #68] 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4185 .loc 1 2234 7 is_stmt 1 view .LVU1442 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4186 .loc 1 2234 7 view .LVU1443 4187 0080 84F84020 strb r2, [r4, #64] 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4188 .loc 1 2234 7 view .LVU1444 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4189 .loc 1 2236 7 view .LVU1445 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4190 .loc 1 2236 14 is_stmt 0 view .LVU1446 4191 0084 0125 movs r5, #1 4192 0086 26E0 b .L275 4193 .LVL256: 4194 .L276: 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4195 .loc 1 2159 7 is_stmt 1 view .LVU1447 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4196 .loc 1 2159 23 is_stmt 0 view .LVU1448 4197 0088 4FF40073 mov r3, #512 4198 008c 6364 str r3, [r4, #68] 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4199 .loc 1 2160 7 is_stmt 1 view .LVU1449 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4200 .loc 1 2160 15 is_stmt 0 view .LVU1450 4201 008e 0125 movs r5, #1 4202 0090 21E0 b .L275 4203 .L278: 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4204 .loc 1 2195 7 is_stmt 1 view .LVU1451 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4205 .loc 1 2195 23 is_stmt 0 view .LVU1452 4206 0092 2823 movs r3, #40 4207 0094 80F84130 strb r3, [r0, #65] 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4208 .loc 1 2196 7 is_stmt 1 view .LVU1453 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4209 .loc 1 2196 23 is_stmt 0 view .LVU1454 4210 0098 0022 movs r2, #0 4211 .LVL257: 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4212 .loc 1 2196 23 view .LVU1455 4213 009a 80F84220 strb r2, [r0, #66] 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4214 .loc 1 2199 7 is_stmt 1 view .LVU1456 ARM GAS /tmp/cczJHHnF.s page 217 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4215 .loc 1 2199 11 is_stmt 0 view .LVU1457 4216 009e 436C ldr r3, [r0, #68] 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4217 .loc 1 2199 23 view .LVU1458 4218 00a0 43F08003 orr r3, r3, #128 4219 00a4 4364 str r3, [r0, #68] 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4220 .loc 1 2202 7 is_stmt 1 view .LVU1459 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4221 .loc 1 2202 7 view .LVU1460 4222 00a6 80F84020 strb r2, [r0, #64] 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4223 .loc 1 2202 7 view .LVU1461 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4224 .loc 1 2204 7 view .LVU1462 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4225 .loc 1 2204 14 is_stmt 0 view .LVU1463 4226 00aa 0125 movs r5, #1 4227 00ac 13E0 b .L275 4228 .LVL258: 4229 .L285: 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4230 .loc 1 2210 7 is_stmt 1 view .LVU1464 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4231 .loc 1 2210 11 is_stmt 0 view .LVU1465 4232 00ae 2268 ldr r2, [r4] 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4233 .loc 1 2210 21 view .LVU1466 4234 00b0 5368 ldr r3, [r2, #4] 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4235 .loc 1 2210 27 view .LVU1467 4236 00b2 23F40043 bic r3, r3, #32768 4237 00b6 5360 str r3, [r2, #4] 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4238 .loc 1 2213 7 is_stmt 1 view .LVU1468 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4239 .loc 1 2213 7 view .LVU1469 4240 00b8 0023 movs r3, #0 4241 00ba 84F84030 strb r3, [r4, #64] 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4242 .loc 1 2213 7 view .LVU1470 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4243 .loc 1 2219 7 view .LVU1471 4244 00be 4FF40041 mov r1, #32768 4245 00c2 2046 mov r0, r4 4246 .LVL259: 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4247 .loc 1 2219 7 is_stmt 0 view .LVU1472 4248 00c4 FFF7FEFF bl I2C_Enable_IRQ 4249 .LVL260: 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4250 .loc 1 2222 7 is_stmt 1 view .LVU1473 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4251 .loc 1 2222 11 is_stmt 0 view .LVU1474 4252 00c8 2268 ldr r2, [r4] 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 218 4253 .loc 1 2222 21 view .LVU1475 4254 00ca 1368 ldr r3, [r2] 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4255 .loc 1 2222 27 view .LVU1476 4256 00cc 43F48043 orr r3, r3, #16384 4257 00d0 1360 str r3, [r2] 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4258 .loc 1 2239 5 is_stmt 1 view .LVU1477 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4259 .loc 1 2239 12 is_stmt 0 view .LVU1478 4260 00d2 00E0 b .L275 4261 .LVL261: 4262 .L281: 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4263 .loc 1 2243 12 view .LVU1479 4264 00d4 0225 movs r5, #2 4265 .LVL262: 4266 .L275: 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4267 .loc 1 2245 1 view .LVU1480 4268 00d6 2846 mov r0, r5 4269 00d8 38BD pop {r3, r4, r5, pc} 4270 .LVL263: 4271 .L282: 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4272 .loc 1 2163 5 view .LVU1481 4273 00da 0225 movs r5, #2 4274 00dc FBE7 b .L275 4275 .L287: 4276 00de 00BF .align 2 4277 .L286: 4278 00e0 0000FFFF .word -65536 4279 00e4 00000000 .word I2C_Slave_ISR_DMA 4280 00e8 00000000 .word I2C_DMASlaveTransmitCplt 4281 00ec 00000000 .word I2C_DMAError 4282 .cfi_endproc 4283 .LFE144: 4285 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4286 .align 1 4287 .global HAL_I2C_Slave_Receive_DMA 4288 .syntax unified 4289 .thumb 4290 .thumb_func 4292 HAL_I2C_Slave_Receive_DMA: 4293 .LVL264: 4294 .LFB145: 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4295 .loc 1 2256 1 is_stmt 1 view -0 4296 .cfi_startproc 4297 @ args = 0, pretend = 0, frame = 0 4298 @ frame_needed = 0, uses_anonymous_args = 0 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4299 .loc 1 2256 1 is_stmt 0 view .LVU1483 4300 0000 38B5 push {r3, r4, r5, lr} 4301 .cfi_def_cfa_offset 16 4302 .cfi_offset 3, -16 4303 .cfi_offset 4, -12 ARM GAS /tmp/cczJHHnF.s page 219 4304 .cfi_offset 5, -8 4305 .cfi_offset 14, -4 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4306 .loc 1 2257 3 is_stmt 1 view .LVU1484 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4307 .loc 1 2259 3 view .LVU1485 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4308 .loc 1 2259 11 is_stmt 0 view .LVU1486 4309 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4310 0006 DBB2 uxtb r3, r3 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4311 .loc 1 2259 6 view .LVU1487 4312 0008 202B cmp r3, #32 4313 000a 65D1 bne .L295 4314 000c 0446 mov r4, r0 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4315 .loc 1 2261 5 is_stmt 1 view .LVU1488 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4316 .loc 1 2261 8 is_stmt 0 view .LVU1489 4317 000e 0029 cmp r1, #0 4318 0010 3CD0 beq .L290 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4319 .loc 1 2261 25 discriminator 1 view .LVU1490 4320 0012 002A cmp r2, #0 4321 0014 3AD0 beq .L290 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4322 .loc 1 2267 5 is_stmt 1 view .LVU1491 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4323 .loc 1 2267 5 view .LVU1492 4324 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4325 001a 012B cmp r3, #1 4326 001c 5FD0 beq .L296 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4327 .loc 1 2267 5 discriminator 2 view .LVU1493 4328 001e 0123 movs r3, #1 4329 0020 80F84030 strb r3, [r0, #64] 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4330 .loc 1 2267 5 discriminator 2 view .LVU1494 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4331 .loc 1 2269 5 discriminator 2 view .LVU1495 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4332 .loc 1 2269 23 is_stmt 0 discriminator 2 view .LVU1496 4333 0024 2223 movs r3, #34 4334 0026 80F84130 strb r3, [r0, #65] 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4335 .loc 1 2270 5 is_stmt 1 discriminator 2 view .LVU1497 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4336 .loc 1 2270 23 is_stmt 0 discriminator 2 view .LVU1498 4337 002a 2023 movs r3, #32 4338 002c 80F84230 strb r3, [r0, #66] 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4339 .loc 1 2271 5 is_stmt 1 discriminator 2 view .LVU1499 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4340 .loc 1 2271 23 is_stmt 0 discriminator 2 view .LVU1500 4341 0030 0023 movs r3, #0 4342 0032 4364 str r3, [r0, #68] 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/cczJHHnF.s page 220 4343 .loc 1 2274 5 is_stmt 1 discriminator 2 view .LVU1501 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4344 .loc 1 2274 23 is_stmt 0 discriminator 2 view .LVU1502 4345 0034 4162 str r1, [r0, #36] 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4346 .loc 1 2275 5 is_stmt 1 discriminator 2 view .LVU1503 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4347 .loc 1 2275 23 is_stmt 0 discriminator 2 view .LVU1504 4348 0036 4285 strh r2, [r0, #42] @ movhi 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4349 .loc 1 2276 5 is_stmt 1 discriminator 2 view .LVU1505 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4350 .loc 1 2276 29 is_stmt 0 discriminator 2 view .LVU1506 4351 0038 438D ldrh r3, [r0, #42] 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4352 .loc 1 2276 23 discriminator 2 view .LVU1507 4353 003a 0385 strh r3, [r0, #40] @ movhi 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4354 .loc 1 2277 5 is_stmt 1 discriminator 2 view .LVU1508 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4355 .loc 1 2277 23 is_stmt 0 discriminator 2 view .LVU1509 4356 003c 294B ldr r3, .L300 4357 003e C362 str r3, [r0, #44] 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4358 .loc 1 2278 5 is_stmt 1 discriminator 2 view .LVU1510 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4359 .loc 1 2278 23 is_stmt 0 discriminator 2 view .LVU1511 4360 0040 294B ldr r3, .L300+4 4361 0042 4363 str r3, [r0, #52] 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4362 .loc 1 2280 5 is_stmt 1 discriminator 2 view .LVU1512 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4363 .loc 1 2280 13 is_stmt 0 discriminator 2 view .LVU1513 4364 0044 C36B ldr r3, [r0, #60] 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4365 .loc 1 2280 8 discriminator 2 view .LVU1514 4366 0046 33B3 cbz r3, .L292 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4367 .loc 1 2283 7 is_stmt 1 view .LVU1515 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4368 .loc 1 2283 38 is_stmt 0 view .LVU1516 4369 0048 284A ldr r2, .L300+8 4370 .LVL265: 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4371 .loc 1 2283 38 view .LVU1517 4372 004a 9A62 str r2, [r3, #40] 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4373 .loc 1 2286 7 is_stmt 1 view .LVU1518 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4374 .loc 1 2286 11 is_stmt 0 view .LVU1519 4375 004c C36B ldr r3, [r0, #60] 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4376 .loc 1 2286 39 view .LVU1520 4377 004e 284A ldr r2, .L300+12 4378 0050 1A63 str r2, [r3, #48] 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4379 .loc 1 2289 7 is_stmt 1 view .LVU1521 ARM GAS /tmp/cczJHHnF.s page 221 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4380 .loc 1 2289 11 is_stmt 0 view .LVU1522 4381 0052 C26B ldr r2, [r0, #60] 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4382 .loc 1 2289 42 view .LVU1523 4383 0054 0023 movs r3, #0 4384 0056 D362 str r3, [r2, #44] 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4385 .loc 1 2290 7 is_stmt 1 view .LVU1524 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4386 .loc 1 2290 11 is_stmt 0 view .LVU1525 4387 0058 C26B ldr r2, [r0, #60] 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4388 .loc 1 2290 39 view .LVU1526 4389 005a 5363 str r3, [r2, #52] 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4390 .loc 1 2293 7 is_stmt 1 view .LVU1527 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4391 .loc 1 2293 69 is_stmt 0 view .LVU1528 4392 005c 0068 ldr r0, [r0] 4393 .LVL266: 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4394 .loc 1 2293 23 view .LVU1529 4395 005e 238D ldrh r3, [r4, #40] 4396 0060 0A46 mov r2, r1 4397 0062 00F12401 add r1, r0, #36 4398 .LVL267: 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4399 .loc 1 2293 23 view .LVU1530 4400 0066 E06B ldr r0, [r4, #60] 4401 0068 FFF7FEFF bl HAL_DMA_Start_IT 4402 .LVL268: 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4403 .loc 1 2311 5 is_stmt 1 view .LVU1531 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4404 .loc 1 2311 8 is_stmt 0 view .LVU1532 4405 006c 0546 mov r5, r0 4406 006e 00B3 cbz r0, .L299 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4407 .loc 1 2331 7 is_stmt 1 view .LVU1533 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4408 .loc 1 2331 23 is_stmt 0 view .LVU1534 4409 0070 2823 movs r3, #40 4410 0072 84F84130 strb r3, [r4, #65] 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4411 .loc 1 2332 7 is_stmt 1 view .LVU1535 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4412 .loc 1 2332 23 is_stmt 0 view .LVU1536 4413 0076 0022 movs r2, #0 4414 0078 84F84220 strb r2, [r4, #66] 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4415 .loc 1 2335 7 is_stmt 1 view .LVU1537 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4416 .loc 1 2335 11 is_stmt 0 view .LVU1538 4417 007c 636C ldr r3, [r4, #68] 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4418 .loc 1 2335 23 view .LVU1539 ARM GAS /tmp/cczJHHnF.s page 222 4419 007e 43F01003 orr r3, r3, #16 4420 0082 6364 str r3, [r4, #68] 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4421 .loc 1 2338 7 is_stmt 1 view .LVU1540 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4422 .loc 1 2338 7 view .LVU1541 4423 0084 84F84020 strb r2, [r4, #64] 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4424 .loc 1 2338 7 view .LVU1542 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4425 .loc 1 2340 7 view .LVU1543 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4426 .loc 1 2340 14 is_stmt 0 view .LVU1544 4427 0088 0125 movs r5, #1 4428 008a 26E0 b .L289 4429 .LVL269: 4430 .L290: 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4431 .loc 1 2263 7 is_stmt 1 view .LVU1545 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4432 .loc 1 2263 23 is_stmt 0 view .LVU1546 4433 008c 4FF40073 mov r3, #512 4434 0090 6364 str r3, [r4, #68] 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4435 .loc 1 2264 7 is_stmt 1 view .LVU1547 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4436 .loc 1 2264 15 is_stmt 0 view .LVU1548 4437 0092 0125 movs r5, #1 4438 0094 21E0 b .L289 4439 .L292: 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4440 .loc 1 2299 7 is_stmt 1 view .LVU1549 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4441 .loc 1 2299 23 is_stmt 0 view .LVU1550 4442 0096 2823 movs r3, #40 4443 0098 80F84130 strb r3, [r0, #65] 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4444 .loc 1 2300 7 is_stmt 1 view .LVU1551 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4445 .loc 1 2300 23 is_stmt 0 view .LVU1552 4446 009c 0022 movs r2, #0 4447 .LVL270: 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4448 .loc 1 2300 23 view .LVU1553 4449 009e 80F84220 strb r2, [r0, #66] 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4450 .loc 1 2303 7 is_stmt 1 view .LVU1554 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4451 .loc 1 2303 11 is_stmt 0 view .LVU1555 4452 00a2 436C ldr r3, [r0, #68] 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4453 .loc 1 2303 23 view .LVU1556 4454 00a4 43F08003 orr r3, r3, #128 4455 00a8 4364 str r3, [r0, #68] 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4456 .loc 1 2306 7 is_stmt 1 view .LVU1557 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 223 4457 .loc 1 2306 7 view .LVU1558 4458 00aa 80F84020 strb r2, [r0, #64] 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4459 .loc 1 2306 7 view .LVU1559 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4460 .loc 1 2308 7 view .LVU1560 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4461 .loc 1 2308 14 is_stmt 0 view .LVU1561 4462 00ae 0125 movs r5, #1 4463 00b0 13E0 b .L289 4464 .LVL271: 4465 .L299: 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4466 .loc 1 2314 7 is_stmt 1 view .LVU1562 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4467 .loc 1 2314 11 is_stmt 0 view .LVU1563 4468 00b2 2268 ldr r2, [r4] 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4469 .loc 1 2314 21 view .LVU1564 4470 00b4 5368 ldr r3, [r2, #4] 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4471 .loc 1 2314 27 view .LVU1565 4472 00b6 23F40043 bic r3, r3, #32768 4473 00ba 5360 str r3, [r2, #4] 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4474 .loc 1 2317 7 is_stmt 1 view .LVU1566 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4475 .loc 1 2317 7 view .LVU1567 4476 00bc 0023 movs r3, #0 4477 00be 84F84030 strb r3, [r4, #64] 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4478 .loc 1 2317 7 view .LVU1568 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4479 .loc 1 2323 7 view .LVU1569 4480 00c2 4FF40041 mov r1, #32768 4481 00c6 2046 mov r0, r4 4482 .LVL272: 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4483 .loc 1 2323 7 is_stmt 0 view .LVU1570 4484 00c8 FFF7FEFF bl I2C_Enable_IRQ 4485 .LVL273: 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4486 .loc 1 2326 7 is_stmt 1 view .LVU1571 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4487 .loc 1 2326 11 is_stmt 0 view .LVU1572 4488 00cc 2268 ldr r2, [r4] 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4489 .loc 1 2326 21 view .LVU1573 4490 00ce 1368 ldr r3, [r2] 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4491 .loc 1 2326 27 view .LVU1574 4492 00d0 43F40043 orr r3, r3, #32768 4493 00d4 1360 str r3, [r2] 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4494 .loc 1 2343 5 is_stmt 1 view .LVU1575 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4495 .loc 1 2343 12 is_stmt 0 view .LVU1576 ARM GAS /tmp/cczJHHnF.s page 224 4496 00d6 00E0 b .L289 4497 .LVL274: 4498 .L295: 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4499 .loc 1 2347 12 view .LVU1577 4500 00d8 0225 movs r5, #2 4501 .LVL275: 4502 .L289: 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4503 .loc 1 2349 1 view .LVU1578 4504 00da 2846 mov r0, r5 4505 00dc 38BD pop {r3, r4, r5, pc} 4506 .LVL276: 4507 .L296: 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4508 .loc 1 2267 5 view .LVU1579 4509 00de 0225 movs r5, #2 4510 00e0 FBE7 b .L289 4511 .L301: 4512 00e2 00BF .align 2 4513 .L300: 4514 00e4 0000FFFF .word -65536 4515 00e8 00000000 .word I2C_Slave_ISR_DMA 4516 00ec 00000000 .word I2C_DMASlaveReceiveCplt 4517 00f0 00000000 .word I2C_DMAError 4518 .cfi_endproc 4519 .LFE145: 4521 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 4522 .align 1 4523 .global HAL_I2C_Mem_Write 4524 .syntax unified 4525 .thumb 4526 .thumb_func 4528 HAL_I2C_Mem_Write: 4529 .LVL277: 4530 .LFB146: 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 4531 .loc 1 2365 1 is_stmt 1 view -0 4532 .cfi_startproc 4533 @ args = 12, pretend = 0, frame = 0 4534 @ frame_needed = 0, uses_anonymous_args = 0 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 4535 .loc 1 2365 1 is_stmt 0 view .LVU1581 4536 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 4537 .cfi_def_cfa_offset 36 4538 .cfi_offset 4, -36 4539 .cfi_offset 5, -32 4540 .cfi_offset 6, -28 4541 .cfi_offset 7, -24 4542 .cfi_offset 8, -20 4543 .cfi_offset 9, -16 4544 .cfi_offset 10, -12 4545 .cfi_offset 11, -8 4546 .cfi_offset 14, -4 4547 0004 83B0 sub sp, sp, #12 4548 .cfi_def_cfa_offset 48 4549 0006 0E46 mov r6, r1 ARM GAS /tmp/cczJHHnF.s page 225 4550 0008 BDF834A0 ldrh r10, [sp, #52] 4551 000c 0E9D ldr r5, [sp, #56] 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4552 .loc 1 2366 3 is_stmt 1 view .LVU1582 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4553 .loc 1 2369 3 view .LVU1583 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4554 .loc 1 2371 3 view .LVU1584 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4555 .loc 1 2371 11 is_stmt 0 view .LVU1585 4556 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 4557 .LVL278: 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4558 .loc 1 2371 11 view .LVU1586 4559 0012 C9B2 uxtb r1, r1 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4560 .loc 1 2371 6 view .LVU1587 4561 0014 2029 cmp r1, #32 4562 0016 40F0BB80 bne .L312 4563 001a 0446 mov r4, r0 4564 001c 9046 mov r8, r2 4565 001e 9946 mov r9, r3 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4566 .loc 1 2373 5 is_stmt 1 view .LVU1588 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4567 .loc 1 2373 8 is_stmt 0 view .LVU1589 4568 0020 0C9B ldr r3, [sp, #48] 4569 .LVL279: 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4570 .loc 1 2373 8 view .LVU1590 4571 0022 CBB1 cbz r3, .L304 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4572 .loc 1 2373 25 discriminator 1 view .LVU1591 4573 0024 BAF1000F cmp r10, #0 4574 0028 16D0 beq .L304 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4575 .loc 1 2380 5 is_stmt 1 view .LVU1592 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4576 .loc 1 2380 5 view .LVU1593 4577 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4578 002e 012B cmp r3, #1 4579 0030 00F0B280 beq .L313 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4580 .loc 1 2380 5 discriminator 2 view .LVU1594 4581 0034 4FF0010B mov fp, #1 4582 0038 80F840B0 strb fp, [r0, #64] 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4583 .loc 1 2380 5 discriminator 2 view .LVU1595 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4584 .loc 1 2383 5 discriminator 2 view .LVU1596 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4585 .loc 1 2383 17 is_stmt 0 discriminator 2 view .LVU1597 4586 003c FFF7FEFF bl HAL_GetTick 4587 .LVL280: 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4588 .loc 1 2383 17 discriminator 2 view .LVU1598 4589 0040 0746 mov r7, r0 ARM GAS /tmp/cczJHHnF.s page 226 4590 .LVL281: 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4591 .loc 1 2385 5 is_stmt 1 discriminator 2 view .LVU1599 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4592 .loc 1 2385 9 is_stmt 0 discriminator 2 view .LVU1600 4593 0042 0090 str r0, [sp] 4594 0044 1923 movs r3, #25 4595 0046 5A46 mov r2, fp 4596 0048 4FF40041 mov r1, #32768 4597 004c 2046 mov r0, r4 4598 .LVL282: 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4599 .loc 1 2385 9 discriminator 2 view .LVU1601 4600 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4601 .LVL283: 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4602 .loc 1 2385 8 discriminator 2 view .LVU1602 4603 0052 30B1 cbz r0, .L319 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4604 .loc 1 2387 14 view .LVU1603 4605 0054 0120 movs r0, #1 4606 0056 9CE0 b .L303 4607 .LVL284: 4608 .L304: 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4609 .loc 1 2375 7 is_stmt 1 view .LVU1604 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4610 .loc 1 2375 23 is_stmt 0 view .LVU1605 4611 0058 4FF40073 mov r3, #512 4612 005c 6364 str r3, [r4, #68] 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4613 .loc 1 2376 7 is_stmt 1 view .LVU1606 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4614 .loc 1 2376 15 is_stmt 0 view .LVU1607 4615 005e 0120 movs r0, #1 4616 .LVL285: 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4617 .loc 1 2376 15 view .LVU1608 4618 0060 97E0 b .L303 4619 .LVL286: 4620 .L319: 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4621 .loc 1 2390 5 is_stmt 1 view .LVU1609 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4622 .loc 1 2390 21 is_stmt 0 view .LVU1610 4623 0062 2123 movs r3, #33 4624 0064 84F84130 strb r3, [r4, #65] 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4625 .loc 1 2391 5 is_stmt 1 view .LVU1611 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4626 .loc 1 2391 21 is_stmt 0 view .LVU1612 4627 0068 4023 movs r3, #64 4628 006a 84F84230 strb r3, [r4, #66] 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4629 .loc 1 2392 5 is_stmt 1 view .LVU1613 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4630 .loc 1 2392 21 is_stmt 0 view .LVU1614 ARM GAS /tmp/cczJHHnF.s page 227 4631 006e 0023 movs r3, #0 4632 0070 6364 str r3, [r4, #68] 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4633 .loc 1 2395 5 is_stmt 1 view .LVU1615 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4634 .loc 1 2395 21 is_stmt 0 view .LVU1616 4635 0072 0C9A ldr r2, [sp, #48] 4636 0074 6262 str r2, [r4, #36] 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 4637 .loc 1 2396 5 is_stmt 1 view .LVU1617 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 4638 .loc 1 2396 21 is_stmt 0 view .LVU1618 4639 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4640 .loc 1 2397 5 is_stmt 1 view .LVU1619 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4641 .loc 1 2397 21 is_stmt 0 view .LVU1620 4642 007a 6363 str r3, [r4, #52] 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4643 .loc 1 2400 5 is_stmt 1 view .LVU1621 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4644 .loc 1 2400 9 is_stmt 0 view .LVU1622 4645 007c 0197 str r7, [sp, #4] 4646 007e 0095 str r5, [sp] 4647 0080 4B46 mov r3, r9 4648 0082 4246 mov r2, r8 4649 0084 3146 mov r1, r6 4650 0086 2046 mov r0, r4 4651 0088 FFF7FEFF bl I2C_RequestMemoryWrite 4652 .LVL287: 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4653 .loc 1 2400 8 view .LVU1623 4654 008c 70B9 cbnz r0, .L320 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4655 .loc 1 2408 5 is_stmt 1 view .LVU1624 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4656 .loc 1 2408 13 is_stmt 0 view .LVU1625 4657 008e 638D ldrh r3, [r4, #42] 4658 0090 9BB2 uxth r3, r3 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4659 .loc 1 2408 8 view .LVU1626 4660 0092 FF2B cmp r3, #255 4661 0094 0FD9 bls .L307 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 4662 .loc 1 2410 7 is_stmt 1 view .LVU1627 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 4663 .loc 1 2410 22 is_stmt 0 view .LVU1628 4664 0096 FF22 movs r2, #255 4665 0098 2285 strh r2, [r4, #40] @ movhi 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4666 .loc 1 2411 7 is_stmt 1 view .LVU1629 4667 009a 0023 movs r3, #0 4668 009c 0093 str r3, [sp] 4669 009e 4FF08073 mov r3, #16777216 4670 00a2 3146 mov r1, r6 4671 00a4 2046 mov r0, r4 4672 00a6 FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/cczJHHnF.s page 228 4673 .LVL288: 4674 00aa 21E0 b .L311 4675 .L320: 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4676 .loc 1 2403 7 view .LVU1630 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4677 .loc 1 2403 7 view .LVU1631 4678 00ac 0023 movs r3, #0 4679 00ae 84F84030 strb r3, [r4, #64] 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4680 .loc 1 2403 7 view .LVU1632 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4681 .loc 1 2404 7 view .LVU1633 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4682 .loc 1 2404 14 is_stmt 0 view .LVU1634 4683 00b2 5846 mov r0, fp 4684 00b4 6DE0 b .L303 4685 .L307: 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4686 .loc 1 2415 7 is_stmt 1 view .LVU1635 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4687 .loc 1 2415 28 is_stmt 0 view .LVU1636 4688 00b6 628D ldrh r2, [r4, #42] 4689 00b8 92B2 uxth r2, r2 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 4690 .loc 1 2415 22 view .LVU1637 4691 00ba 2285 strh r2, [r4, #40] @ movhi 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4692 .loc 1 2416 7 is_stmt 1 view .LVU1638 4693 00bc 0023 movs r3, #0 4694 00be 0093 str r3, [sp] 4695 00c0 4FF00073 mov r3, #33554432 4696 00c4 D2B2 uxtb r2, r2 4697 00c6 3146 mov r1, r6 4698 00c8 2046 mov r0, r4 4699 00ca FFF7FEFF bl I2C_TransferConfig 4700 .LVL289: 4701 00ce 0FE0 b .L311 4702 .L310: 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 4703 .loc 1 2452 11 view .LVU1639 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 4704 .loc 1 2452 32 is_stmt 0 view .LVU1640 4705 00d0 628D ldrh r2, [r4, #42] 4706 00d2 92B2 uxth r2, r2 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 4707 .loc 1 2452 26 view .LVU1641 4708 00d4 2285 strh r2, [r4, #40] @ movhi 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 4709 .loc 1 2453 11 is_stmt 1 view .LVU1642 4710 00d6 0023 movs r3, #0 4711 00d8 0093 str r3, [sp] 4712 00da 4FF00073 mov r3, #33554432 4713 00de D2B2 uxtb r2, r2 4714 00e0 3146 mov r1, r6 4715 00e2 2046 mov r0, r4 4716 00e4 FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/cczJHHnF.s page 229 4717 .LVL290: 4718 .L309: 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4719 .loc 1 2458 30 view .LVU1643 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4720 .loc 1 2458 18 is_stmt 0 view .LVU1644 4721 00e8 638D ldrh r3, [r4, #42] 4722 00ea 9BB2 uxth r3, r3 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4723 .loc 1 2458 30 view .LVU1645 4724 00ec 002B cmp r3, #0 4725 00ee 33D0 beq .L321 4726 .L311: 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4727 .loc 1 2419 5 is_stmt 1 view .LVU1646 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4728 .loc 1 2422 7 view .LVU1647 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4729 .loc 1 2422 11 is_stmt 0 view .LVU1648 4730 00f0 3A46 mov r2, r7 4731 00f2 2946 mov r1, r5 4732 00f4 2046 mov r0, r4 4733 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 4734 .LVL291: 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4735 .loc 1 2422 10 view .LVU1649 4736 00fa 0028 cmp r0, #0 4737 00fc 4ED1 bne .L315 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4738 .loc 1 2428 7 is_stmt 1 view .LVU1650 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4739 .loc 1 2428 35 is_stmt 0 view .LVU1651 4740 00fe 626A ldr r2, [r4, #36] 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4741 .loc 1 2428 11 view .LVU1652 4742 0100 2368 ldr r3, [r4] 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4743 .loc 1 2428 30 view .LVU1653 4744 0102 1278 ldrb r2, [r2] @ zero_extendqisi2 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4745 .loc 1 2428 28 view .LVU1654 4746 0104 9A62 str r2, [r3, #40] 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4747 .loc 1 2431 7 is_stmt 1 view .LVU1655 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4748 .loc 1 2431 11 is_stmt 0 view .LVU1656 4749 0106 636A ldr r3, [r4, #36] 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4750 .loc 1 2431 21 view .LVU1657 4751 0108 0133 adds r3, r3, #1 4752 010a 6362 str r3, [r4, #36] 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4753 .loc 1 2433 7 is_stmt 1 view .LVU1658 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4754 .loc 1 2433 11 is_stmt 0 view .LVU1659 4755 010c 638D ldrh r3, [r4, #42] 4756 010e 9BB2 uxth r3, r3 ARM GAS /tmp/cczJHHnF.s page 230 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4757 .loc 1 2433 22 view .LVU1660 4758 0110 013B subs r3, r3, #1 4759 0112 9BB2 uxth r3, r3 4760 0114 6385 strh r3, [r4, #42] @ movhi 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4761 .loc 1 2434 7 is_stmt 1 view .LVU1661 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4762 .loc 1 2434 11 is_stmt 0 view .LVU1662 4763 0116 238D ldrh r3, [r4, #40] 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4764 .loc 1 2434 21 view .LVU1663 4765 0118 013B subs r3, r3, #1 4766 011a 9BB2 uxth r3, r3 4767 011c 2385 strh r3, [r4, #40] @ movhi 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4768 .loc 1 2436 7 is_stmt 1 view .LVU1664 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4769 .loc 1 2436 16 is_stmt 0 view .LVU1665 4770 011e 628D ldrh r2, [r4, #42] 4771 0120 92B2 uxth r2, r2 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4772 .loc 1 2436 10 view .LVU1666 4773 0122 002A cmp r2, #0 4774 0124 E0D0 beq .L309 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4775 .loc 1 2436 35 discriminator 1 view .LVU1667 4776 0126 002B cmp r3, #0 4777 0128 DED1 bne .L309 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4778 .loc 1 2439 9 is_stmt 1 view .LVU1668 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4779 .loc 1 2439 13 is_stmt 0 view .LVU1669 4780 012a 0097 str r7, [sp] 4781 012c 2B46 mov r3, r5 4782 012e 0022 movs r2, #0 4783 0130 8021 movs r1, #128 4784 0132 2046 mov r0, r4 4785 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4786 .LVL292: 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4787 .loc 1 2439 12 view .LVU1670 4788 0138 90BB cbnz r0, .L316 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4789 .loc 1 2444 9 is_stmt 1 view .LVU1671 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4790 .loc 1 2444 17 is_stmt 0 view .LVU1672 4791 013a 638D ldrh r3, [r4, #42] 4792 013c 9BB2 uxth r3, r3 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4793 .loc 1 2444 12 view .LVU1673 4794 013e FF2B cmp r3, #255 4795 0140 C6D9 bls .L310 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 4796 .loc 1 2446 11 is_stmt 1 view .LVU1674 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 4797 .loc 1 2446 26 is_stmt 0 view .LVU1675 ARM GAS /tmp/cczJHHnF.s page 231 4798 0142 FF22 movs r2, #255 4799 0144 2285 strh r2, [r4, #40] @ movhi 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 4800 .loc 1 2447 11 is_stmt 1 view .LVU1676 4801 0146 0023 movs r3, #0 4802 0148 0093 str r3, [sp] 4803 014a 4FF08073 mov r3, #16777216 4804 014e 3146 mov r1, r6 4805 0150 2046 mov r0, r4 4806 0152 FFF7FEFF bl I2C_TransferConfig 4807 .LVL293: 4808 0156 C7E7 b .L309 4809 .L321: 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4810 .loc 1 2462 5 view .LVU1677 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4811 .loc 1 2462 9 is_stmt 0 view .LVU1678 4812 0158 3A46 mov r2, r7 4813 015a 2946 mov r1, r5 4814 015c 2046 mov r0, r4 4815 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 4816 .LVL294: 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4817 .loc 1 2462 8 view .LVU1679 4818 0162 F8B9 cbnz r0, .L317 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4819 .loc 1 2468 5 is_stmt 1 view .LVU1680 4820 0164 2368 ldr r3, [r4] 4821 0166 2022 movs r2, #32 4822 0168 DA61 str r2, [r3, #28] 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4823 .loc 1 2471 5 view .LVU1681 4824 016a 2168 ldr r1, [r4] 4825 016c 4B68 ldr r3, [r1, #4] 4826 016e 23F0FF73 bic r3, r3, #33423360 4827 0172 23F48B33 bic r3, r3, #71168 4828 0176 23F4FF73 bic r3, r3, #510 4829 017a 23F00103 bic r3, r3, #1 4830 017e 4B60 str r3, [r1, #4] 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4831 .loc 1 2473 5 view .LVU1682 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4832 .loc 1 2473 17 is_stmt 0 view .LVU1683 4833 0180 84F84120 strb r2, [r4, #65] 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4834 .loc 1 2474 5 is_stmt 1 view .LVU1684 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4835 .loc 1 2474 17 is_stmt 0 view .LVU1685 4836 0184 0023 movs r3, #0 4837 0186 84F84230 strb r3, [r4, #66] 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4838 .loc 1 2477 5 is_stmt 1 view .LVU1686 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4839 .loc 1 2477 5 view .LVU1687 4840 018a 84F84030 strb r3, [r4, #64] 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4841 .loc 1 2477 5 view .LVU1688 ARM GAS /tmp/cczJHHnF.s page 232 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4842 .loc 1 2479 5 view .LVU1689 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4843 .loc 1 2479 12 is_stmt 0 view .LVU1690 4844 018e 00E0 b .L303 4845 .LVL295: 4846 .L312: 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4847 .loc 1 2483 12 view .LVU1691 4848 0190 0220 movs r0, #2 4849 .LVL296: 4850 .L303: 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4851 .loc 1 2485 1 view .LVU1692 4852 0192 03B0 add sp, sp, #12 4853 .cfi_remember_state 4854 .cfi_def_cfa_offset 36 4855 @ sp needed 4856 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 4857 .LVL297: 4858 .L313: 4859 .cfi_restore_state 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4860 .loc 1 2380 5 view .LVU1693 4861 0198 0220 movs r0, #2 4862 .LVL298: 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4863 .loc 1 2380 5 view .LVU1694 4864 019a FAE7 b .L303 4865 .LVL299: 4866 .L315: 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4867 .loc 1 2424 16 view .LVU1695 4868 019c 0120 movs r0, #1 4869 019e F8E7 b .L303 4870 .L316: 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4871 .loc 1 2441 18 view .LVU1696 4872 01a0 0120 movs r0, #1 4873 01a2 F6E7 b .L303 4874 .L317: 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4875 .loc 1 2464 14 view .LVU1697 4876 01a4 0120 movs r0, #1 4877 01a6 F4E7 b .L303 4878 .cfi_endproc 4879 .LFE146: 4881 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 4882 .align 1 4883 .global HAL_I2C_Mem_Read 4884 .syntax unified 4885 .thumb 4886 .thumb_func 4888 HAL_I2C_Mem_Read: 4889 .LVL300: 4890 .LFB147: 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; ARM GAS /tmp/cczJHHnF.s page 233 4891 .loc 1 2502 1 is_stmt 1 view -0 4892 .cfi_startproc 4893 @ args = 12, pretend = 0, frame = 0 4894 @ frame_needed = 0, uses_anonymous_args = 0 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 4895 .loc 1 2502 1 is_stmt 0 view .LVU1699 4896 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 4897 .cfi_def_cfa_offset 36 4898 .cfi_offset 4, -36 4899 .cfi_offset 5, -32 4900 .cfi_offset 6, -28 4901 .cfi_offset 7, -24 4902 .cfi_offset 8, -20 4903 .cfi_offset 9, -16 4904 .cfi_offset 10, -12 4905 .cfi_offset 11, -8 4906 .cfi_offset 14, -4 4907 0004 83B0 sub sp, sp, #12 4908 .cfi_def_cfa_offset 48 4909 0006 0E46 mov r6, r1 4910 0008 BDF834A0 ldrh r10, [sp, #52] 4911 000c 0E9D ldr r5, [sp, #56] 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4912 .loc 1 2503 3 is_stmt 1 view .LVU1700 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4913 .loc 1 2506 3 view .LVU1701 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4914 .loc 1 2508 3 view .LVU1702 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4915 .loc 1 2508 11 is_stmt 0 view .LVU1703 4916 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 4917 .LVL301: 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4918 .loc 1 2508 11 view .LVU1704 4919 0012 C9B2 uxtb r1, r1 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4920 .loc 1 2508 6 view .LVU1705 4921 0014 2029 cmp r1, #32 4922 0016 40F0BC80 bne .L332 4923 001a 0446 mov r4, r0 4924 001c 9046 mov r8, r2 4925 001e 9946 mov r9, r3 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4926 .loc 1 2510 5 is_stmt 1 view .LVU1706 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4927 .loc 1 2510 8 is_stmt 0 view .LVU1707 4928 0020 0C9B ldr r3, [sp, #48] 4929 .LVL302: 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4930 .loc 1 2510 8 view .LVU1708 4931 0022 CBB1 cbz r3, .L324 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4932 .loc 1 2510 25 discriminator 1 view .LVU1709 4933 0024 BAF1000F cmp r10, #0 4934 0028 16D0 beq .L324 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4935 .loc 1 2517 5 is_stmt 1 view .LVU1710 ARM GAS /tmp/cczJHHnF.s page 234 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4936 .loc 1 2517 5 view .LVU1711 4937 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4938 002e 012B cmp r3, #1 4939 0030 00F0B380 beq .L333 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4940 .loc 1 2517 5 discriminator 2 view .LVU1712 4941 0034 4FF0010B mov fp, #1 4942 0038 80F840B0 strb fp, [r0, #64] 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4943 .loc 1 2517 5 discriminator 2 view .LVU1713 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4944 .loc 1 2520 5 discriminator 2 view .LVU1714 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4945 .loc 1 2520 17 is_stmt 0 discriminator 2 view .LVU1715 4946 003c FFF7FEFF bl HAL_GetTick 4947 .LVL303: 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4948 .loc 1 2520 17 discriminator 2 view .LVU1716 4949 0040 0746 mov r7, r0 4950 .LVL304: 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4951 .loc 1 2522 5 is_stmt 1 discriminator 2 view .LVU1717 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4952 .loc 1 2522 9 is_stmt 0 discriminator 2 view .LVU1718 4953 0042 0090 str r0, [sp] 4954 0044 1923 movs r3, #25 4955 0046 5A46 mov r2, fp 4956 0048 4FF40041 mov r1, #32768 4957 004c 2046 mov r0, r4 4958 .LVL305: 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4959 .loc 1 2522 9 discriminator 2 view .LVU1719 4960 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4961 .LVL306: 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4962 .loc 1 2522 8 discriminator 2 view .LVU1720 4963 0052 30B1 cbz r0, .L339 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4964 .loc 1 2524 14 view .LVU1721 4965 0054 0120 movs r0, #1 4966 0056 9DE0 b .L323 4967 .LVL307: 4968 .L324: 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4969 .loc 1 2512 7 is_stmt 1 view .LVU1722 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4970 .loc 1 2512 23 is_stmt 0 view .LVU1723 4971 0058 4FF40073 mov r3, #512 4972 005c 6364 str r3, [r4, #68] 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4973 .loc 1 2513 7 is_stmt 1 view .LVU1724 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4974 .loc 1 2513 15 is_stmt 0 view .LVU1725 4975 005e 0120 movs r0, #1 4976 .LVL308: 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 235 4977 .loc 1 2513 15 view .LVU1726 4978 0060 98E0 b .L323 4979 .LVL309: 4980 .L339: 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4981 .loc 1 2527 5 is_stmt 1 view .LVU1727 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4982 .loc 1 2527 21 is_stmt 0 view .LVU1728 4983 0062 2223 movs r3, #34 4984 0064 84F84130 strb r3, [r4, #65] 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4985 .loc 1 2528 5 is_stmt 1 view .LVU1729 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4986 .loc 1 2528 21 is_stmt 0 view .LVU1730 4987 0068 4023 movs r3, #64 4988 006a 84F84230 strb r3, [r4, #66] 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4989 .loc 1 2529 5 is_stmt 1 view .LVU1731 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4990 .loc 1 2529 21 is_stmt 0 view .LVU1732 4991 006e 0023 movs r3, #0 4992 0070 6364 str r3, [r4, #68] 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4993 .loc 1 2532 5 is_stmt 1 view .LVU1733 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4994 .loc 1 2532 21 is_stmt 0 view .LVU1734 4995 0072 0C9A ldr r2, [sp, #48] 4996 0074 6262 str r2, [r4, #36] 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 4997 .loc 1 2533 5 is_stmt 1 view .LVU1735 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 4998 .loc 1 2533 21 is_stmt 0 view .LVU1736 4999 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5000 .loc 1 2534 5 is_stmt 1 view .LVU1737 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5001 .loc 1 2534 21 is_stmt 0 view .LVU1738 5002 007a 6363 str r3, [r4, #52] 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5003 .loc 1 2537 5 is_stmt 1 view .LVU1739 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5004 .loc 1 2537 9 is_stmt 0 view .LVU1740 5005 007c 0197 str r7, [sp, #4] 5006 007e 0095 str r5, [sp] 5007 0080 4B46 mov r3, r9 5008 0082 4246 mov r2, r8 5009 0084 3146 mov r1, r6 5010 0086 2046 mov r0, r4 5011 0088 FFF7FEFF bl I2C_RequestMemoryRead 5012 .LVL310: 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5013 .loc 1 2537 8 view .LVU1741 5014 008c 70B9 cbnz r0, .L340 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5015 .loc 1 2546 5 is_stmt 1 view .LVU1742 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5016 .loc 1 2546 13 is_stmt 0 view .LVU1743 ARM GAS /tmp/cczJHHnF.s page 236 5017 008e 638D ldrh r3, [r4, #42] 5018 0090 9BB2 uxth r3, r3 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5019 .loc 1 2546 8 view .LVU1744 5020 0092 FF2B cmp r3, #255 5021 0094 0FD9 bls .L327 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5022 .loc 1 2548 7 is_stmt 1 view .LVU1745 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5023 .loc 1 2548 22 is_stmt 0 view .LVU1746 5024 0096 FF22 movs r2, #255 5025 0098 2285 strh r2, [r4, #40] @ movhi 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5026 .loc 1 2549 7 is_stmt 1 view .LVU1747 5027 009a 444B ldr r3, .L342 5028 009c 0093 str r3, [sp] 5029 009e 4FF08073 mov r3, #16777216 5030 00a2 3146 mov r1, r6 5031 00a4 2046 mov r0, r4 5032 00a6 FFF7FEFF bl I2C_TransferConfig 5033 .LVL311: 5034 00aa 21E0 b .L331 5035 .L340: 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5036 .loc 1 2540 7 view .LVU1748 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5037 .loc 1 2540 7 view .LVU1749 5038 00ac 0023 movs r3, #0 5039 00ae 84F84030 strb r3, [r4, #64] 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5040 .loc 1 2540 7 view .LVU1750 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5041 .loc 1 2541 7 view .LVU1751 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5042 .loc 1 2541 14 is_stmt 0 view .LVU1752 5043 00b2 5846 mov r0, fp 5044 00b4 6EE0 b .L323 5045 .L327: 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5046 .loc 1 2554 7 is_stmt 1 view .LVU1753 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5047 .loc 1 2554 28 is_stmt 0 view .LVU1754 5048 00b6 628D ldrh r2, [r4, #42] 5049 00b8 92B2 uxth r2, r2 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5050 .loc 1 2554 22 view .LVU1755 5051 00ba 2285 strh r2, [r4, #40] @ movhi 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5052 .loc 1 2555 7 is_stmt 1 view .LVU1756 5053 00bc 3B4B ldr r3, .L342 5054 00be 0093 str r3, [sp] 5055 00c0 4FF00073 mov r3, #33554432 5056 00c4 D2B2 uxtb r2, r2 5057 00c6 3146 mov r1, r6 5058 00c8 2046 mov r0, r4 5059 00ca FFF7FEFF bl I2C_TransferConfig 5060 .LVL312: ARM GAS /tmp/cczJHHnF.s page 237 5061 00ce 0FE0 b .L331 5062 .L330: 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5063 .loc 1 2592 11 view .LVU1757 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5064 .loc 1 2592 32 is_stmt 0 view .LVU1758 5065 00d0 628D ldrh r2, [r4, #42] 5066 00d2 92B2 uxth r2, r2 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5067 .loc 1 2592 26 view .LVU1759 5068 00d4 2285 strh r2, [r4, #40] @ movhi 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5069 .loc 1 2593 11 is_stmt 1 view .LVU1760 5070 00d6 0023 movs r3, #0 5071 00d8 0093 str r3, [sp] 5072 00da 4FF00073 mov r3, #33554432 5073 00de D2B2 uxtb r2, r2 5074 00e0 3146 mov r1, r6 5075 00e2 2046 mov r0, r4 5076 00e4 FFF7FEFF bl I2C_TransferConfig 5077 .LVL313: 5078 .L329: 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5079 .loc 1 2597 30 view .LVU1761 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5080 .loc 1 2597 18 is_stmt 0 view .LVU1762 5081 00e8 638D ldrh r3, [r4, #42] 5082 00ea 9BB2 uxth r3, r3 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5083 .loc 1 2597 30 view .LVU1763 5084 00ec 002B cmp r3, #0 5085 00ee 34D0 beq .L341 5086 .L331: 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5087 .loc 1 2559 5 is_stmt 1 view .LVU1764 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5088 .loc 1 2562 7 view .LVU1765 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5089 .loc 1 2562 11 is_stmt 0 view .LVU1766 5090 00f0 0097 str r7, [sp] 5091 00f2 2B46 mov r3, r5 5092 00f4 0022 movs r2, #0 5093 00f6 0421 movs r1, #4 5094 00f8 2046 mov r0, r4 5095 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5096 .LVL314: 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5097 .loc 1 2562 10 view .LVU1767 5098 00fe 0028 cmp r0, #0 5099 0100 4DD1 bne .L335 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5100 .loc 1 2568 7 is_stmt 1 view .LVU1768 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5101 .loc 1 2568 38 is_stmt 0 view .LVU1769 5102 0102 2368 ldr r3, [r4] 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5103 .loc 1 2568 48 view .LVU1770 ARM GAS /tmp/cczJHHnF.s page 238 5104 0104 5A6A ldr r2, [r3, #36] 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5105 .loc 1 2568 12 view .LVU1771 5106 0106 636A ldr r3, [r4, #36] 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5107 .loc 1 2568 23 view .LVU1772 5108 0108 1A70 strb r2, [r3] 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5109 .loc 1 2571 7 is_stmt 1 view .LVU1773 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5110 .loc 1 2571 11 is_stmt 0 view .LVU1774 5111 010a 636A ldr r3, [r4, #36] 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5112 .loc 1 2571 21 view .LVU1775 5113 010c 0133 adds r3, r3, #1 5114 010e 6362 str r3, [r4, #36] 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5115 .loc 1 2573 7 is_stmt 1 view .LVU1776 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5116 .loc 1 2573 11 is_stmt 0 view .LVU1777 5117 0110 228D ldrh r2, [r4, #40] 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5118 .loc 1 2573 21 view .LVU1778 5119 0112 013A subs r2, r2, #1 5120 0114 92B2 uxth r2, r2 5121 0116 2285 strh r2, [r4, #40] @ movhi 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5122 .loc 1 2574 7 is_stmt 1 view .LVU1779 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5123 .loc 1 2574 11 is_stmt 0 view .LVU1780 5124 0118 638D ldrh r3, [r4, #42] 5125 011a 9BB2 uxth r3, r3 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5126 .loc 1 2574 22 view .LVU1781 5127 011c 013B subs r3, r3, #1 5128 011e 9BB2 uxth r3, r3 5129 0120 6385 strh r3, [r4, #42] @ movhi 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5130 .loc 1 2576 7 is_stmt 1 view .LVU1782 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5131 .loc 1 2576 16 is_stmt 0 view .LVU1783 5132 0122 638D ldrh r3, [r4, #42] 5133 0124 9BB2 uxth r3, r3 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5134 .loc 1 2576 10 view .LVU1784 5135 0126 002B cmp r3, #0 5136 0128 DED0 beq .L329 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5137 .loc 1 2576 35 discriminator 1 view .LVU1785 5138 012a 002A cmp r2, #0 5139 012c DCD1 bne .L329 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5140 .loc 1 2579 9 is_stmt 1 view .LVU1786 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5141 .loc 1 2579 13 is_stmt 0 view .LVU1787 5142 012e 0097 str r7, [sp] 5143 0130 2B46 mov r3, r5 ARM GAS /tmp/cczJHHnF.s page 239 5144 0132 8021 movs r1, #128 5145 0134 2046 mov r0, r4 5146 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5147 .LVL315: 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5148 .loc 1 2579 12 view .LVU1788 5149 013a 90BB cbnz r0, .L336 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5150 .loc 1 2584 9 is_stmt 1 view .LVU1789 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5151 .loc 1 2584 17 is_stmt 0 view .LVU1790 5152 013c 638D ldrh r3, [r4, #42] 5153 013e 9BB2 uxth r3, r3 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5154 .loc 1 2584 12 view .LVU1791 5155 0140 FF2B cmp r3, #255 5156 0142 C5D9 bls .L330 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5157 .loc 1 2586 11 is_stmt 1 view .LVU1792 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5158 .loc 1 2586 26 is_stmt 0 view .LVU1793 5159 0144 FF22 movs r2, #255 5160 0146 2285 strh r2, [r4, #40] @ movhi 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5161 .loc 1 2587 11 is_stmt 1 view .LVU1794 5162 0148 0023 movs r3, #0 5163 014a 0093 str r3, [sp] 5164 014c 4FF08073 mov r3, #16777216 5165 0150 3146 mov r1, r6 5166 0152 2046 mov r0, r4 5167 0154 FFF7FEFF bl I2C_TransferConfig 5168 .LVL316: 5169 0158 C6E7 b .L329 5170 .L341: 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5171 .loc 1 2601 5 view .LVU1795 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5172 .loc 1 2601 9 is_stmt 0 view .LVU1796 5173 015a 3A46 mov r2, r7 5174 015c 2946 mov r1, r5 5175 015e 2046 mov r0, r4 5176 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5177 .LVL317: 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5178 .loc 1 2601 8 view .LVU1797 5179 0164 F8B9 cbnz r0, .L337 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5180 .loc 1 2607 5 is_stmt 1 view .LVU1798 5181 0166 2368 ldr r3, [r4] 5182 0168 2022 movs r2, #32 5183 016a DA61 str r2, [r3, #28] 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5184 .loc 1 2610 5 view .LVU1799 5185 016c 2168 ldr r1, [r4] 5186 016e 4B68 ldr r3, [r1, #4] 5187 0170 23F0FF73 bic r3, r3, #33423360 5188 0174 23F48B33 bic r3, r3, #71168 ARM GAS /tmp/cczJHHnF.s page 240 5189 0178 23F4FF73 bic r3, r3, #510 5190 017c 23F00103 bic r3, r3, #1 5191 0180 4B60 str r3, [r1, #4] 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5192 .loc 1 2612 5 view .LVU1800 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5193 .loc 1 2612 17 is_stmt 0 view .LVU1801 5194 0182 84F84120 strb r2, [r4, #65] 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5195 .loc 1 2613 5 is_stmt 1 view .LVU1802 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5196 .loc 1 2613 17 is_stmt 0 view .LVU1803 5197 0186 0023 movs r3, #0 5198 0188 84F84230 strb r3, [r4, #66] 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5199 .loc 1 2616 5 is_stmt 1 view .LVU1804 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5200 .loc 1 2616 5 view .LVU1805 5201 018c 84F84030 strb r3, [r4, #64] 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5202 .loc 1 2616 5 view .LVU1806 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5203 .loc 1 2618 5 view .LVU1807 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5204 .loc 1 2618 12 is_stmt 0 view .LVU1808 5205 0190 00E0 b .L323 5206 .LVL318: 5207 .L332: 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5208 .loc 1 2622 12 view .LVU1809 5209 0192 0220 movs r0, #2 5210 .LVL319: 5211 .L323: 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5212 .loc 1 2624 1 view .LVU1810 5213 0194 03B0 add sp, sp, #12 5214 .cfi_remember_state 5215 .cfi_def_cfa_offset 36 5216 @ sp needed 5217 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5218 .LVL320: 5219 .L333: 5220 .cfi_restore_state 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5221 .loc 1 2517 5 view .LVU1811 5222 019a 0220 movs r0, #2 5223 .LVL321: 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5224 .loc 1 2517 5 view .LVU1812 5225 019c FAE7 b .L323 5226 .LVL322: 5227 .L335: 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5228 .loc 1 2564 16 view .LVU1813 5229 019e 0120 movs r0, #1 5230 01a0 F8E7 b .L323 5231 .L336: ARM GAS /tmp/cczJHHnF.s page 241 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5232 .loc 1 2581 18 view .LVU1814 5233 01a2 0120 movs r0, #1 5234 01a4 F6E7 b .L323 5235 .L337: 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5236 .loc 1 2603 14 view .LVU1815 5237 01a6 0120 movs r0, #1 5238 01a8 F4E7 b .L323 5239 .L343: 5240 01aa 00BF .align 2 5241 .L342: 5242 01ac 00240080 .word -2147474432 5243 .cfi_endproc 5244 .LFE147: 5246 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5247 .align 1 5248 .global HAL_I2C_Mem_Write_IT 5249 .syntax unified 5250 .thumb 5251 .thumb_func 5253 HAL_I2C_Mem_Write_IT: 5254 .LVL323: 5255 .LFB148: 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5256 .loc 1 2639 1 is_stmt 1 view -0 5257 .cfi_startproc 5258 @ args = 8, pretend = 0, frame = 0 5259 @ frame_needed = 0, uses_anonymous_args = 0 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5260 .loc 1 2639 1 is_stmt 0 view .LVU1817 5261 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5262 .cfi_def_cfa_offset 24 5263 .cfi_offset 4, -24 5264 .cfi_offset 5, -20 5265 .cfi_offset 6, -16 5266 .cfi_offset 7, -12 5267 .cfi_offset 8, -8 5268 .cfi_offset 14, -4 5269 0004 82B0 sub sp, sp, #8 5270 .cfi_def_cfa_offset 32 5271 0006 0446 mov r4, r0 5272 0008 BDF82480 ldrh r8, [sp, #36] 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 5273 .loc 1 2640 3 is_stmt 1 view .LVU1818 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5274 .loc 1 2641 3 view .LVU1819 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5275 .loc 1 2644 3 view .LVU1820 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5276 .loc 1 2646 3 view .LVU1821 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5277 .loc 1 2646 11 is_stmt 0 view .LVU1822 5278 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5279 .LVL324: 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5280 .loc 1 2646 11 view .LVU1823 ARM GAS /tmp/cczJHHnF.s page 242 5281 0010 C0B2 uxtb r0, r0 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5282 .loc 1 2646 6 view .LVU1824 5283 0012 2028 cmp r0, #32 5284 0014 58D1 bne .L351 5285 0016 0D46 mov r5, r1 5286 0018 1746 mov r7, r2 5287 001a 1E46 mov r6, r3 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5288 .loc 1 2648 5 is_stmt 1 view .LVU1825 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5289 .loc 1 2648 8 is_stmt 0 view .LVU1826 5290 001c 089B ldr r3, [sp, #32] 5291 .LVL325: 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5292 .loc 1 2648 8 view .LVU1827 5293 001e 002B cmp r3, #0 5294 0020 38D0 beq .L346 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5295 .loc 1 2648 25 discriminator 1 view .LVU1828 5296 0022 B8F1000F cmp r8, #0 5297 0026 35D0 beq .L346 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5298 .loc 1 2654 5 is_stmt 1 view .LVU1829 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5299 .loc 1 2654 9 is_stmt 0 view .LVU1830 5300 0028 2368 ldr r3, [r4] 5301 002a 9B69 ldr r3, [r3, #24] 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5302 .loc 1 2654 8 view .LVU1831 5303 002c 13F4004F tst r3, #32768 5304 0030 4FD1 bne .L352 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5305 .loc 1 2660 5 is_stmt 1 view .LVU1832 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5306 .loc 1 2660 5 view .LVU1833 5307 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5308 0036 012B cmp r3, #1 5309 0038 4DD0 beq .L353 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5310 .loc 1 2660 5 discriminator 2 view .LVU1834 5311 003a 0123 movs r3, #1 5312 003c 84F84030 strb r3, [r4, #64] 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5313 .loc 1 2660 5 discriminator 2 view .LVU1835 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5314 .loc 1 2663 5 discriminator 2 view .LVU1836 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5315 .loc 1 2663 17 is_stmt 0 discriminator 2 view .LVU1837 5316 0040 FFF7FEFF bl HAL_GetTick 5317 .LVL326: 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5318 .loc 1 2665 5 is_stmt 1 discriminator 2 view .LVU1838 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5319 .loc 1 2665 23 is_stmt 0 discriminator 2 view .LVU1839 5320 0044 2123 movs r3, #33 5321 0046 84F84130 strb r3, [r4, #65] ARM GAS /tmp/cczJHHnF.s page 243 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5322 .loc 1 2666 5 is_stmt 1 discriminator 2 view .LVU1840 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5323 .loc 1 2666 23 is_stmt 0 discriminator 2 view .LVU1841 5324 004a 4023 movs r3, #64 5325 004c 84F84230 strb r3, [r4, #66] 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5326 .loc 1 2667 5 is_stmt 1 discriminator 2 view .LVU1842 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5327 .loc 1 2667 23 is_stmt 0 discriminator 2 view .LVU1843 5328 0050 0023 movs r3, #0 5329 0052 6364 str r3, [r4, #68] 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5330 .loc 1 2670 5 is_stmt 1 discriminator 2 view .LVU1844 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5331 .loc 1 2670 23 is_stmt 0 discriminator 2 view .LVU1845 5332 0054 089B ldr r3, [sp, #32] 5333 0056 6362 str r3, [r4, #36] 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5334 .loc 1 2671 5 is_stmt 1 discriminator 2 view .LVU1846 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5335 .loc 1 2671 23 is_stmt 0 discriminator 2 view .LVU1847 5336 0058 A4F82A80 strh r8, [r4, #42] @ movhi 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5337 .loc 1 2672 5 is_stmt 1 discriminator 2 view .LVU1848 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5338 .loc 1 2672 23 is_stmt 0 discriminator 2 view .LVU1849 5339 005c 1F4B ldr r3, .L355 5340 005e E362 str r3, [r4, #44] 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5341 .loc 1 2673 5 is_stmt 1 discriminator 2 view .LVU1850 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5342 .loc 1 2673 23 is_stmt 0 discriminator 2 view .LVU1851 5343 0060 1F4B ldr r3, .L355+4 5344 0062 6363 str r3, [r4, #52] 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5345 .loc 1 2675 5 is_stmt 1 discriminator 2 view .LVU1852 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5346 .loc 1 2675 13 is_stmt 0 discriminator 2 view .LVU1853 5347 0064 638D ldrh r3, [r4, #42] 5348 0066 9BB2 uxth r3, r3 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5349 .loc 1 2675 8 discriminator 2 view .LVU1854 5350 0068 FF2B cmp r3, #255 5351 006a 18D9 bls .L348 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5352 .loc 1 2677 7 is_stmt 1 view .LVU1855 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5353 .loc 1 2677 22 is_stmt 0 view .LVU1856 5354 006c FF23 movs r3, #255 5355 006e 2385 strh r3, [r4, #40] @ movhi 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5356 .loc 1 2678 7 is_stmt 1 view .LVU1857 5357 .LVL327: 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5358 .loc 1 2678 16 is_stmt 0 view .LVU1858 5359 0070 4FF08078 mov r8, #16777216 ARM GAS /tmp/cczJHHnF.s page 244 5360 .LVL328: 5361 .L349: 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5362 .loc 1 2687 5 is_stmt 1 view .LVU1859 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5363 .loc 1 2687 9 is_stmt 0 view .LVU1860 5364 0074 0190 str r0, [sp, #4] 5365 0076 1923 movs r3, #25 5366 0078 0093 str r3, [sp] 5367 007a 3346 mov r3, r6 5368 007c 3A46 mov r2, r7 5369 007e 2946 mov r1, r5 5370 0080 2046 mov r0, r4 5371 .LVL329: 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5372 .loc 1 2687 9 view .LVU1861 5373 0082 FFF7FEFF bl I2C_RequestMemoryWrite 5374 .LVL330: 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5375 .loc 1 2687 8 view .LVU1862 5376 0086 0646 mov r6, r0 5377 0088 70B1 cbz r0, .L350 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5378 .loc 1 2691 7 is_stmt 1 view .LVU1863 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5379 .loc 1 2691 7 view .LVU1864 5380 008a 0023 movs r3, #0 5381 008c 84F84030 strb r3, [r4, #64] 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5382 .loc 1 2691 7 view .LVU1865 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5383 .loc 1 2692 7 view .LVU1866 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5384 .loc 1 2692 14 is_stmt 0 view .LVU1867 5385 0090 0126 movs r6, #1 5386 0092 1AE0 b .L345 5387 .LVL331: 5388 .L346: 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5389 .loc 1 2650 7 is_stmt 1 view .LVU1868 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5390 .loc 1 2650 23 is_stmt 0 view .LVU1869 5391 0094 4FF40073 mov r3, #512 5392 0098 6364 str r3, [r4, #68] 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5393 .loc 1 2651 7 is_stmt 1 view .LVU1870 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5394 .loc 1 2651 15 is_stmt 0 view .LVU1871 5395 009a 0126 movs r6, #1 5396 009c 15E0 b .L345 5397 .LVL332: 5398 .L348: 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5399 .loc 1 2682 7 is_stmt 1 view .LVU1872 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5400 .loc 1 2682 28 is_stmt 0 view .LVU1873 5401 009e 638D ldrh r3, [r4, #42] ARM GAS /tmp/cczJHHnF.s page 245 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5402 .loc 1 2682 22 view .LVU1874 5403 00a0 2385 strh r3, [r4, #40] @ movhi 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5404 .loc 1 2683 7 is_stmt 1 view .LVU1875 5405 .LVL333: 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5406 .loc 1 2683 16 is_stmt 0 view .LVU1876 5407 00a2 4FF00078 mov r8, #33554432 5408 00a6 E5E7 b .L349 5409 .LVL334: 5410 .L350: 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5411 .loc 1 2696 5 is_stmt 1 view .LVU1877 5412 00a8 0027 movs r7, #0 5413 00aa 0097 str r7, [sp] 5414 00ac 4346 mov r3, r8 5415 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5416 00b2 2946 mov r1, r5 5417 00b4 2046 mov r0, r4 5418 00b6 FFF7FEFF bl I2C_TransferConfig 5419 .LVL335: 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5420 .loc 1 2699 5 view .LVU1878 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5421 .loc 1 2699 5 view .LVU1879 5422 00ba 84F84070 strb r7, [r4, #64] 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5423 .loc 1 2699 5 view .LVU1880 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5424 .loc 1 2709 5 view .LVU1881 5425 00be 0121 movs r1, #1 5426 00c0 2046 mov r0, r4 5427 00c2 FFF7FEFF bl I2C_Enable_IRQ 5428 .LVL336: 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5429 .loc 1 2711 5 view .LVU1882 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5430 .loc 1 2711 12 is_stmt 0 view .LVU1883 5431 00c6 00E0 b .L345 5432 .LVL337: 5433 .L351: 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5434 .loc 1 2715 12 view .LVU1884 5435 00c8 0226 movs r6, #2 5436 .LVL338: 5437 .L345: 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5438 .loc 1 2717 1 view .LVU1885 5439 00ca 3046 mov r0, r6 5440 00cc 02B0 add sp, sp, #8 5441 .cfi_remember_state 5442 .cfi_def_cfa_offset 24 5443 @ sp needed 5444 00ce BDE8F081 pop {r4, r5, r6, r7, r8, pc} 5445 .LVL339: 5446 .L352: ARM GAS /tmp/cczJHHnF.s page 246 5447 .cfi_restore_state 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5448 .loc 1 2656 14 view .LVU1886 5449 00d2 0226 movs r6, #2 5450 00d4 F9E7 b .L345 5451 .L353: 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5452 .loc 1 2660 5 view .LVU1887 5453 00d6 0226 movs r6, #2 5454 00d8 F7E7 b .L345 5455 .L356: 5456 00da 00BF .align 2 5457 .L355: 5458 00dc 0000FFFF .word -65536 5459 00e0 00000000 .word I2C_Master_ISR_IT 5460 .cfi_endproc 5461 .LFE148: 5463 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 5464 .align 1 5465 .global HAL_I2C_Mem_Read_IT 5466 .syntax unified 5467 .thumb 5468 .thumb_func 5470 HAL_I2C_Mem_Read_IT: 5471 .LVL340: 5472 .LFB149: 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5473 .loc 1 2733 1 is_stmt 1 view -0 5474 .cfi_startproc 5475 @ args = 8, pretend = 0, frame = 0 5476 @ frame_needed = 0, uses_anonymous_args = 0 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5477 .loc 1 2733 1 is_stmt 0 view .LVU1889 5478 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5479 .cfi_def_cfa_offset 24 5480 .cfi_offset 4, -24 5481 .cfi_offset 5, -20 5482 .cfi_offset 6, -16 5483 .cfi_offset 7, -12 5484 .cfi_offset 8, -8 5485 .cfi_offset 14, -4 5486 0004 82B0 sub sp, sp, #8 5487 .cfi_def_cfa_offset 32 5488 0006 0446 mov r4, r0 5489 0008 BDF82480 ldrh r8, [sp, #36] 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 5490 .loc 1 2734 3 is_stmt 1 view .LVU1890 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5491 .loc 1 2735 3 view .LVU1891 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5492 .loc 1 2738 3 view .LVU1892 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5493 .loc 1 2740 3 view .LVU1893 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5494 .loc 1 2740 11 is_stmt 0 view .LVU1894 5495 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5496 .LVL341: ARM GAS /tmp/cczJHHnF.s page 247 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5497 .loc 1 2740 11 view .LVU1895 5498 0010 C0B2 uxtb r0, r0 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5499 .loc 1 2740 6 view .LVU1896 5500 0012 2028 cmp r0, #32 5501 0014 59D1 bne .L364 5502 0016 0D46 mov r5, r1 5503 0018 1746 mov r7, r2 5504 001a 1E46 mov r6, r3 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5505 .loc 1 2742 5 is_stmt 1 view .LVU1897 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5506 .loc 1 2742 8 is_stmt 0 view .LVU1898 5507 001c 089B ldr r3, [sp, #32] 5508 .LVL342: 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5509 .loc 1 2742 8 view .LVU1899 5510 001e 002B cmp r3, #0 5511 0020 38D0 beq .L359 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5512 .loc 1 2742 25 discriminator 1 view .LVU1900 5513 0022 B8F1000F cmp r8, #0 5514 0026 35D0 beq .L359 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5515 .loc 1 2748 5 is_stmt 1 view .LVU1901 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5516 .loc 1 2748 9 is_stmt 0 view .LVU1902 5517 0028 2368 ldr r3, [r4] 5518 002a 9B69 ldr r3, [r3, #24] 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5519 .loc 1 2748 8 view .LVU1903 5520 002c 13F4004F tst r3, #32768 5521 0030 50D1 bne .L365 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5522 .loc 1 2754 5 is_stmt 1 view .LVU1904 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5523 .loc 1 2754 5 view .LVU1905 5524 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5525 0036 012B cmp r3, #1 5526 0038 4ED0 beq .L366 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5527 .loc 1 2754 5 discriminator 2 view .LVU1906 5528 003a 0123 movs r3, #1 5529 003c 84F84030 strb r3, [r4, #64] 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5530 .loc 1 2754 5 discriminator 2 view .LVU1907 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5531 .loc 1 2757 5 discriminator 2 view .LVU1908 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5532 .loc 1 2757 17 is_stmt 0 discriminator 2 view .LVU1909 5533 0040 FFF7FEFF bl HAL_GetTick 5534 .LVL343: 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5535 .loc 1 2759 5 is_stmt 1 discriminator 2 view .LVU1910 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5536 .loc 1 2759 23 is_stmt 0 discriminator 2 view .LVU1911 ARM GAS /tmp/cczJHHnF.s page 248 5537 0044 2223 movs r3, #34 5538 0046 84F84130 strb r3, [r4, #65] 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5539 .loc 1 2760 5 is_stmt 1 discriminator 2 view .LVU1912 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5540 .loc 1 2760 23 is_stmt 0 discriminator 2 view .LVU1913 5541 004a 4023 movs r3, #64 5542 004c 84F84230 strb r3, [r4, #66] 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5543 .loc 1 2761 5 is_stmt 1 discriminator 2 view .LVU1914 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5544 .loc 1 2761 23 is_stmt 0 discriminator 2 view .LVU1915 5545 0050 0023 movs r3, #0 5546 0052 6364 str r3, [r4, #68] 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5547 .loc 1 2764 5 is_stmt 1 discriminator 2 view .LVU1916 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5548 .loc 1 2764 23 is_stmt 0 discriminator 2 view .LVU1917 5549 0054 089B ldr r3, [sp, #32] 5550 0056 6362 str r3, [r4, #36] 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5551 .loc 1 2765 5 is_stmt 1 discriminator 2 view .LVU1918 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5552 .loc 1 2765 23 is_stmt 0 discriminator 2 view .LVU1919 5553 0058 A4F82A80 strh r8, [r4, #42] @ movhi 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5554 .loc 1 2766 5 is_stmt 1 discriminator 2 view .LVU1920 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5555 .loc 1 2766 23 is_stmt 0 discriminator 2 view .LVU1921 5556 005c 1F4B ldr r3, .L368 5557 005e E362 str r3, [r4, #44] 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5558 .loc 1 2767 5 is_stmt 1 discriminator 2 view .LVU1922 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5559 .loc 1 2767 23 is_stmt 0 discriminator 2 view .LVU1923 5560 0060 1F4B ldr r3, .L368+4 5561 0062 6363 str r3, [r4, #52] 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5562 .loc 1 2769 5 is_stmt 1 discriminator 2 view .LVU1924 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5563 .loc 1 2769 13 is_stmt 0 discriminator 2 view .LVU1925 5564 0064 638D ldrh r3, [r4, #42] 5565 0066 9BB2 uxth r3, r3 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5566 .loc 1 2769 8 discriminator 2 view .LVU1926 5567 0068 FF2B cmp r3, #255 5568 006a 18D9 bls .L361 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5569 .loc 1 2771 7 is_stmt 1 view .LVU1927 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5570 .loc 1 2771 22 is_stmt 0 view .LVU1928 5571 006c FF23 movs r3, #255 5572 006e 2385 strh r3, [r4, #40] @ movhi 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5573 .loc 1 2772 7 is_stmt 1 view .LVU1929 5574 .LVL344: 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 249 5575 .loc 1 2772 16 is_stmt 0 view .LVU1930 5576 0070 4FF08078 mov r8, #16777216 5577 .LVL345: 5578 .L362: 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5579 .loc 1 2781 5 is_stmt 1 view .LVU1931 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5580 .loc 1 2781 9 is_stmt 0 view .LVU1932 5581 0074 0190 str r0, [sp, #4] 5582 0076 1923 movs r3, #25 5583 0078 0093 str r3, [sp] 5584 007a 3346 mov r3, r6 5585 007c 3A46 mov r2, r7 5586 007e 2946 mov r1, r5 5587 0080 2046 mov r0, r4 5588 .LVL346: 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5589 .loc 1 2781 9 view .LVU1933 5590 0082 FFF7FEFF bl I2C_RequestMemoryRead 5591 .LVL347: 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5592 .loc 1 2781 8 view .LVU1934 5593 0086 0646 mov r6, r0 5594 0088 70B1 cbz r0, .L363 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5595 .loc 1 2784 7 is_stmt 1 view .LVU1935 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5596 .loc 1 2784 7 view .LVU1936 5597 008a 0023 movs r3, #0 5598 008c 84F84030 strb r3, [r4, #64] 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5599 .loc 1 2784 7 view .LVU1937 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5600 .loc 1 2785 7 view .LVU1938 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5601 .loc 1 2785 14 is_stmt 0 view .LVU1939 5602 0090 0126 movs r6, #1 5603 0092 1BE0 b .L358 5604 .LVL348: 5605 .L359: 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5606 .loc 1 2744 7 is_stmt 1 view .LVU1940 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5607 .loc 1 2744 23 is_stmt 0 view .LVU1941 5608 0094 4FF40073 mov r3, #512 5609 0098 6364 str r3, [r4, #68] 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5610 .loc 1 2745 7 is_stmt 1 view .LVU1942 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5611 .loc 1 2745 15 is_stmt 0 view .LVU1943 5612 009a 0126 movs r6, #1 5613 009c 16E0 b .L358 5614 .LVL349: 5615 .L361: 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5616 .loc 1 2776 7 is_stmt 1 view .LVU1944 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; ARM GAS /tmp/cczJHHnF.s page 250 5617 .loc 1 2776 28 is_stmt 0 view .LVU1945 5618 009e 638D ldrh r3, [r4, #42] 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5619 .loc 1 2776 22 view .LVU1946 5620 00a0 2385 strh r3, [r4, #40] @ movhi 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5621 .loc 1 2777 7 is_stmt 1 view .LVU1947 5622 .LVL350: 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5623 .loc 1 2777 16 is_stmt 0 view .LVU1948 5624 00a2 4FF00078 mov r8, #33554432 5625 00a6 E5E7 b .L362 5626 .LVL351: 5627 .L363: 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5628 .loc 1 2789 5 is_stmt 1 view .LVU1949 5629 00a8 0E4B ldr r3, .L368+8 5630 00aa 0093 str r3, [sp] 5631 00ac 4346 mov r3, r8 5632 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5633 00b2 2946 mov r1, r5 5634 00b4 2046 mov r0, r4 5635 00b6 FFF7FEFF bl I2C_TransferConfig 5636 .LVL352: 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5637 .loc 1 2792 5 view .LVU1950 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5638 .loc 1 2792 5 view .LVU1951 5639 00ba 0023 movs r3, #0 5640 00bc 84F84030 strb r3, [r4, #64] 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5641 .loc 1 2792 5 view .LVU1952 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5642 .loc 1 2802 5 view .LVU1953 5643 00c0 0221 movs r1, #2 5644 00c2 2046 mov r0, r4 5645 00c4 FFF7FEFF bl I2C_Enable_IRQ 5646 .LVL353: 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5647 .loc 1 2804 5 view .LVU1954 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5648 .loc 1 2804 12 is_stmt 0 view .LVU1955 5649 00c8 00E0 b .L358 5650 .LVL354: 5651 .L364: 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5652 .loc 1 2808 12 view .LVU1956 5653 00ca 0226 movs r6, #2 5654 .LVL355: 5655 .L358: 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5656 .loc 1 2810 1 view .LVU1957 5657 00cc 3046 mov r0, r6 5658 00ce 02B0 add sp, sp, #8 5659 .cfi_remember_state 5660 .cfi_def_cfa_offset 24 5661 @ sp needed ARM GAS /tmp/cczJHHnF.s page 251 5662 00d0 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 5663 .LVL356: 5664 .L365: 5665 .cfi_restore_state 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5666 .loc 1 2750 14 view .LVU1958 5667 00d4 0226 movs r6, #2 5668 00d6 F9E7 b .L358 5669 .L366: 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5670 .loc 1 2754 5 view .LVU1959 5671 00d8 0226 movs r6, #2 5672 00da F7E7 b .L358 5673 .L369: 5674 .align 2 5675 .L368: 5676 00dc 0000FFFF .word -65536 5677 00e0 00000000 .word I2C_Master_ISR_IT 5678 00e4 00240080 .word -2147474432 5679 .cfi_endproc 5680 .LFE149: 5682 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 5683 .align 1 5684 .global HAL_I2C_Mem_Write_DMA 5685 .syntax unified 5686 .thumb 5687 .thumb_func 5689 HAL_I2C_Mem_Write_DMA: 5690 .LVL357: 5691 .LFB150: 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5692 .loc 1 2825 1 is_stmt 1 view -0 5693 .cfi_startproc 5694 @ args = 8, pretend = 0, frame = 0 5695 @ frame_needed = 0, uses_anonymous_args = 0 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5696 .loc 1 2825 1 is_stmt 0 view .LVU1961 5697 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 5698 .cfi_def_cfa_offset 24 5699 .cfi_offset 4, -24 5700 .cfi_offset 5, -20 5701 .cfi_offset 6, -16 5702 .cfi_offset 7, -12 5703 .cfi_offset 8, -8 5704 .cfi_offset 14, -4 5705 0004 82B0 sub sp, sp, #8 5706 .cfi_def_cfa_offset 32 5707 0006 0446 mov r4, r0 5708 0008 BDF82480 ldrh r8, [sp, #36] 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 5709 .loc 1 2826 3 is_stmt 1 view .LVU1962 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 5710 .loc 1 2827 3 view .LVU1963 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5711 .loc 1 2828 3 view .LVU1964 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5712 .loc 1 2831 3 view .LVU1965 ARM GAS /tmp/cczJHHnF.s page 252 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5713 .loc 1 2833 3 view .LVU1966 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5714 .loc 1 2833 11 is_stmt 0 view .LVU1967 5715 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5716 .LVL358: 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5717 .loc 1 2833 11 view .LVU1968 5718 0010 C0B2 uxtb r0, r0 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5719 .loc 1 2833 6 view .LVU1969 5720 0012 2028 cmp r0, #32 5721 0014 40F09880 bne .L380 5722 0018 0D46 mov r5, r1 5723 001a 1746 mov r7, r2 5724 001c 1E46 mov r6, r3 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5725 .loc 1 2835 5 is_stmt 1 view .LVU1970 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5726 .loc 1 2835 8 is_stmt 0 view .LVU1971 5727 001e 089B ldr r3, [sp, #32] 5728 .LVL359: 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5729 .loc 1 2835 8 view .LVU1972 5730 0020 002B cmp r3, #0 5731 0022 59D0 beq .L372 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5732 .loc 1 2835 25 discriminator 1 view .LVU1973 5733 0024 B8F1000F cmp r8, #0 5734 0028 56D0 beq .L372 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5735 .loc 1 2841 5 is_stmt 1 view .LVU1974 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5736 .loc 1 2841 9 is_stmt 0 view .LVU1975 5737 002a 2368 ldr r3, [r4] 5738 002c 9B69 ldr r3, [r3, #24] 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5739 .loc 1 2841 8 view .LVU1976 5740 002e 13F4004F tst r3, #32768 5741 0032 40F08E80 bne .L381 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5742 .loc 1 2847 5 is_stmt 1 view .LVU1977 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5743 .loc 1 2847 5 view .LVU1978 5744 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 5745 003a 012B cmp r3, #1 5746 003c 00F08B80 beq .L382 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5747 .loc 1 2847 5 discriminator 2 view .LVU1979 5748 0040 0123 movs r3, #1 5749 0042 84F84030 strb r3, [r4, #64] 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5750 .loc 1 2847 5 discriminator 2 view .LVU1980 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5751 .loc 1 2850 5 discriminator 2 view .LVU1981 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5752 .loc 1 2850 17 is_stmt 0 discriminator 2 view .LVU1982 ARM GAS /tmp/cczJHHnF.s page 253 5753 0046 FFF7FEFF bl HAL_GetTick 5754 .LVL360: 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5755 .loc 1 2852 5 is_stmt 1 discriminator 2 view .LVU1983 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5756 .loc 1 2852 23 is_stmt 0 discriminator 2 view .LVU1984 5757 004a 2123 movs r3, #33 5758 004c 84F84130 strb r3, [r4, #65] 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5759 .loc 1 2853 5 is_stmt 1 discriminator 2 view .LVU1985 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5760 .loc 1 2853 23 is_stmt 0 discriminator 2 view .LVU1986 5761 0050 4023 movs r3, #64 5762 0052 84F84230 strb r3, [r4, #66] 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5763 .loc 1 2854 5 is_stmt 1 discriminator 2 view .LVU1987 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5764 .loc 1 2854 23 is_stmt 0 discriminator 2 view .LVU1988 5765 0056 0023 movs r3, #0 5766 0058 6364 str r3, [r4, #68] 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5767 .loc 1 2857 5 is_stmt 1 discriminator 2 view .LVU1989 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5768 .loc 1 2857 23 is_stmt 0 discriminator 2 view .LVU1990 5769 005a 089B ldr r3, [sp, #32] 5770 005c 6362 str r3, [r4, #36] 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5771 .loc 1 2858 5 is_stmt 1 discriminator 2 view .LVU1991 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5772 .loc 1 2858 23 is_stmt 0 discriminator 2 view .LVU1992 5773 005e A4F82A80 strh r8, [r4, #42] @ movhi 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 5774 .loc 1 2859 5 is_stmt 1 discriminator 2 view .LVU1993 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 5775 .loc 1 2859 23 is_stmt 0 discriminator 2 view .LVU1994 5776 0062 3E4B ldr r3, .L387 5777 0064 E362 str r3, [r4, #44] 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5778 .loc 1 2860 5 is_stmt 1 discriminator 2 view .LVU1995 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5779 .loc 1 2860 23 is_stmt 0 discriminator 2 view .LVU1996 5780 0066 3E4B ldr r3, .L387+4 5781 0068 6363 str r3, [r4, #52] 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5782 .loc 1 2862 5 is_stmt 1 discriminator 2 view .LVU1997 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5783 .loc 1 2862 13 is_stmt 0 discriminator 2 view .LVU1998 5784 006a 638D ldrh r3, [r4, #42] 5785 006c 9BB2 uxth r3, r3 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5786 .loc 1 2862 8 discriminator 2 view .LVU1999 5787 006e FF2B cmp r3, #255 5788 0070 37D9 bls .L374 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5789 .loc 1 2864 7 is_stmt 1 view .LVU2000 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5790 .loc 1 2864 22 is_stmt 0 view .LVU2001 ARM GAS /tmp/cczJHHnF.s page 254 5791 0072 FF23 movs r3, #255 5792 0074 2385 strh r3, [r4, #40] @ movhi 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5793 .loc 1 2865 7 is_stmt 1 view .LVU2002 5794 .LVL361: 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5795 .loc 1 2865 16 is_stmt 0 view .LVU2003 5796 0076 4FF08078 mov r8, #16777216 5797 .LVL362: 5798 .L375: 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5799 .loc 1 2874 5 is_stmt 1 view .LVU2004 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5800 .loc 1 2874 9 is_stmt 0 view .LVU2005 5801 007a 0190 str r0, [sp, #4] 5802 007c 1923 movs r3, #25 5803 007e 0093 str r3, [sp] 5804 0080 3346 mov r3, r6 5805 0082 3A46 mov r2, r7 5806 0084 2946 mov r1, r5 5807 0086 2046 mov r0, r4 5808 .LVL363: 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5809 .loc 1 2874 9 view .LVU2006 5810 0088 FFF7FEFF bl I2C_RequestMemoryWrite 5811 .LVL364: 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK) 5812 .loc 1 2874 8 view .LVU2007 5813 008c 0028 cmp r0, #0 5814 008e 2DD1 bne .L385 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5815 .loc 1 2883 5 is_stmt 1 view .LVU2008 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5816 .loc 1 2883 13 is_stmt 0 view .LVU2009 5817 0090 A36B ldr r3, [r4, #56] 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5818 .loc 1 2883 8 view .LVU2010 5819 0092 002B cmp r3, #0 5820 0094 2FD0 beq .L377 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5821 .loc 1 2886 7 is_stmt 1 view .LVU2011 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5822 .loc 1 2886 38 is_stmt 0 view .LVU2012 5823 0096 334A ldr r2, .L387+8 5824 0098 9A62 str r2, [r3, #40] 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5825 .loc 1 2889 7 is_stmt 1 view .LVU2013 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5826 .loc 1 2889 11 is_stmt 0 view .LVU2014 5827 009a A36B ldr r3, [r4, #56] 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5828 .loc 1 2889 39 view .LVU2015 5829 009c 324A ldr r2, .L387+12 5830 009e 1A63 str r2, [r3, #48] 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 5831 .loc 1 2892 7 is_stmt 1 view .LVU2016 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; ARM GAS /tmp/cczJHHnF.s page 255 5832 .loc 1 2892 11 is_stmt 0 view .LVU2017 5833 00a0 A26B ldr r2, [r4, #56] 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 5834 .loc 1 2892 42 view .LVU2018 5835 00a2 0023 movs r3, #0 5836 00a4 D362 str r3, [r2, #44] 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5837 .loc 1 2893 7 is_stmt 1 view .LVU2019 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5838 .loc 1 2893 11 is_stmt 0 view .LVU2020 5839 00a6 A26B ldr r2, [r4, #56] 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5840 .loc 1 2893 39 view .LVU2021 5841 00a8 5363 str r3, [r2, #52] 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 5842 .loc 1 2896 7 is_stmt 1 view .LVU2022 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 5843 .loc 1 2896 86 is_stmt 0 view .LVU2023 5844 00aa 2268 ldr r2, [r4] 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 5845 .loc 1 2896 23 view .LVU2024 5846 00ac 238D ldrh r3, [r4, #40] 5847 00ae 2832 adds r2, r2, #40 5848 00b0 0899 ldr r1, [sp, #32] 5849 00b2 A06B ldr r0, [r4, #56] 5850 00b4 FFF7FEFF bl HAL_DMA_Start_IT 5851 .LVL365: 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5852 .loc 1 2914 5 is_stmt 1 view .LVU2025 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5853 .loc 1 2914 8 is_stmt 0 view .LVU2026 5854 00b8 0646 mov r6, r0 5855 00ba 50B3 cbz r0, .L386 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5856 .loc 1 2938 7 is_stmt 1 view .LVU2027 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5857 .loc 1 2938 23 is_stmt 0 view .LVU2028 5858 00bc 2023 movs r3, #32 5859 00be 84F84130 strb r3, [r4, #65] 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5860 .loc 1 2939 7 is_stmt 1 view .LVU2029 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5861 .loc 1 2939 23 is_stmt 0 view .LVU2030 5862 00c2 0022 movs r2, #0 5863 00c4 84F84220 strb r2, [r4, #66] 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5864 .loc 1 2942 7 is_stmt 1 view .LVU2031 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5865 .loc 1 2942 11 is_stmt 0 view .LVU2032 5866 00c8 636C ldr r3, [r4, #68] 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5867 .loc 1 2942 23 view .LVU2033 5868 00ca 43F01003 orr r3, r3, #16 5869 00ce 6364 str r3, [r4, #68] 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5870 .loc 1 2945 7 is_stmt 1 view .LVU2034 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 256 5871 .loc 1 2945 7 view .LVU2035 5872 00d0 84F84020 strb r2, [r4, #64] 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5873 .loc 1 2945 7 view .LVU2036 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5874 .loc 1 2947 7 view .LVU2037 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5875 .loc 1 2947 14 is_stmt 0 view .LVU2038 5876 00d4 0126 movs r6, #1 5877 00d6 38E0 b .L371 5878 .LVL366: 5879 .L372: 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5880 .loc 1 2837 7 is_stmt 1 view .LVU2039 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5881 .loc 1 2837 23 is_stmt 0 view .LVU2040 5882 00d8 4FF40073 mov r3, #512 5883 00dc 6364 str r3, [r4, #68] 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5884 .loc 1 2838 7 is_stmt 1 view .LVU2041 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5885 .loc 1 2838 15 is_stmt 0 view .LVU2042 5886 00de 0126 movs r6, #1 5887 00e0 33E0 b .L371 5888 .LVL367: 5889 .L374: 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5890 .loc 1 2869 7 is_stmt 1 view .LVU2043 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5891 .loc 1 2869 28 is_stmt 0 view .LVU2044 5892 00e2 638D ldrh r3, [r4, #42] 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5893 .loc 1 2869 22 view .LVU2045 5894 00e4 2385 strh r3, [r4, #40] @ movhi 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5895 .loc 1 2870 7 is_stmt 1 view .LVU2046 5896 .LVL368: 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5897 .loc 1 2870 16 is_stmt 0 view .LVU2047 5898 00e6 4FF00078 mov r8, #33554432 5899 00ea C6E7 b .L375 5900 .LVL369: 5901 .L385: 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5902 .loc 1 2878 7 is_stmt 1 view .LVU2048 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5903 .loc 1 2878 7 view .LVU2049 5904 00ec 0023 movs r3, #0 5905 00ee 84F84030 strb r3, [r4, #64] 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5906 .loc 1 2878 7 view .LVU2050 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5907 .loc 1 2879 7 view .LVU2051 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5908 .loc 1 2879 14 is_stmt 0 view .LVU2052 5909 00f2 0126 movs r6, #1 5910 00f4 29E0 b .L371 ARM GAS /tmp/cczJHHnF.s page 257 5911 .L377: 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5912 .loc 1 2902 7 is_stmt 1 view .LVU2053 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5913 .loc 1 2902 23 is_stmt 0 view .LVU2054 5914 00f6 2023 movs r3, #32 5915 00f8 84F84130 strb r3, [r4, #65] 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5916 .loc 1 2903 7 is_stmt 1 view .LVU2055 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5917 .loc 1 2903 23 is_stmt 0 view .LVU2056 5918 00fc 0022 movs r2, #0 5919 00fe 84F84220 strb r2, [r4, #66] 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5920 .loc 1 2906 7 is_stmt 1 view .LVU2057 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5921 .loc 1 2906 11 is_stmt 0 view .LVU2058 5922 0102 636C ldr r3, [r4, #68] 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5923 .loc 1 2906 23 view .LVU2059 5924 0104 43F08003 orr r3, r3, #128 5925 0108 6364 str r3, [r4, #68] 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5926 .loc 1 2909 7 is_stmt 1 view .LVU2060 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5927 .loc 1 2909 7 view .LVU2061 5928 010a 84F84020 strb r2, [r4, #64] 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5929 .loc 1 2909 7 view .LVU2062 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5930 .loc 1 2911 7 view .LVU2063 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5931 .loc 1 2911 14 is_stmt 0 view .LVU2064 5932 010e 0126 movs r6, #1 5933 0110 1BE0 b .L371 5934 .LVL370: 5935 .L386: 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5936 .loc 1 2918 7 is_stmt 1 view .LVU2065 5937 0112 0027 movs r7, #0 5938 0114 0097 str r7, [sp] 5939 0116 4346 mov r3, r8 5940 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 5941 011c 2946 mov r1, r5 5942 011e 2046 mov r0, r4 5943 .LVL371: 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5944 .loc 1 2918 7 is_stmt 0 view .LVU2066 5945 0120 FFF7FEFF bl I2C_TransferConfig 5946 .LVL372: 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5947 .loc 1 2921 7 is_stmt 1 view .LVU2067 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5948 .loc 1 2921 11 is_stmt 0 view .LVU2068 5949 0124 638D ldrh r3, [r4, #42] 5950 0126 9BB2 uxth r3, r3 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 258 5951 .loc 1 2921 30 view .LVU2069 5952 0128 228D ldrh r2, [r4, #40] 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5953 .loc 1 2921 23 view .LVU2070 5954 012a 9B1A subs r3, r3, r2 5955 012c 9BB2 uxth r3, r3 5956 012e 6385 strh r3, [r4, #42] @ movhi 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5957 .loc 1 2924 7 is_stmt 1 view .LVU2071 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5958 .loc 1 2924 7 view .LVU2072 5959 0130 84F84070 strb r7, [r4, #64] 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5960 .loc 1 2924 7 view .LVU2073 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5961 .loc 1 2930 7 view .LVU2074 5962 0134 1021 movs r1, #16 5963 0136 2046 mov r0, r4 5964 0138 FFF7FEFF bl I2C_Enable_IRQ 5965 .LVL373: 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5966 .loc 1 2933 7 view .LVU2075 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5967 .loc 1 2933 11 is_stmt 0 view .LVU2076 5968 013c 2268 ldr r2, [r4] 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5969 .loc 1 2933 21 view .LVU2077 5970 013e 1368 ldr r3, [r2] 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5971 .loc 1 2933 27 view .LVU2078 5972 0140 43F48043 orr r3, r3, #16384 5973 0144 1360 str r3, [r2] 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5974 .loc 1 2950 5 is_stmt 1 view .LVU2079 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5975 .loc 1 2950 12 is_stmt 0 view .LVU2080 5976 0146 00E0 b .L371 5977 .LVL374: 5978 .L380: 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5979 .loc 1 2954 12 view .LVU2081 5980 0148 0226 movs r6, #2 5981 .LVL375: 5982 .L371: 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5983 .loc 1 2956 1 view .LVU2082 5984 014a 3046 mov r0, r6 5985 014c 02B0 add sp, sp, #8 5986 .cfi_remember_state 5987 .cfi_def_cfa_offset 24 5988 @ sp needed 5989 014e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 5990 .LVL376: 5991 .L381: 5992 .cfi_restore_state 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5993 .loc 1 2843 14 view .LVU2083 ARM GAS /tmp/cczJHHnF.s page 259 5994 0152 0226 movs r6, #2 5995 0154 F9E7 b .L371 5996 .L382: 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5997 .loc 1 2847 5 view .LVU2084 5998 0156 0226 movs r6, #2 5999 0158 F7E7 b .L371 6000 .L388: 6001 015a 00BF .align 2 6002 .L387: 6003 015c 0000FFFF .word -65536 6004 0160 00000000 .word I2C_Master_ISR_DMA 6005 0164 00000000 .word I2C_DMAMasterTransmitCplt 6006 0168 00000000 .word I2C_DMAError 6007 .cfi_endproc 6008 .LFE150: 6010 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6011 .align 1 6012 .global HAL_I2C_Mem_Read_DMA 6013 .syntax unified 6014 .thumb 6015 .thumb_func 6017 HAL_I2C_Mem_Read_DMA: 6018 .LVL377: 6019 .LFB151: 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 6020 .loc 1 2972 1 is_stmt 1 view -0 6021 .cfi_startproc 6022 @ args = 8, pretend = 0, frame = 0 6023 @ frame_needed = 0, uses_anonymous_args = 0 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 6024 .loc 1 2972 1 is_stmt 0 view .LVU2086 6025 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 6026 .cfi_def_cfa_offset 24 6027 .cfi_offset 4, -24 6028 .cfi_offset 5, -20 6029 .cfi_offset 6, -16 6030 .cfi_offset 7, -12 6031 .cfi_offset 8, -8 6032 .cfi_offset 14, -4 6033 0004 82B0 sub sp, sp, #8 6034 .cfi_def_cfa_offset 32 6035 0006 0446 mov r4, r0 6036 0008 BDF82480 ldrh r8, [sp, #36] 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 6037 .loc 1 2973 3 is_stmt 1 view .LVU2087 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6038 .loc 1 2974 3 view .LVU2088 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6039 .loc 1 2975 3 view .LVU2089 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6040 .loc 1 2978 3 view .LVU2090 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6041 .loc 1 2980 3 view .LVU2091 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6042 .loc 1 2980 11 is_stmt 0 view .LVU2092 6043 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/cczJHHnF.s page 260 6044 .LVL378: 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6045 .loc 1 2980 11 view .LVU2093 6046 0010 C0B2 uxtb r0, r0 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6047 .loc 1 2980 6 view .LVU2094 6048 0012 2028 cmp r0, #32 6049 0014 40F09980 bne .L399 6050 0018 0D46 mov r5, r1 6051 001a 1746 mov r7, r2 6052 001c 1E46 mov r6, r3 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6053 .loc 1 2982 5 is_stmt 1 view .LVU2095 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6054 .loc 1 2982 8 is_stmt 0 view .LVU2096 6055 001e 089B ldr r3, [sp, #32] 6056 .LVL379: 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6057 .loc 1 2982 8 view .LVU2097 6058 0020 002B cmp r3, #0 6059 0022 59D0 beq .L391 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6060 .loc 1 2982 25 discriminator 1 view .LVU2098 6061 0024 B8F1000F cmp r8, #0 6062 0028 56D0 beq .L391 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6063 .loc 1 2988 5 is_stmt 1 view .LVU2099 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6064 .loc 1 2988 9 is_stmt 0 view .LVU2100 6065 002a 2368 ldr r3, [r4] 6066 002c 9B69 ldr r3, [r3, #24] 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6067 .loc 1 2988 8 view .LVU2101 6068 002e 13F4004F tst r3, #32768 6069 0032 40F08F80 bne .L400 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6070 .loc 1 2994 5 is_stmt 1 view .LVU2102 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6071 .loc 1 2994 5 view .LVU2103 6072 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 6073 003a 012B cmp r3, #1 6074 003c 00F08C80 beq .L401 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6075 .loc 1 2994 5 discriminator 2 view .LVU2104 6076 0040 0123 movs r3, #1 6077 0042 84F84030 strb r3, [r4, #64] 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6078 .loc 1 2994 5 discriminator 2 view .LVU2105 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6079 .loc 1 2997 5 discriminator 2 view .LVU2106 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6080 .loc 1 2997 17 is_stmt 0 discriminator 2 view .LVU2107 6081 0046 FFF7FEFF bl HAL_GetTick 6082 .LVL380: 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6083 .loc 1 2999 5 is_stmt 1 discriminator 2 view .LVU2108 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; ARM GAS /tmp/cczJHHnF.s page 261 6084 .loc 1 2999 23 is_stmt 0 discriminator 2 view .LVU2109 6085 004a 2223 movs r3, #34 6086 004c 84F84130 strb r3, [r4, #65] 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6087 .loc 1 3000 5 is_stmt 1 discriminator 2 view .LVU2110 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6088 .loc 1 3000 23 is_stmt 0 discriminator 2 view .LVU2111 6089 0050 4023 movs r3, #64 6090 0052 84F84230 strb r3, [r4, #66] 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6091 .loc 1 3001 5 is_stmt 1 discriminator 2 view .LVU2112 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6092 .loc 1 3001 23 is_stmt 0 discriminator 2 view .LVU2113 6093 0056 0023 movs r3, #0 6094 0058 6364 str r3, [r4, #68] 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6095 .loc 1 3004 5 is_stmt 1 discriminator 2 view .LVU2114 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6096 .loc 1 3004 23 is_stmt 0 discriminator 2 view .LVU2115 6097 005a 089B ldr r3, [sp, #32] 6098 005c 6362 str r3, [r4, #36] 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6099 .loc 1 3005 5 is_stmt 1 discriminator 2 view .LVU2116 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6100 .loc 1 3005 23 is_stmt 0 discriminator 2 view .LVU2117 6101 005e A4F82A80 strh r8, [r4, #42] @ movhi 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6102 .loc 1 3006 5 is_stmt 1 discriminator 2 view .LVU2118 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6103 .loc 1 3006 23 is_stmt 0 discriminator 2 view .LVU2119 6104 0062 3E4B ldr r3, .L406 6105 0064 E362 str r3, [r4, #44] 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6106 .loc 1 3007 5 is_stmt 1 discriminator 2 view .LVU2120 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6107 .loc 1 3007 23 is_stmt 0 discriminator 2 view .LVU2121 6108 0066 3E4B ldr r3, .L406+4 6109 0068 6363 str r3, [r4, #52] 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6110 .loc 1 3009 5 is_stmt 1 discriminator 2 view .LVU2122 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6111 .loc 1 3009 13 is_stmt 0 discriminator 2 view .LVU2123 6112 006a 638D ldrh r3, [r4, #42] 6113 006c 9BB2 uxth r3, r3 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6114 .loc 1 3009 8 discriminator 2 view .LVU2124 6115 006e FF2B cmp r3, #255 6116 0070 37D9 bls .L393 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6117 .loc 1 3011 7 is_stmt 1 view .LVU2125 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6118 .loc 1 3011 22 is_stmt 0 view .LVU2126 6119 0072 FF23 movs r3, #255 6120 0074 2385 strh r3, [r4, #40] @ movhi 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6121 .loc 1 3012 7 is_stmt 1 view .LVU2127 6122 .LVL381: ARM GAS /tmp/cczJHHnF.s page 262 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6123 .loc 1 3012 16 is_stmt 0 view .LVU2128 6124 0076 4FF08078 mov r8, #16777216 6125 .LVL382: 6126 .L394: 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6127 .loc 1 3021 5 is_stmt 1 view .LVU2129 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6128 .loc 1 3021 9 is_stmt 0 view .LVU2130 6129 007a 0190 str r0, [sp, #4] 6130 007c 1923 movs r3, #25 6131 007e 0093 str r3, [sp] 6132 0080 3346 mov r3, r6 6133 0082 3A46 mov r2, r7 6134 0084 2946 mov r1, r5 6135 0086 2046 mov r0, r4 6136 .LVL383: 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6137 .loc 1 3021 9 view .LVU2131 6138 0088 FFF7FEFF bl I2C_RequestMemoryRead 6139 .LVL384: 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6140 .loc 1 3021 8 view .LVU2132 6141 008c 0028 cmp r0, #0 6142 008e 2DD1 bne .L404 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6143 .loc 1 3028 5 is_stmt 1 view .LVU2133 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6144 .loc 1 3028 13 is_stmt 0 view .LVU2134 6145 0090 E36B ldr r3, [r4, #60] 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6146 .loc 1 3028 8 view .LVU2135 6147 0092 002B cmp r3, #0 6148 0094 2FD0 beq .L396 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6149 .loc 1 3031 7 is_stmt 1 view .LVU2136 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6150 .loc 1 3031 38 is_stmt 0 view .LVU2137 6151 0096 334A ldr r2, .L406+8 6152 0098 9A62 str r2, [r3, #40] 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6153 .loc 1 3034 7 is_stmt 1 view .LVU2138 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6154 .loc 1 3034 11 is_stmt 0 view .LVU2139 6155 009a E36B ldr r3, [r4, #60] 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6156 .loc 1 3034 39 view .LVU2140 6157 009c 324A ldr r2, .L406+12 6158 009e 1A63 str r2, [r3, #48] 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6159 .loc 1 3037 7 is_stmt 1 view .LVU2141 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6160 .loc 1 3037 11 is_stmt 0 view .LVU2142 6161 00a0 E26B ldr r2, [r4, #60] 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6162 .loc 1 3037 42 view .LVU2143 6163 00a2 0023 movs r3, #0 ARM GAS /tmp/cczJHHnF.s page 263 6164 00a4 D362 str r3, [r2, #44] 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6165 .loc 1 3038 7 is_stmt 1 view .LVU2144 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6166 .loc 1 3038 11 is_stmt 0 view .LVU2145 6167 00a6 E26B ldr r2, [r4, #60] 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6168 .loc 1 3038 39 view .LVU2146 6169 00a8 5363 str r3, [r2, #52] 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6170 .loc 1 3041 7 is_stmt 1 view .LVU2147 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6171 .loc 1 3041 69 is_stmt 0 view .LVU2148 6172 00aa 2168 ldr r1, [r4] 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6173 .loc 1 3041 23 view .LVU2149 6174 00ac 238D ldrh r3, [r4, #40] 6175 00ae 089A ldr r2, [sp, #32] 6176 00b0 2431 adds r1, r1, #36 6177 00b2 E06B ldr r0, [r4, #60] 6178 00b4 FFF7FEFF bl HAL_DMA_Start_IT 6179 .LVL385: 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6180 .loc 1 3059 5 is_stmt 1 view .LVU2150 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6181 .loc 1 3059 8 is_stmt 0 view .LVU2151 6182 00b8 0646 mov r6, r0 6183 00ba 50B3 cbz r0, .L405 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6184 .loc 1 3082 7 is_stmt 1 view .LVU2152 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6185 .loc 1 3082 23 is_stmt 0 view .LVU2153 6186 00bc 2023 movs r3, #32 6187 00be 84F84130 strb r3, [r4, #65] 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6188 .loc 1 3083 7 is_stmt 1 view .LVU2154 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6189 .loc 1 3083 23 is_stmt 0 view .LVU2155 6190 00c2 0022 movs r2, #0 6191 00c4 84F84220 strb r2, [r4, #66] 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6192 .loc 1 3086 7 is_stmt 1 view .LVU2156 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6193 .loc 1 3086 11 is_stmt 0 view .LVU2157 6194 00c8 636C ldr r3, [r4, #68] 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6195 .loc 1 3086 23 view .LVU2158 6196 00ca 43F01003 orr r3, r3, #16 6197 00ce 6364 str r3, [r4, #68] 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6198 .loc 1 3089 7 is_stmt 1 view .LVU2159 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6199 .loc 1 3089 7 view .LVU2160 6200 00d0 84F84020 strb r2, [r4, #64] 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6201 .loc 1 3089 7 view .LVU2161 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 264 6202 .loc 1 3091 7 view .LVU2162 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6203 .loc 1 3091 14 is_stmt 0 view .LVU2163 6204 00d4 0126 movs r6, #1 6205 00d6 39E0 b .L390 6206 .LVL386: 6207 .L391: 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6208 .loc 1 2984 7 is_stmt 1 view .LVU2164 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6209 .loc 1 2984 23 is_stmt 0 view .LVU2165 6210 00d8 4FF40073 mov r3, #512 6211 00dc 6364 str r3, [r4, #68] 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6212 .loc 1 2985 7 is_stmt 1 view .LVU2166 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6213 .loc 1 2985 15 is_stmt 0 view .LVU2167 6214 00de 0126 movs r6, #1 6215 00e0 34E0 b .L390 6216 .LVL387: 6217 .L393: 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6218 .loc 1 3016 7 is_stmt 1 view .LVU2168 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6219 .loc 1 3016 28 is_stmt 0 view .LVU2169 6220 00e2 638D ldrh r3, [r4, #42] 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6221 .loc 1 3016 22 view .LVU2170 6222 00e4 2385 strh r3, [r4, #40] @ movhi 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6223 .loc 1 3017 7 is_stmt 1 view .LVU2171 6224 .LVL388: 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6225 .loc 1 3017 16 is_stmt 0 view .LVU2172 6226 00e6 4FF00078 mov r8, #33554432 6227 00ea C6E7 b .L394 6228 .LVL389: 6229 .L404: 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6230 .loc 1 3024 7 is_stmt 1 view .LVU2173 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6231 .loc 1 3024 7 view .LVU2174 6232 00ec 0023 movs r3, #0 6233 00ee 84F84030 strb r3, [r4, #64] 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6234 .loc 1 3024 7 view .LVU2175 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6235 .loc 1 3025 7 view .LVU2176 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6236 .loc 1 3025 14 is_stmt 0 view .LVU2177 6237 00f2 0126 movs r6, #1 6238 00f4 2AE0 b .L390 6239 .L396: 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6240 .loc 1 3047 7 is_stmt 1 view .LVU2178 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6241 .loc 1 3047 23 is_stmt 0 view .LVU2179 ARM GAS /tmp/cczJHHnF.s page 265 6242 00f6 2023 movs r3, #32 6243 00f8 84F84130 strb r3, [r4, #65] 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6244 .loc 1 3048 7 is_stmt 1 view .LVU2180 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6245 .loc 1 3048 23 is_stmt 0 view .LVU2181 6246 00fc 0022 movs r2, #0 6247 00fe 84F84220 strb r2, [r4, #66] 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6248 .loc 1 3051 7 is_stmt 1 view .LVU2182 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6249 .loc 1 3051 11 is_stmt 0 view .LVU2183 6250 0102 636C ldr r3, [r4, #68] 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6251 .loc 1 3051 23 view .LVU2184 6252 0104 43F08003 orr r3, r3, #128 6253 0108 6364 str r3, [r4, #68] 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6254 .loc 1 3054 7 is_stmt 1 view .LVU2185 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6255 .loc 1 3054 7 view .LVU2186 6256 010a 84F84020 strb r2, [r4, #64] 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6257 .loc 1 3054 7 view .LVU2187 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6258 .loc 1 3056 7 view .LVU2188 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6259 .loc 1 3056 14 is_stmt 0 view .LVU2189 6260 010e 0126 movs r6, #1 6261 0110 1CE0 b .L390 6262 .LVL390: 6263 .L405: 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6264 .loc 1 3062 7 is_stmt 1 view .LVU2190 6265 0112 164B ldr r3, .L406+16 6266 0114 0093 str r3, [sp] 6267 0116 4346 mov r3, r8 6268 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 6269 011c 2946 mov r1, r5 6270 011e 2046 mov r0, r4 6271 .LVL391: 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6272 .loc 1 3062 7 is_stmt 0 view .LVU2191 6273 0120 FFF7FEFF bl I2C_TransferConfig 6274 .LVL392: 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6275 .loc 1 3065 7 is_stmt 1 view .LVU2192 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6276 .loc 1 3065 11 is_stmt 0 view .LVU2193 6277 0124 638D ldrh r3, [r4, #42] 6278 0126 9BB2 uxth r3, r3 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6279 .loc 1 3065 30 view .LVU2194 6280 0128 228D ldrh r2, [r4, #40] 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6281 .loc 1 3065 23 view .LVU2195 6282 012a 9B1A subs r3, r3, r2 ARM GAS /tmp/cczJHHnF.s page 266 6283 012c 9BB2 uxth r3, r3 6284 012e 6385 strh r3, [r4, #42] @ movhi 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6285 .loc 1 3068 7 is_stmt 1 view .LVU2196 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6286 .loc 1 3068 7 view .LVU2197 6287 0130 0023 movs r3, #0 6288 0132 84F84030 strb r3, [r4, #64] 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6289 .loc 1 3068 7 view .LVU2198 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6290 .loc 1 3074 7 view .LVU2199 6291 0136 1021 movs r1, #16 6292 0138 2046 mov r0, r4 6293 013a FFF7FEFF bl I2C_Enable_IRQ 6294 .LVL393: 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6295 .loc 1 3077 7 view .LVU2200 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6296 .loc 1 3077 11 is_stmt 0 view .LVU2201 6297 013e 2268 ldr r2, [r4] 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6298 .loc 1 3077 21 view .LVU2202 6299 0140 1368 ldr r3, [r2] 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6300 .loc 1 3077 27 view .LVU2203 6301 0142 43F40043 orr r3, r3, #32768 6302 0146 1360 str r3, [r2] 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6303 .loc 1 3094 5 is_stmt 1 view .LVU2204 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6304 .loc 1 3094 12 is_stmt 0 view .LVU2205 6305 0148 00E0 b .L390 6306 .LVL394: 6307 .L399: 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6308 .loc 1 3098 12 view .LVU2206 6309 014a 0226 movs r6, #2 6310 .LVL395: 6311 .L390: 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6312 .loc 1 3100 1 view .LVU2207 6313 014c 3046 mov r0, r6 6314 014e 02B0 add sp, sp, #8 6315 .cfi_remember_state 6316 .cfi_def_cfa_offset 24 6317 @ sp needed 6318 0150 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 6319 .LVL396: 6320 .L400: 6321 .cfi_restore_state 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6322 .loc 1 2990 14 view .LVU2208 6323 0154 0226 movs r6, #2 6324 0156 F9E7 b .L390 6325 .L401: 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 267 6326 .loc 1 2994 5 view .LVU2209 6327 0158 0226 movs r6, #2 6328 015a F7E7 b .L390 6329 .L407: 6330 .align 2 6331 .L406: 6332 015c 0000FFFF .word -65536 6333 0160 00000000 .word I2C_Master_ISR_DMA 6334 0164 00000000 .word I2C_DMAMasterReceiveCplt 6335 0168 00000000 .word I2C_DMAError 6336 016c 00240080 .word -2147474432 6337 .cfi_endproc 6338 .LFE151: 6340 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6341 .align 1 6342 .global HAL_I2C_IsDeviceReady 6343 .syntax unified 6344 .thumb 6345 .thumb_func 6347 HAL_I2C_IsDeviceReady: 6348 .LVL397: 6349 .LFB152: 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 6350 .loc 1 3115 1 is_stmt 1 view -0 6351 .cfi_startproc 6352 @ args = 0, pretend = 0, frame = 8 6353 @ frame_needed = 0, uses_anonymous_args = 0 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 6354 .loc 1 3115 1 is_stmt 0 view .LVU2211 6355 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6356 .cfi_def_cfa_offset 28 6357 .cfi_offset 4, -28 6358 .cfi_offset 5, -24 6359 .cfi_offset 6, -20 6360 .cfi_offset 7, -16 6361 .cfi_offset 8, -12 6362 .cfi_offset 9, -8 6363 .cfi_offset 14, -4 6364 0004 85B0 sub sp, sp, #20 6365 .cfi_def_cfa_offset 48 6366 0006 1D46 mov r5, r3 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6367 .loc 1 3116 3 is_stmt 1 view .LVU2212 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6368 .loc 1 3118 3 view .LVU2213 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6369 .loc 1 3118 17 is_stmt 0 view .LVU2214 6370 0008 0023 movs r3, #0 6371 .LVL398: 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6372 .loc 1 3118 17 view .LVU2215 6373 000a 0393 str r3, [sp, #12] 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2; 6374 .loc 1 3120 3 is_stmt 1 view .LVU2216 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6375 .loc 1 3121 3 view .LVU2217 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 268 6376 .loc 1 3123 3 view .LVU2218 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6377 .loc 1 3123 11 is_stmt 0 view .LVU2219 6378 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6379 0010 DBB2 uxtb r3, r3 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6380 .loc 1 3123 6 view .LVU2220 6381 0012 202B cmp r3, #32 6382 0014 40F09E80 bne .L420 6383 0018 0646 mov r6, r0 6384 001a 8946 mov r9, r1 6385 001c 9046 mov r8, r2 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6386 .loc 1 3125 5 is_stmt 1 view .LVU2221 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6387 .loc 1 3125 9 is_stmt 0 view .LVU2222 6388 001e 0368 ldr r3, [r0] 6389 0020 9B69 ldr r3, [r3, #24] 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6390 .loc 1 3125 8 view .LVU2223 6391 0022 13F4004F tst r3, #32768 6392 0026 40F09780 bne .L421 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6393 .loc 1 3131 5 is_stmt 1 view .LVU2224 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6394 .loc 1 3131 5 view .LVU2225 6395 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6396 002e 012B cmp r3, #1 6397 0030 00F09480 beq .L422 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6398 .loc 1 3131 5 discriminator 2 view .LVU2226 6399 0034 0123 movs r3, #1 6400 0036 80F84030 strb r3, [r0, #64] 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6401 .loc 1 3131 5 discriminator 2 view .LVU2227 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6402 .loc 1 3133 5 discriminator 2 view .LVU2228 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6403 .loc 1 3133 17 is_stmt 0 discriminator 2 view .LVU2229 6404 003a 2423 movs r3, #36 6405 003c 80F84130 strb r3, [r0, #65] 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6406 .loc 1 3134 5 is_stmt 1 discriminator 2 view .LVU2230 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6407 .loc 1 3134 21 is_stmt 0 discriminator 2 view .LVU2231 6408 0040 0023 movs r3, #0 6409 0042 4364 str r3, [r0, #68] 6410 0044 44E0 b .L419 6411 .LVL399: 6412 .L430: 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6413 .loc 1 3139 29 discriminator 1 view .LVU2232 6414 0046 C9F30903 ubfx r3, r9, #0, #10 6415 004a 43F00073 orr r3, r3, #33554432 6416 004e 43F40053 orr r3, r3, #8192 6417 0052 44E0 b .L411 6418 .LVL400: ARM GAS /tmp/cczJHHnF.s page 269 6419 .L413: 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6420 .loc 1 3167 9 is_stmt 1 view .LVU2233 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6421 .loc 1 3167 16 is_stmt 0 view .LVU2234 6422 0054 3368 ldr r3, [r6] 6423 0056 9C69 ldr r4, [r3, #24] 6424 .LVL401: 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6425 .loc 1 3167 16 view .LVU2235 6426 0058 C4F34014 ubfx r4, r4, #5, #1 6427 .LVL402: 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6428 .loc 1 3168 9 is_stmt 1 view .LVU2236 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6429 .loc 1 3168 16 is_stmt 0 view .LVU2237 6430 005c 9B69 ldr r3, [r3, #24] 6431 005e C3F30013 ubfx r3, r3, #4, #1 6432 .LVL403: 6433 .L412: 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6434 .loc 1 3148 30 is_stmt 1 view .LVU2238 6435 0062 C4B9 cbnz r4, .L415 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6436 .loc 1 3148 30 is_stmt 0 discriminator 1 view .LVU2239 6437 0064 BBB9 cbnz r3, .L415 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6438 .loc 1 3150 9 is_stmt 1 view .LVU2240 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6439 .loc 1 3150 12 is_stmt 0 view .LVU2241 6440 0066 B5F1FF3F cmp r5, #-1 6441 006a F3D0 beq .L413 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6442 .loc 1 3152 11 is_stmt 1 view .LVU2242 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6443 .loc 1 3152 17 is_stmt 0 view .LVU2243 6444 006c FFF7FEFF bl HAL_GetTick 6445 .LVL404: 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6446 .loc 1 3152 31 view .LVU2244 6447 0070 C01B subs r0, r0, r7 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6448 .loc 1 3152 14 view .LVU2245 6449 0072 A842 cmp r0, r5 6450 0074 01D8 bhi .L414 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6451 .loc 1 3152 55 discriminator 1 view .LVU2246 6452 0076 002D cmp r5, #0 6453 0078 ECD1 bne .L413 6454 .L414: 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6455 .loc 1 3155 13 is_stmt 1 view .LVU2247 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6456 .loc 1 3155 25 is_stmt 0 view .LVU2248 6457 007a 2023 movs r3, #32 6458 007c 86F84130 strb r3, [r6, #65] 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 270 6459 .loc 1 3158 13 is_stmt 1 view .LVU2249 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6460 .loc 1 3158 17 is_stmt 0 view .LVU2250 6461 0080 736C ldr r3, [r6, #68] 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6462 .loc 1 3158 29 view .LVU2251 6463 0082 43F02003 orr r3, r3, #32 6464 0086 7364 str r3, [r6, #68] 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6465 .loc 1 3161 13 is_stmt 1 view .LVU2252 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6466 .loc 1 3161 13 view .LVU2253 6467 0088 0023 movs r3, #0 6468 008a 86F84030 strb r3, [r6, #64] 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6469 .loc 1 3161 13 view .LVU2254 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6470 .loc 1 3163 13 view .LVU2255 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6471 .loc 1 3163 20 is_stmt 0 view .LVU2256 6472 008e 0120 movs r0, #1 6473 .LVL405: 6474 .L409: 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6475 .loc 1 3241 1 view .LVU2257 6476 0090 05B0 add sp, sp, #20 6477 .cfi_remember_state 6478 .cfi_def_cfa_offset 28 6479 @ sp needed 6480 0092 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 6481 .LVL406: 6482 .L415: 6483 .cfi_restore_state 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6484 .loc 1 3172 7 is_stmt 1 view .LVU2258 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6485 .loc 1 3172 11 is_stmt 0 view .LVU2259 6486 0096 3368 ldr r3, [r6] 6487 .LVL407: 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6488 .loc 1 3172 11 view .LVU2260 6489 0098 9B69 ldr r3, [r3, #24] 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6490 .loc 1 3172 10 view .LVU2261 6491 009a 13F0100F tst r3, #16 6492 009e 2BD0 beq .L427 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6493 .loc 1 3194 9 is_stmt 1 view .LVU2262 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6494 .loc 1 3194 13 is_stmt 0 view .LVU2263 6495 00a0 0097 str r7, [sp] 6496 00a2 2B46 mov r3, r5 6497 00a4 0022 movs r2, #0 6498 00a6 2021 movs r1, #32 6499 00a8 3046 mov r0, r6 6500 00aa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6501 .LVL408: ARM GAS /tmp/cczJHHnF.s page 271 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6502 .loc 1 3194 12 view .LVU2264 6503 00ae 0028 cmp r0, #0 6504 00b0 58D1 bne .L424 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6505 .loc 1 3200 9 is_stmt 1 view .LVU2265 6506 00b2 3368 ldr r3, [r6] 6507 00b4 1022 movs r2, #16 6508 00b6 DA61 str r2, [r3, #28] 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6509 .loc 1 3203 9 view .LVU2266 6510 00b8 3368 ldr r3, [r6] 6511 00ba 2022 movs r2, #32 6512 00bc DA61 str r2, [r3, #28] 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6513 .loc 1 3207 7 view .LVU2267 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6514 .loc 1 3207 22 is_stmt 0 view .LVU2268 6515 00be 039B ldr r3, [sp, #12] 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6516 .loc 1 3207 10 view .LVU2269 6517 00c0 4345 cmp r3, r8 6518 00c2 2AD0 beq .L428 6519 .L418: 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials); 6520 .loc 1 3223 7 is_stmt 1 view .LVU2270 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials); 6521 .loc 1 3223 17 is_stmt 0 view .LVU2271 6522 00c4 039B ldr r3, [sp, #12] 6523 00c6 0133 adds r3, r3, #1 6524 00c8 0393 str r3, [sp, #12] 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6525 .loc 1 3224 25 is_stmt 1 view .LVU2272 6526 00ca 039B ldr r3, [sp, #12] 6527 00cc 4345 cmp r3, r8 6528 00ce 35D2 bcs .L429 6529 .LVL409: 6530 .L419: 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6531 .loc 1 3136 5 view .LVU2273 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6532 .loc 1 3139 7 view .LVU2274 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6533 .loc 1 3139 29 is_stmt 0 view .LVU2275 6534 00d0 F368 ldr r3, [r6, #12] 6535 00d2 012B cmp r3, #1 6536 00d4 B7D0 beq .L430 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6537 .loc 1 3139 29 discriminator 2 view .LVU2276 6538 00d6 C9F30903 ubfx r3, r9, #0, #10 6539 00da 43F42053 orr r3, r3, #10240 6540 .L411: 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6541 .loc 1 3139 11 discriminator 4 view .LVU2277 6542 00de 3268 ldr r2, [r6] 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6543 .loc 1 3139 27 discriminator 4 view .LVU2278 ARM GAS /tmp/cczJHHnF.s page 272 6544 00e0 5360 str r3, [r2, #4] 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6545 .loc 1 3143 7 is_stmt 1 discriminator 4 view .LVU2279 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6546 .loc 1 3143 19 is_stmt 0 discriminator 4 view .LVU2280 6547 00e2 FFF7FEFF bl HAL_GetTick 6548 .LVL410: 6549 00e6 0746 mov r7, r0 6550 .LVL411: 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6551 .loc 1 3145 7 is_stmt 1 discriminator 4 view .LVU2281 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6552 .loc 1 3145 14 is_stmt 0 discriminator 4 view .LVU2282 6553 00e8 3368 ldr r3, [r6] 6554 00ea 9C69 ldr r4, [r3, #24] 6555 00ec C4F34014 ubfx r4, r4, #5, #1 6556 .LVL412: 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6557 .loc 1 3146 7 is_stmt 1 discriminator 4 view .LVU2283 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6558 .loc 1 3146 14 is_stmt 0 discriminator 4 view .LVU2284 6559 00f0 9B69 ldr r3, [r3, #24] 6560 00f2 C3F30013 ubfx r3, r3, #4, #1 6561 .LVL413: 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6562 .loc 1 3148 7 is_stmt 1 discriminator 4 view .LVU2285 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6563 .loc 1 3148 13 is_stmt 0 discriminator 4 view .LVU2286 6564 00f6 B4E7 b .L412 6565 .LVL414: 6566 .L427: 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6567 .loc 1 3175 9 is_stmt 1 view .LVU2287 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6568 .loc 1 3175 13 is_stmt 0 view .LVU2288 6569 00f8 0097 str r7, [sp] 6570 00fa 2B46 mov r3, r5 6571 00fc 0022 movs r2, #0 6572 00fe 2021 movs r1, #32 6573 0100 3046 mov r0, r6 6574 0102 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6575 .LVL415: 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6576 .loc 1 3175 12 view .LVU2289 6577 0106 58BB cbnz r0, .L423 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6578 .loc 1 3181 9 is_stmt 1 view .LVU2290 6579 0108 3268 ldr r2, [r6] 6580 010a 2023 movs r3, #32 6581 010c D361 str r3, [r2, #28] 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6582 .loc 1 3184 9 view .LVU2291 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6583 .loc 1 3184 21 is_stmt 0 view .LVU2292 6584 010e 86F84130 strb r3, [r6, #65] 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6585 .loc 1 3187 9 is_stmt 1 view .LVU2293 ARM GAS /tmp/cczJHHnF.s page 273 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6586 .loc 1 3187 9 view .LVU2294 6587 0112 0023 movs r3, #0 6588 0114 86F84030 strb r3, [r6, #64] 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6589 .loc 1 3187 9 view .LVU2295 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6590 .loc 1 3189 9 view .LVU2296 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6591 .loc 1 3189 16 is_stmt 0 view .LVU2297 6592 0118 BAE7 b .L409 6593 .L428: 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6594 .loc 1 3210 9 is_stmt 1 view .LVU2298 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6595 .loc 1 3210 13 is_stmt 0 view .LVU2299 6596 011a 3268 ldr r2, [r6] 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6597 .loc 1 3210 23 view .LVU2300 6598 011c 5368 ldr r3, [r2, #4] 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6599 .loc 1 3210 29 view .LVU2301 6600 011e 43F48043 orr r3, r3, #16384 6601 0122 5360 str r3, [r2, #4] 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6602 .loc 1 3213 9 is_stmt 1 view .LVU2302 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6603 .loc 1 3213 13 is_stmt 0 view .LVU2303 6604 0124 0097 str r7, [sp] 6605 0126 2B46 mov r3, r5 6606 0128 0022 movs r2, #0 6607 012a 2021 movs r1, #32 6608 012c 3046 mov r0, r6 6609 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6610 .LVL416: 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6611 .loc 1 3213 12 view .LVU2304 6612 0132 C8B9 cbnz r0, .L425 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6613 .loc 1 3219 9 is_stmt 1 view .LVU2305 6614 0134 3368 ldr r3, [r6] 6615 0136 2022 movs r2, #32 6616 0138 DA61 str r2, [r3, #28] 6617 013a C3E7 b .L418 6618 .L429: 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6619 .loc 1 3227 5 view .LVU2306 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6620 .loc 1 3227 17 is_stmt 0 view .LVU2307 6621 013c 2023 movs r3, #32 6622 013e 86F84130 strb r3, [r6, #65] 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6623 .loc 1 3230 5 is_stmt 1 view .LVU2308 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6624 .loc 1 3230 9 is_stmt 0 view .LVU2309 6625 0142 736C ldr r3, [r6, #68] 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 274 6626 .loc 1 3230 21 view .LVU2310 6627 0144 43F02003 orr r3, r3, #32 6628 0148 7364 str r3, [r6, #68] 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6629 .loc 1 3233 5 is_stmt 1 view .LVU2311 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6630 .loc 1 3233 5 view .LVU2312 6631 014a 0023 movs r3, #0 6632 014c 86F84030 strb r3, [r6, #64] 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6633 .loc 1 3233 5 view .LVU2313 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6634 .loc 1 3235 5 view .LVU2314 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6635 .loc 1 3235 12 is_stmt 0 view .LVU2315 6636 0150 0120 movs r0, #1 6637 0152 9DE7 b .L409 6638 .LVL417: 6639 .L420: 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6640 .loc 1 3239 12 view .LVU2316 6641 0154 0220 movs r0, #2 6642 .LVL418: 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6643 .loc 1 3239 12 view .LVU2317 6644 0156 9BE7 b .L409 6645 .LVL419: 6646 .L421: 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6647 .loc 1 3127 14 view .LVU2318 6648 0158 0220 movs r0, #2 6649 .LVL420: 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6650 .loc 1 3127 14 view .LVU2319 6651 015a 99E7 b .L409 6652 .LVL421: 6653 .L422: 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6654 .loc 1 3131 5 view .LVU2320 6655 015c 0220 movs r0, #2 6656 .LVL422: 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6657 .loc 1 3131 5 view .LVU2321 6658 015e 97E7 b .L409 6659 .LVL423: 6660 .L423: 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6661 .loc 1 3177 18 view .LVU2322 6662 0160 0120 movs r0, #1 6663 0162 95E7 b .L409 6664 .L424: 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6665 .loc 1 3196 18 view .LVU2323 6666 0164 0120 movs r0, #1 6667 0166 93E7 b .L409 6668 .L425: 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 275 6669 .loc 1 3215 18 view .LVU2324 6670 0168 0120 movs r0, #1 6671 016a 91E7 b .L409 6672 .cfi_endproc 6673 .LFE152: 6675 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 6676 .align 1 6677 .global HAL_I2C_Master_Seq_Transmit_IT 6678 .syntax unified 6679 .thumb 6680 .thumb_func 6682 HAL_I2C_Master_Seq_Transmit_IT: 6683 .LVL424: 6684 .LFB153: 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 6685 .loc 1 3257 1 is_stmt 1 view -0 6686 .cfi_startproc 6687 @ args = 4, pretend = 0, frame = 0 6688 @ frame_needed = 0, uses_anonymous_args = 0 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 6689 .loc 1 3257 1 is_stmt 0 view .LVU2326 6690 0000 70B5 push {r4, r5, r6, lr} 6691 .cfi_def_cfa_offset 16 6692 .cfi_offset 4, -16 6693 .cfi_offset 5, -12 6694 .cfi_offset 6, -8 6695 .cfi_offset 14, -4 6696 0002 82B0 sub sp, sp, #8 6697 .cfi_def_cfa_offset 24 6698 0004 0446 mov r4, r0 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 6699 .loc 1 3258 3 is_stmt 1 view .LVU2327 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6700 .loc 1 3259 3 view .LVU2328 6701 .LVL425: 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6702 .loc 1 3262 3 view .LVU2329 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6703 .loc 1 3264 3 view .LVU2330 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6704 .loc 1 3264 11 is_stmt 0 view .LVU2331 6705 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6706 .LVL426: 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6707 .loc 1 3264 11 view .LVU2332 6708 000a C0B2 uxtb r0, r0 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6709 .loc 1 3264 6 view .LVU2333 6710 000c 2028 cmp r0, #32 6711 000e 49D1 bne .L437 6712 0010 0D46 mov r5, r1 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6713 .loc 1 3267 5 is_stmt 1 view .LVU2334 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6714 .loc 1 3267 5 view .LVU2335 6715 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 6716 .LVL427: ARM GAS /tmp/cczJHHnF.s page 276 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6717 .loc 1 3267 5 is_stmt 0 view .LVU2336 6718 0016 0129 cmp r1, #1 6719 0018 46D0 beq .L438 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6720 .loc 1 3267 5 is_stmt 1 discriminator 2 view .LVU2337 6721 001a 0121 movs r1, #1 6722 001c 84F84010 strb r1, [r4, #64] 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6723 .loc 1 3267 5 discriminator 2 view .LVU2338 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6724 .loc 1 3269 5 discriminator 2 view .LVU2339 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6725 .loc 1 3269 21 is_stmt 0 discriminator 2 view .LVU2340 6726 0020 2121 movs r1, #33 6727 0022 84F84110 strb r1, [r4, #65] 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6728 .loc 1 3270 5 is_stmt 1 discriminator 2 view .LVU2341 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6729 .loc 1 3270 21 is_stmt 0 discriminator 2 view .LVU2342 6730 0026 1021 movs r1, #16 6731 0028 84F84210 strb r1, [r4, #66] 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6732 .loc 1 3271 5 is_stmt 1 discriminator 2 view .LVU2343 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6733 .loc 1 3271 21 is_stmt 0 discriminator 2 view .LVU2344 6734 002c 0021 movs r1, #0 6735 002e 6164 str r1, [r4, #68] 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6736 .loc 1 3274 5 is_stmt 1 discriminator 2 view .LVU2345 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6737 .loc 1 3274 23 is_stmt 0 discriminator 2 view .LVU2346 6738 0030 6262 str r2, [r4, #36] 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 6739 .loc 1 3275 5 is_stmt 1 discriminator 2 view .LVU2347 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 6740 .loc 1 3275 23 is_stmt 0 discriminator 2 view .LVU2348 6741 0032 6385 strh r3, [r4, #42] @ movhi 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 6742 .loc 1 3276 5 is_stmt 1 discriminator 2 view .LVU2349 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 6743 .loc 1 3276 23 is_stmt 0 discriminator 2 view .LVU2350 6744 0034 069B ldr r3, [sp, #24] 6745 .LVL428: 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 6746 .loc 1 3276 23 discriminator 2 view .LVU2351 6747 0036 E362 str r3, [r4, #44] 6748 .LVL429: 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6749 .loc 1 3277 5 is_stmt 1 discriminator 2 view .LVU2352 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6750 .loc 1 3277 23 is_stmt 0 discriminator 2 view .LVU2353 6751 0038 1C4B ldr r3, .L442 6752 003a 6363 str r3, [r4, #52] 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6753 .loc 1 3280 5 is_stmt 1 discriminator 2 view .LVU2354 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 277 6754 .loc 1 3280 13 is_stmt 0 discriminator 2 view .LVU2355 6755 003c 638D ldrh r3, [r4, #42] 6756 003e 9BB2 uxth r3, r3 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6757 .loc 1 3280 8 discriminator 2 view .LVU2356 6758 0040 FF2B cmp r3, #255 6759 0042 0ED9 bls .L433 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6760 .loc 1 3282 7 is_stmt 1 view .LVU2357 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6761 .loc 1 3282 22 is_stmt 0 view .LVU2358 6762 0044 FF23 movs r3, #255 6763 0046 2385 strh r3, [r4, #40] @ movhi 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6764 .loc 1 3283 7 is_stmt 1 view .LVU2359 6765 .LVL430: 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6766 .loc 1 3283 16 is_stmt 0 view .LVU2360 6767 0048 4FF08076 mov r6, #16777216 6768 .LVL431: 6769 .L434: 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 6770 .loc 1 3294 5 is_stmt 1 view .LVU2361 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 6771 .loc 1 3294 14 is_stmt 0 view .LVU2362 6772 004c 236B ldr r3, [r4, #48] 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 6773 .loc 1 3294 8 view .LVU2363 6774 004e 112B cmp r3, #17 6775 0050 0BD1 bne .L435 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6776 .loc 1 3295 10 view .LVU2364 6777 0052 069B ldr r3, [sp, #24] 6778 0054 AA2B cmp r3, #170 6779 0056 08D0 beq .L435 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6780 .loc 1 3295 10 discriminator 2 view .LVU2365 6781 0058 B3F52A4F cmp r3, #43520 6782 005c 05D0 beq .L435 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6783 .loc 1 3297 19 view .LVU2366 6784 005e 0023 movs r3, #0 6785 0060 0CE0 b .L436 6786 .LVL432: 6787 .L433: 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6788 .loc 1 3287 7 is_stmt 1 view .LVU2367 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6789 .loc 1 3287 28 is_stmt 0 view .LVU2368 6790 0062 638D ldrh r3, [r4, #42] 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6791 .loc 1 3287 22 view .LVU2369 6792 0064 2385 strh r3, [r4, #40] @ movhi 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6793 .loc 1 3288 7 is_stmt 1 view .LVU2370 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6794 .loc 1 3288 16 is_stmt 0 view .LVU2371 ARM GAS /tmp/cczJHHnF.s page 278 6795 0066 E66A ldr r6, [r4, #44] 6796 .LVL433: 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6797 .loc 1 3288 16 view .LVU2372 6798 0068 F0E7 b .L434 6799 .L435: 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6800 .loc 1 3302 7 is_stmt 1 view .LVU2373 6801 006a 2046 mov r0, r4 6802 006c FFF7FEFF bl I2C_ConvertOtherXferOptions 6803 .LVL434: 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6804 .loc 1 3305 7 view .LVU2374 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6805 .loc 1 3305 15 is_stmt 0 view .LVU2375 6806 0070 638D ldrh r3, [r4, #42] 6807 0072 9BB2 uxth r3, r3 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6808 .loc 1 3305 10 view .LVU2376 6809 0074 FF2B cmp r3, #255 6810 0076 13D8 bhi .L440 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6811 .loc 1 3307 9 is_stmt 1 view .LVU2377 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6812 .loc 1 3307 18 is_stmt 0 view .LVU2378 6813 0078 E66A ldr r6, [r4, #44] 6814 .LVL435: 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6815 .loc 1 3259 12 view .LVU2379 6816 007a 0D4B ldr r3, .L442+4 6817 .L436: 6818 .LVL436: 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6819 .loc 1 3312 5 is_stmt 1 view .LVU2380 6820 007c 0093 str r3, [sp] 6821 007e 3346 mov r3, r6 6822 .LVL437: 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6823 .loc 1 3312 5 is_stmt 0 view .LVU2381 6824 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 6825 0084 2946 mov r1, r5 6826 0086 2046 mov r0, r4 6827 0088 FFF7FEFF bl I2C_TransferConfig 6828 .LVL438: 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6829 .loc 1 3315 5 is_stmt 1 view .LVU2382 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6830 .loc 1 3315 5 view .LVU2383 6831 008c 0025 movs r5, #0 6832 008e 84F84050 strb r5, [r4, #64] 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6833 .loc 1 3315 5 view .LVU2384 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6834 .loc 1 3320 5 view .LVU2385 6835 0092 0121 movs r1, #1 6836 0094 2046 mov r0, r4 6837 0096 FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/cczJHHnF.s page 279 6838 .LVL439: 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6839 .loc 1 3322 5 view .LVU2386 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6840 .loc 1 3322 12 is_stmt 0 view .LVU2387 6841 009a 2846 mov r0, r5 6842 .LVL440: 6843 .L432: 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6844 .loc 1 3328 1 view .LVU2388 6845 009c 02B0 add sp, sp, #8 6846 .cfi_remember_state 6847 .cfi_def_cfa_offset 16 6848 @ sp needed 6849 009e 70BD pop {r4, r5, r6, pc} 6850 .LVL441: 6851 .L440: 6852 .cfi_restore_state 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6853 .loc 1 3259 12 view .LVU2389 6854 00a0 034B ldr r3, .L442+4 6855 00a2 EBE7 b .L436 6856 .LVL442: 6857 .L437: 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6858 .loc 1 3326 12 view .LVU2390 6859 00a4 0220 movs r0, #2 6860 00a6 F9E7 b .L432 6861 .LVL443: 6862 .L438: 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6863 .loc 1 3267 5 view .LVU2391 6864 00a8 0220 movs r0, #2 6865 00aa F7E7 b .L432 6866 .L443: 6867 .align 2 6868 .L442: 6869 00ac 00000000 .word I2C_Master_ISR_IT 6870 00b0 00200080 .word -2147475456 6871 .cfi_endproc 6872 .LFE153: 6874 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 6875 .align 1 6876 .global HAL_I2C_Master_Seq_Transmit_DMA 6877 .syntax unified 6878 .thumb 6879 .thumb_func 6881 HAL_I2C_Master_Seq_Transmit_DMA: 6882 .LVL444: 6883 .LFB154: 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 6884 .loc 1 3344 1 is_stmt 1 view -0 6885 .cfi_startproc 6886 @ args = 4, pretend = 0, frame = 0 6887 @ frame_needed = 0, uses_anonymous_args = 0 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 6888 .loc 1 3344 1 is_stmt 0 view .LVU2393 ARM GAS /tmp/cczJHHnF.s page 280 6889 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 6890 .cfi_def_cfa_offset 24 6891 .cfi_offset 4, -24 6892 .cfi_offset 5, -20 6893 .cfi_offset 6, -16 6894 .cfi_offset 7, -12 6895 .cfi_offset 8, -8 6896 .cfi_offset 14, -4 6897 0004 82B0 sub sp, sp, #8 6898 .cfi_def_cfa_offset 32 6899 0006 0446 mov r4, r0 6900 0008 1546 mov r5, r2 6901 000a 089A ldr r2, [sp, #32] 6902 .LVL445: 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 6903 .loc 1 3345 3 is_stmt 1 view .LVU2394 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6904 .loc 1 3346 3 view .LVU2395 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6905 .loc 1 3347 3 view .LVU2396 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6906 .loc 1 3350 3 view .LVU2397 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6907 .loc 1 3352 3 view .LVU2398 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6908 .loc 1 3352 11 is_stmt 0 view .LVU2399 6909 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6910 .LVL446: 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6911 .loc 1 3352 11 view .LVU2400 6912 0010 C0B2 uxtb r0, r0 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6913 .loc 1 3352 6 view .LVU2401 6914 0012 2028 cmp r0, #32 6915 0014 40F09D80 bne .L455 6916 0018 0E46 mov r6, r1 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6917 .loc 1 3355 5 is_stmt 1 view .LVU2402 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6918 .loc 1 3355 5 view .LVU2403 6919 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 6920 .LVL447: 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6921 .loc 1 3355 5 is_stmt 0 view .LVU2404 6922 001e 0129 cmp r1, #1 6923 0020 00F09B80 beq .L456 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6924 .loc 1 3355 5 is_stmt 1 discriminator 2 view .LVU2405 6925 0024 0121 movs r1, #1 6926 0026 84F84010 strb r1, [r4, #64] 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6927 .loc 1 3355 5 discriminator 2 view .LVU2406 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6928 .loc 1 3357 5 discriminator 2 view .LVU2407 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6929 .loc 1 3357 21 is_stmt 0 discriminator 2 view .LVU2408 6930 002a 2121 movs r1, #33 ARM GAS /tmp/cczJHHnF.s page 281 6931 002c 84F84110 strb r1, [r4, #65] 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6932 .loc 1 3358 5 is_stmt 1 discriminator 2 view .LVU2409 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6933 .loc 1 3358 21 is_stmt 0 discriminator 2 view .LVU2410 6934 0030 1021 movs r1, #16 6935 0032 84F84210 strb r1, [r4, #66] 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6936 .loc 1 3359 5 is_stmt 1 discriminator 2 view .LVU2411 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6937 .loc 1 3359 21 is_stmt 0 discriminator 2 view .LVU2412 6938 0036 0021 movs r1, #0 6939 0038 6164 str r1, [r4, #68] 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6940 .loc 1 3362 5 is_stmt 1 discriminator 2 view .LVU2413 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6941 .loc 1 3362 23 is_stmt 0 discriminator 2 view .LVU2414 6942 003a 6562 str r5, [r4, #36] 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 6943 .loc 1 3363 5 is_stmt 1 discriminator 2 view .LVU2415 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 6944 .loc 1 3363 23 is_stmt 0 discriminator 2 view .LVU2416 6945 003c 6385 strh r3, [r4, #42] @ movhi 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6946 .loc 1 3364 5 is_stmt 1 discriminator 2 view .LVU2417 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6947 .loc 1 3364 23 is_stmt 0 discriminator 2 view .LVU2418 6948 003e E262 str r2, [r4, #44] 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6949 .loc 1 3365 5 is_stmt 1 discriminator 2 view .LVU2419 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6950 .loc 1 3365 23 is_stmt 0 discriminator 2 view .LVU2420 6951 0040 474B ldr r3, .L462 6952 .LVL448: 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6953 .loc 1 3365 23 discriminator 2 view .LVU2421 6954 0042 6363 str r3, [r4, #52] 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6955 .loc 1 3368 5 is_stmt 1 discriminator 2 view .LVU2422 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6956 .loc 1 3368 13 is_stmt 0 discriminator 2 view .LVU2423 6957 0044 638D ldrh r3, [r4, #42] 6958 0046 9BB2 uxth r3, r3 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6959 .loc 1 3368 8 discriminator 2 view .LVU2424 6960 0048 FF2B cmp r3, #255 6961 004a 0ED9 bls .L446 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6962 .loc 1 3370 7 is_stmt 1 view .LVU2425 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6963 .loc 1 3370 22 is_stmt 0 view .LVU2426 6964 004c FF23 movs r3, #255 6965 004e 2385 strh r3, [r4, #40] @ movhi 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6966 .loc 1 3371 7 is_stmt 1 view .LVU2427 6967 .LVL449: 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 282 6968 .loc 1 3371 16 is_stmt 0 view .LVU2428 6969 0050 4FF08077 mov r7, #16777216 6970 .LVL450: 6971 .L447: 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 6972 .loc 1 3382 5 is_stmt 1 view .LVU2429 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 6973 .loc 1 3382 14 is_stmt 0 view .LVU2430 6974 0054 236B ldr r3, [r4, #48] 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 6975 .loc 1 3382 8 view .LVU2431 6976 0056 112B cmp r3, #17 6977 0058 0BD1 bne .L448 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6978 .loc 1 3383 10 view .LVU2432 6979 005a AA2A cmp r2, #170 6980 005c 09D0 beq .L448 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6981 .loc 1 3383 10 discriminator 2 view .LVU2433 6982 005e B2F52A4F cmp r2, #43520 6983 0062 06D0 beq .L448 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6984 .loc 1 3385 19 view .LVU2434 6985 0064 4FF00008 mov r8, #0 6986 0068 0DE0 b .L449 6987 .LVL451: 6988 .L446: 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6989 .loc 1 3375 7 is_stmt 1 view .LVU2435 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6990 .loc 1 3375 28 is_stmt 0 view .LVU2436 6991 006a 638D ldrh r3, [r4, #42] 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6992 .loc 1 3375 22 view .LVU2437 6993 006c 2385 strh r3, [r4, #40] @ movhi 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6994 .loc 1 3376 7 is_stmt 1 view .LVU2438 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6995 .loc 1 3376 16 is_stmt 0 view .LVU2439 6996 006e E76A ldr r7, [r4, #44] 6997 .LVL452: 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6998 .loc 1 3376 16 view .LVU2440 6999 0070 F0E7 b .L447 7000 .L448: 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7001 .loc 1 3390 7 is_stmt 1 view .LVU2441 7002 0072 2046 mov r0, r4 7003 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 7004 .LVL453: 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7005 .loc 1 3393 7 view .LVU2442 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7006 .loc 1 3393 15 is_stmt 0 view .LVU2443 7007 0078 638D ldrh r3, [r4, #42] 7008 007a 9BB2 uxth r3, r3 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 283 7009 .loc 1 3393 10 view .LVU2444 7010 007c FF2B cmp r3, #255 7011 007e 27D8 bhi .L458 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7012 .loc 1 3395 9 is_stmt 1 view .LVU2445 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7013 .loc 1 3395 18 is_stmt 0 view .LVU2446 7014 0080 E76A ldr r7, [r4, #44] 7015 .LVL454: 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7016 .loc 1 3346 12 view .LVU2447 7017 0082 DFF8EC80 ldr r8, .L462+16 7018 .L449: 7019 .LVL455: 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7020 .loc 1 3399 5 is_stmt 1 view .LVU2448 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7021 .loc 1 3399 13 is_stmt 0 view .LVU2449 7022 0086 228D ldrh r2, [r4, #40] 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7023 .loc 1 3399 8 view .LVU2450 7024 0088 002A cmp r2, #0 7025 008a 4ED0 beq .L450 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7026 .loc 1 3401 7 is_stmt 1 view .LVU2451 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7027 .loc 1 3401 15 is_stmt 0 view .LVU2452 7028 008c A36B ldr r3, [r4, #56] 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7029 .loc 1 3401 10 view .LVU2453 7030 008e 13B3 cbz r3, .L451 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7031 .loc 1 3404 9 is_stmt 1 view .LVU2454 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7032 .loc 1 3404 40 is_stmt 0 view .LVU2455 7033 0090 344A ldr r2, .L462+4 7034 0092 9A62 str r2, [r3, #40] 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7035 .loc 1 3407 9 is_stmt 1 view .LVU2456 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7036 .loc 1 3407 13 is_stmt 0 view .LVU2457 7037 0094 A36B ldr r3, [r4, #56] 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7038 .loc 1 3407 41 view .LVU2458 7039 0096 344A ldr r2, .L462+8 7040 0098 1A63 str r2, [r3, #48] 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7041 .loc 1 3410 9 is_stmt 1 view .LVU2459 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7042 .loc 1 3410 13 is_stmt 0 view .LVU2460 7043 009a A26B ldr r2, [r4, #56] 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7044 .loc 1 3410 44 view .LVU2461 7045 009c 0023 movs r3, #0 7046 009e D362 str r3, [r2, #44] 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7047 .loc 1 3411 9 is_stmt 1 view .LVU2462 ARM GAS /tmp/cczJHHnF.s page 284 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7048 .loc 1 3411 13 is_stmt 0 view .LVU2463 7049 00a0 A26B ldr r2, [r4, #56] 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7050 .loc 1 3411 41 view .LVU2464 7051 00a2 5363 str r3, [r2, #52] 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 7052 .loc 1 3414 9 is_stmt 1 view .LVU2465 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 7053 .loc 1 3414 88 is_stmt 0 view .LVU2466 7054 00a4 2268 ldr r2, [r4] 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 7055 .loc 1 3414 25 view .LVU2467 7056 00a6 238D ldrh r3, [r4, #40] 7057 00a8 2832 adds r2, r2, #40 7058 00aa 2946 mov r1, r5 7059 00ac A06B ldr r0, [r4, #56] 7060 00ae FFF7FEFF bl HAL_DMA_Start_IT 7061 .LVL456: 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7062 .loc 1 3432 7 is_stmt 1 view .LVU2468 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7063 .loc 1 3432 10 is_stmt 0 view .LVU2469 7064 00b2 F0B1 cbz r0, .L461 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7065 .loc 1 3455 9 is_stmt 1 view .LVU2470 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7066 .loc 1 3455 25 is_stmt 0 view .LVU2471 7067 00b4 2023 movs r3, #32 7068 00b6 84F84130 strb r3, [r4, #65] 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7069 .loc 1 3456 9 is_stmt 1 view .LVU2472 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7070 .loc 1 3456 25 is_stmt 0 view .LVU2473 7071 00ba 0022 movs r2, #0 7072 00bc 84F84220 strb r2, [r4, #66] 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7073 .loc 1 3459 9 is_stmt 1 view .LVU2474 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7074 .loc 1 3459 13 is_stmt 0 view .LVU2475 7075 00c0 636C ldr r3, [r4, #68] 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7076 .loc 1 3459 25 view .LVU2476 7077 00c2 43F01003 orr r3, r3, #16 7078 00c6 6364 str r3, [r4, #68] 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7079 .loc 1 3462 9 is_stmt 1 view .LVU2477 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7080 .loc 1 3462 9 view .LVU2478 7081 00c8 84F84020 strb r2, [r4, #64] 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7082 .loc 1 3462 9 view .LVU2479 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7083 .loc 1 3464 9 view .LVU2480 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7084 .loc 1 3464 16 is_stmt 0 view .LVU2481 7085 00cc 0120 movs r0, #1 ARM GAS /tmp/cczJHHnF.s page 285 7086 .LVL457: 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7087 .loc 1 3464 16 view .LVU2482 7088 00ce 41E0 b .L445 7089 .LVL458: 7090 .L458: 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7091 .loc 1 3346 12 view .LVU2483 7092 00d0 DFF89C80 ldr r8, .L462+16 7093 00d4 D7E7 b .L449 7094 .LVL459: 7095 .L451: 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7096 .loc 1 3420 9 is_stmt 1 view .LVU2484 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7097 .loc 1 3420 25 is_stmt 0 view .LVU2485 7098 00d6 2023 movs r3, #32 7099 00d8 84F84130 strb r3, [r4, #65] 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7100 .loc 1 3421 9 is_stmt 1 view .LVU2486 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7101 .loc 1 3421 25 is_stmt 0 view .LVU2487 7102 00dc 0022 movs r2, #0 7103 00de 84F84220 strb r2, [r4, #66] 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7104 .loc 1 3424 9 is_stmt 1 view .LVU2488 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7105 .loc 1 3424 13 is_stmt 0 view .LVU2489 7106 00e2 636C ldr r3, [r4, #68] 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7107 .loc 1 3424 25 view .LVU2490 7108 00e4 43F08003 orr r3, r3, #128 7109 00e8 6364 str r3, [r4, #68] 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7110 .loc 1 3427 9 is_stmt 1 view .LVU2491 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7111 .loc 1 3427 9 view .LVU2492 7112 00ea 84F84020 strb r2, [r4, #64] 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7113 .loc 1 3427 9 view .LVU2493 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7114 .loc 1 3429 9 view .LVU2494 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7115 .loc 1 3429 16 is_stmt 0 view .LVU2495 7116 00ee 0120 movs r0, #1 7117 00f0 30E0 b .L445 7118 .LVL460: 7119 .L461: 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7120 .loc 1 3435 9 is_stmt 1 view .LVU2496 7121 00f2 CDF80080 str r8, [sp] 7122 00f6 3B46 mov r3, r7 7123 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7124 00fc 3146 mov r1, r6 7125 00fe 2046 mov r0, r4 7126 .LVL461: 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 286 7127 .loc 1 3435 9 is_stmt 0 view .LVU2497 7128 0100 FFF7FEFF bl I2C_TransferConfig 7129 .LVL462: 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7130 .loc 1 3438 9 is_stmt 1 view .LVU2498 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7131 .loc 1 3438 13 is_stmt 0 view .LVU2499 7132 0104 638D ldrh r3, [r4, #42] 7133 0106 9BB2 uxth r3, r3 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7134 .loc 1 3438 32 view .LVU2500 7135 0108 228D ldrh r2, [r4, #40] 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7136 .loc 1 3438 25 view .LVU2501 7137 010a 9B1A subs r3, r3, r2 7138 010c 9BB2 uxth r3, r3 7139 010e 6385 strh r3, [r4, #42] @ movhi 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7140 .loc 1 3441 9 is_stmt 1 view .LVU2502 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7141 .loc 1 3441 9 view .LVU2503 7142 0110 0023 movs r3, #0 7143 0112 84F84030 strb r3, [r4, #64] 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7144 .loc 1 3441 9 view .LVU2504 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7145 .loc 1 3447 9 view .LVU2505 7146 0116 1021 movs r1, #16 7147 0118 2046 mov r0, r4 7148 011a FFF7FEFF bl I2C_Enable_IRQ 7149 .LVL463: 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7150 .loc 1 3450 9 view .LVU2506 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7151 .loc 1 3450 13 is_stmt 0 view .LVU2507 7152 011e 2268 ldr r2, [r4] 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7153 .loc 1 3450 23 view .LVU2508 7154 0120 1368 ldr r3, [r2] 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7155 .loc 1 3450 29 view .LVU2509 7156 0122 43F48043 orr r3, r3, #16384 7157 0126 1360 str r3, [r2] 7158 0128 11E0 b .L454 7159 .LVL464: 7160 .L450: 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7161 .loc 1 3470 7 is_stmt 1 view .LVU2510 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7162 .loc 1 3470 21 is_stmt 0 view .LVU2511 7163 012a 104B ldr r3, .L462+12 7164 012c 6363 str r3, [r4, #52] 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 7165 .loc 1 3474 7 is_stmt 1 view .LVU2512 7166 012e 104B ldr r3, .L462+16 7167 0130 0093 str r3, [sp] 7168 0132 4FF00073 mov r3, #33554432 ARM GAS /tmp/cczJHHnF.s page 287 7169 0136 D2B2 uxtb r2, r2 7170 0138 3146 mov r1, r6 7171 013a 2046 mov r0, r4 7172 013c FFF7FEFF bl I2C_TransferConfig 7173 .LVL465: 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7174 .loc 1 3478 7 view .LVU2513 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7175 .loc 1 3478 7 view .LVU2514 7176 0140 0023 movs r3, #0 7177 0142 84F84030 strb r3, [r4, #64] 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7178 .loc 1 3478 7 view .LVU2515 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7179 .loc 1 3487 7 view .LVU2516 7180 0146 0121 movs r1, #1 7181 0148 2046 mov r0, r4 7182 014a FFF7FEFF bl I2C_Enable_IRQ 7183 .LVL466: 7184 .L454: 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7185 .loc 1 3490 5 view .LVU2517 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7186 .loc 1 3490 12 is_stmt 0 view .LVU2518 7187 014e 0020 movs r0, #0 7188 0150 00E0 b .L445 7189 .LVL467: 7190 .L455: 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7191 .loc 1 3494 12 view .LVU2519 7192 0152 0220 movs r0, #2 7193 .LVL468: 7194 .L445: 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7195 .loc 1 3496 1 view .LVU2520 7196 0154 02B0 add sp, sp, #8 7197 .cfi_remember_state 7198 .cfi_def_cfa_offset 24 7199 @ sp needed 7200 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7201 .LVL469: 7202 .L456: 7203 .cfi_restore_state 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7204 .loc 1 3355 5 view .LVU2521 7205 015a 0220 movs r0, #2 7206 015c FAE7 b .L445 7207 .L463: 7208 015e 00BF .align 2 7209 .L462: 7210 0160 00000000 .word I2C_Master_ISR_DMA 7211 0164 00000000 .word I2C_DMAMasterTransmitCplt 7212 0168 00000000 .word I2C_DMAError 7213 016c 00000000 .word I2C_Master_ISR_IT 7214 0170 00200080 .word -2147475456 7215 .cfi_endproc 7216 .LFE154: ARM GAS /tmp/cczJHHnF.s page 288 7218 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7219 .align 1 7220 .global HAL_I2C_Master_Seq_Receive_IT 7221 .syntax unified 7222 .thumb 7223 .thumb_func 7225 HAL_I2C_Master_Seq_Receive_IT: 7226 .LVL470: 7227 .LFB155: 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7228 .loc 1 3512 1 is_stmt 1 view -0 7229 .cfi_startproc 7230 @ args = 4, pretend = 0, frame = 0 7231 @ frame_needed = 0, uses_anonymous_args = 0 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7232 .loc 1 3512 1 is_stmt 0 view .LVU2523 7233 0000 70B5 push {r4, r5, r6, lr} 7234 .cfi_def_cfa_offset 16 7235 .cfi_offset 4, -16 7236 .cfi_offset 5, -12 7237 .cfi_offset 6, -8 7238 .cfi_offset 14, -4 7239 0002 82B0 sub sp, sp, #8 7240 .cfi_def_cfa_offset 24 7241 0004 0446 mov r4, r0 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7242 .loc 1 3513 3 is_stmt 1 view .LVU2524 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7243 .loc 1 3514 3 view .LVU2525 7244 .LVL471: 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7245 .loc 1 3517 3 view .LVU2526 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7246 .loc 1 3519 3 view .LVU2527 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7247 .loc 1 3519 11 is_stmt 0 view .LVU2528 7248 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7249 .LVL472: 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7250 .loc 1 3519 11 view .LVU2529 7251 000a C0B2 uxtb r0, r0 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7252 .loc 1 3519 6 view .LVU2530 7253 000c 2028 cmp r0, #32 7254 000e 49D1 bne .L470 7255 0010 0D46 mov r5, r1 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7256 .loc 1 3522 5 is_stmt 1 view .LVU2531 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7257 .loc 1 3522 5 view .LVU2532 7258 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7259 .LVL473: 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7260 .loc 1 3522 5 is_stmt 0 view .LVU2533 7261 0016 0129 cmp r1, #1 7262 0018 46D0 beq .L471 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 289 7263 .loc 1 3522 5 is_stmt 1 discriminator 2 view .LVU2534 7264 001a 0121 movs r1, #1 7265 001c 84F84010 strb r1, [r4, #64] 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7266 .loc 1 3522 5 discriminator 2 view .LVU2535 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7267 .loc 1 3524 5 discriminator 2 view .LVU2536 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7268 .loc 1 3524 21 is_stmt 0 discriminator 2 view .LVU2537 7269 0020 2221 movs r1, #34 7270 0022 84F84110 strb r1, [r4, #65] 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7271 .loc 1 3525 5 is_stmt 1 discriminator 2 view .LVU2538 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7272 .loc 1 3525 21 is_stmt 0 discriminator 2 view .LVU2539 7273 0026 1021 movs r1, #16 7274 0028 84F84210 strb r1, [r4, #66] 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7275 .loc 1 3526 5 is_stmt 1 discriminator 2 view .LVU2540 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7276 .loc 1 3526 21 is_stmt 0 discriminator 2 view .LVU2541 7277 002c 0021 movs r1, #0 7278 002e 6164 str r1, [r4, #68] 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7279 .loc 1 3529 5 is_stmt 1 discriminator 2 view .LVU2542 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7280 .loc 1 3529 23 is_stmt 0 discriminator 2 view .LVU2543 7281 0030 6262 str r2, [r4, #36] 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7282 .loc 1 3530 5 is_stmt 1 discriminator 2 view .LVU2544 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7283 .loc 1 3530 23 is_stmt 0 discriminator 2 view .LVU2545 7284 0032 6385 strh r3, [r4, #42] @ movhi 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7285 .loc 1 3531 5 is_stmt 1 discriminator 2 view .LVU2546 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7286 .loc 1 3531 23 is_stmt 0 discriminator 2 view .LVU2547 7287 0034 069B ldr r3, [sp, #24] 7288 .LVL474: 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7289 .loc 1 3531 23 discriminator 2 view .LVU2548 7290 0036 E362 str r3, [r4, #44] 7291 .LVL475: 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7292 .loc 1 3532 5 is_stmt 1 discriminator 2 view .LVU2549 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7293 .loc 1 3532 23 is_stmt 0 discriminator 2 view .LVU2550 7294 0038 1C4B ldr r3, .L475 7295 003a 6363 str r3, [r4, #52] 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7296 .loc 1 3535 5 is_stmt 1 discriminator 2 view .LVU2551 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7297 .loc 1 3535 13 is_stmt 0 discriminator 2 view .LVU2552 7298 003c 638D ldrh r3, [r4, #42] 7299 003e 9BB2 uxth r3, r3 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7300 .loc 1 3535 8 discriminator 2 view .LVU2553 ARM GAS /tmp/cczJHHnF.s page 290 7301 0040 FF2B cmp r3, #255 7302 0042 0ED9 bls .L466 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7303 .loc 1 3537 7 is_stmt 1 view .LVU2554 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7304 .loc 1 3537 22 is_stmt 0 view .LVU2555 7305 0044 FF23 movs r3, #255 7306 0046 2385 strh r3, [r4, #40] @ movhi 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7307 .loc 1 3538 7 is_stmt 1 view .LVU2556 7308 .LVL476: 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7309 .loc 1 3538 16 is_stmt 0 view .LVU2557 7310 0048 4FF08076 mov r6, #16777216 7311 .LVL477: 7312 .L467: 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7313 .loc 1 3549 5 is_stmt 1 view .LVU2558 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7314 .loc 1 3549 14 is_stmt 0 view .LVU2559 7315 004c 236B ldr r3, [r4, #48] 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7316 .loc 1 3549 8 view .LVU2560 7317 004e 122B cmp r3, #18 7318 0050 0BD1 bne .L468 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7319 .loc 1 3550 10 view .LVU2561 7320 0052 069B ldr r3, [sp, #24] 7321 0054 AA2B cmp r3, #170 7322 0056 08D0 beq .L468 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7323 .loc 1 3550 10 discriminator 2 view .LVU2562 7324 0058 B3F52A4F cmp r3, #43520 7325 005c 05D0 beq .L468 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7326 .loc 1 3552 19 view .LVU2563 7327 005e 0023 movs r3, #0 7328 0060 0CE0 b .L469 7329 .LVL478: 7330 .L466: 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7331 .loc 1 3542 7 is_stmt 1 view .LVU2564 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7332 .loc 1 3542 28 is_stmt 0 view .LVU2565 7333 0062 638D ldrh r3, [r4, #42] 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7334 .loc 1 3542 22 view .LVU2566 7335 0064 2385 strh r3, [r4, #40] @ movhi 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7336 .loc 1 3543 7 is_stmt 1 view .LVU2567 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7337 .loc 1 3543 16 is_stmt 0 view .LVU2568 7338 0066 E66A ldr r6, [r4, #44] 7339 .LVL479: 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7340 .loc 1 3543 16 view .LVU2569 7341 0068 F0E7 b .L467 ARM GAS /tmp/cczJHHnF.s page 291 7342 .L468: 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7343 .loc 1 3557 7 is_stmt 1 view .LVU2570 7344 006a 2046 mov r0, r4 7345 006c FFF7FEFF bl I2C_ConvertOtherXferOptions 7346 .LVL480: 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7347 .loc 1 3560 7 view .LVU2571 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7348 .loc 1 3560 15 is_stmt 0 view .LVU2572 7349 0070 638D ldrh r3, [r4, #42] 7350 0072 9BB2 uxth r3, r3 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7351 .loc 1 3560 10 view .LVU2573 7352 0074 FF2B cmp r3, #255 7353 0076 13D8 bhi .L473 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7354 .loc 1 3562 9 is_stmt 1 view .LVU2574 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7355 .loc 1 3562 18 is_stmt 0 view .LVU2575 7356 0078 E66A ldr r6, [r4, #44] 7357 .LVL481: 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7358 .loc 1 3514 12 view .LVU2576 7359 007a 0D4B ldr r3, .L475+4 7360 .L469: 7361 .LVL482: 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7362 .loc 1 3567 5 is_stmt 1 view .LVU2577 7363 007c 0093 str r3, [sp] 7364 007e 3346 mov r3, r6 7365 .LVL483: 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7366 .loc 1 3567 5 is_stmt 0 view .LVU2578 7367 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7368 0084 2946 mov r1, r5 7369 0086 2046 mov r0, r4 7370 0088 FFF7FEFF bl I2C_TransferConfig 7371 .LVL484: 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7372 .loc 1 3570 5 is_stmt 1 view .LVU2579 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7373 .loc 1 3570 5 view .LVU2580 7374 008c 0025 movs r5, #0 7375 008e 84F84050 strb r5, [r4, #64] 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7376 .loc 1 3570 5 view .LVU2581 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7377 .loc 1 3575 5 view .LVU2582 7378 0092 0221 movs r1, #2 7379 0094 2046 mov r0, r4 7380 0096 FFF7FEFF bl I2C_Enable_IRQ 7381 .LVL485: 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7382 .loc 1 3577 5 view .LVU2583 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7383 .loc 1 3577 12 is_stmt 0 view .LVU2584 ARM GAS /tmp/cczJHHnF.s page 292 7384 009a 2846 mov r0, r5 7385 .LVL486: 7386 .L465: 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7387 .loc 1 3583 1 view .LVU2585 7388 009c 02B0 add sp, sp, #8 7389 .cfi_remember_state 7390 .cfi_def_cfa_offset 16 7391 @ sp needed 7392 009e 70BD pop {r4, r5, r6, pc} 7393 .LVL487: 7394 .L473: 7395 .cfi_restore_state 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7396 .loc 1 3514 12 view .LVU2586 7397 00a0 034B ldr r3, .L475+4 7398 00a2 EBE7 b .L469 7399 .LVL488: 7400 .L470: 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7401 .loc 1 3581 12 view .LVU2587 7402 00a4 0220 movs r0, #2 7403 00a6 F9E7 b .L465 7404 .LVL489: 7405 .L471: 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7406 .loc 1 3522 5 view .LVU2588 7407 00a8 0220 movs r0, #2 7408 00aa F7E7 b .L465 7409 .L476: 7410 .align 2 7411 .L475: 7412 00ac 00000000 .word I2C_Master_ISR_IT 7413 00b0 00240080 .word -2147474432 7414 .cfi_endproc 7415 .LFE155: 7417 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 7418 .align 1 7419 .global HAL_I2C_Master_Seq_Receive_DMA 7420 .syntax unified 7421 .thumb 7422 .thumb_func 7424 HAL_I2C_Master_Seq_Receive_DMA: 7425 .LVL490: 7426 .LFB156: 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7427 .loc 1 3599 1 is_stmt 1 view -0 7428 .cfi_startproc 7429 @ args = 4, pretend = 0, frame = 0 7430 @ frame_needed = 0, uses_anonymous_args = 0 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7431 .loc 1 3599 1 is_stmt 0 view .LVU2590 7432 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7433 .cfi_def_cfa_offset 24 7434 .cfi_offset 4, -24 7435 .cfi_offset 5, -20 7436 .cfi_offset 6, -16 ARM GAS /tmp/cczJHHnF.s page 293 7437 .cfi_offset 7, -12 7438 .cfi_offset 8, -8 7439 .cfi_offset 14, -4 7440 0004 82B0 sub sp, sp, #8 7441 .cfi_def_cfa_offset 32 7442 0006 0446 mov r4, r0 7443 0008 1546 mov r5, r2 7444 000a 089A ldr r2, [sp, #32] 7445 .LVL491: 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7446 .loc 1 3600 3 is_stmt 1 view .LVU2591 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7447 .loc 1 3601 3 view .LVU2592 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7448 .loc 1 3602 3 view .LVU2593 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7449 .loc 1 3605 3 view .LVU2594 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7450 .loc 1 3607 3 view .LVU2595 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7451 .loc 1 3607 11 is_stmt 0 view .LVU2596 7452 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7453 .LVL492: 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7454 .loc 1 3607 11 view .LVU2597 7455 0010 C0B2 uxtb r0, r0 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7456 .loc 1 3607 6 view .LVU2598 7457 0012 2028 cmp r0, #32 7458 0014 40F09D80 bne .L488 7459 0018 0E46 mov r6, r1 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7460 .loc 1 3610 5 is_stmt 1 view .LVU2599 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7461 .loc 1 3610 5 view .LVU2600 7462 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7463 .LVL493: 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7464 .loc 1 3610 5 is_stmt 0 view .LVU2601 7465 001e 0129 cmp r1, #1 7466 0020 00F09B80 beq .L489 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7467 .loc 1 3610 5 is_stmt 1 discriminator 2 view .LVU2602 7468 0024 0121 movs r1, #1 7469 0026 84F84010 strb r1, [r4, #64] 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7470 .loc 1 3610 5 discriminator 2 view .LVU2603 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7471 .loc 1 3612 5 discriminator 2 view .LVU2604 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7472 .loc 1 3612 21 is_stmt 0 discriminator 2 view .LVU2605 7473 002a 2221 movs r1, #34 7474 002c 84F84110 strb r1, [r4, #65] 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7475 .loc 1 3613 5 is_stmt 1 discriminator 2 view .LVU2606 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7476 .loc 1 3613 21 is_stmt 0 discriminator 2 view .LVU2607 ARM GAS /tmp/cczJHHnF.s page 294 7477 0030 1021 movs r1, #16 7478 0032 84F84210 strb r1, [r4, #66] 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7479 .loc 1 3614 5 is_stmt 1 discriminator 2 view .LVU2608 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7480 .loc 1 3614 21 is_stmt 0 discriminator 2 view .LVU2609 7481 0036 0021 movs r1, #0 7482 0038 6164 str r1, [r4, #68] 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7483 .loc 1 3617 5 is_stmt 1 discriminator 2 view .LVU2610 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7484 .loc 1 3617 23 is_stmt 0 discriminator 2 view .LVU2611 7485 003a 6562 str r5, [r4, #36] 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7486 .loc 1 3618 5 is_stmt 1 discriminator 2 view .LVU2612 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7487 .loc 1 3618 23 is_stmt 0 discriminator 2 view .LVU2613 7488 003c 6385 strh r3, [r4, #42] @ movhi 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7489 .loc 1 3619 5 is_stmt 1 discriminator 2 view .LVU2614 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7490 .loc 1 3619 23 is_stmt 0 discriminator 2 view .LVU2615 7491 003e E262 str r2, [r4, #44] 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7492 .loc 1 3620 5 is_stmt 1 discriminator 2 view .LVU2616 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7493 .loc 1 3620 23 is_stmt 0 discriminator 2 view .LVU2617 7494 0040 474B ldr r3, .L495 7495 .LVL494: 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7496 .loc 1 3620 23 discriminator 2 view .LVU2618 7497 0042 6363 str r3, [r4, #52] 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7498 .loc 1 3623 5 is_stmt 1 discriminator 2 view .LVU2619 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7499 .loc 1 3623 13 is_stmt 0 discriminator 2 view .LVU2620 7500 0044 638D ldrh r3, [r4, #42] 7501 0046 9BB2 uxth r3, r3 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7502 .loc 1 3623 8 discriminator 2 view .LVU2621 7503 0048 FF2B cmp r3, #255 7504 004a 0ED9 bls .L479 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7505 .loc 1 3625 7 is_stmt 1 view .LVU2622 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7506 .loc 1 3625 22 is_stmt 0 view .LVU2623 7507 004c FF23 movs r3, #255 7508 004e 2385 strh r3, [r4, #40] @ movhi 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7509 .loc 1 3626 7 is_stmt 1 view .LVU2624 7510 .LVL495: 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7511 .loc 1 3626 16 is_stmt 0 view .LVU2625 7512 0050 4FF08077 mov r7, #16777216 7513 .LVL496: 7514 .L480: 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) ARM GAS /tmp/cczJHHnF.s page 295 7515 .loc 1 3637 5 is_stmt 1 view .LVU2626 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7516 .loc 1 3637 14 is_stmt 0 view .LVU2627 7517 0054 236B ldr r3, [r4, #48] 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7518 .loc 1 3637 8 view .LVU2628 7519 0056 122B cmp r3, #18 7520 0058 0BD1 bne .L481 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7521 .loc 1 3638 10 view .LVU2629 7522 005a AA2A cmp r2, #170 7523 005c 09D0 beq .L481 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7524 .loc 1 3638 10 discriminator 2 view .LVU2630 7525 005e B2F52A4F cmp r2, #43520 7526 0062 06D0 beq .L481 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7527 .loc 1 3640 19 view .LVU2631 7528 0064 4FF00008 mov r8, #0 7529 0068 0DE0 b .L482 7530 .LVL497: 7531 .L479: 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7532 .loc 1 3630 7 is_stmt 1 view .LVU2632 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7533 .loc 1 3630 28 is_stmt 0 view .LVU2633 7534 006a 638D ldrh r3, [r4, #42] 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7535 .loc 1 3630 22 view .LVU2634 7536 006c 2385 strh r3, [r4, #40] @ movhi 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7537 .loc 1 3631 7 is_stmt 1 view .LVU2635 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7538 .loc 1 3631 16 is_stmt 0 view .LVU2636 7539 006e E76A ldr r7, [r4, #44] 7540 .LVL498: 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7541 .loc 1 3631 16 view .LVU2637 7542 0070 F0E7 b .L480 7543 .L481: 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7544 .loc 1 3645 7 is_stmt 1 view .LVU2638 7545 0072 2046 mov r0, r4 7546 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 7547 .LVL499: 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7548 .loc 1 3648 7 view .LVU2639 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7549 .loc 1 3648 15 is_stmt 0 view .LVU2640 7550 0078 638D ldrh r3, [r4, #42] 7551 007a 9BB2 uxth r3, r3 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7552 .loc 1 3648 10 view .LVU2641 7553 007c FF2B cmp r3, #255 7554 007e 27D8 bhi .L491 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7555 .loc 1 3650 9 is_stmt 1 view .LVU2642 ARM GAS /tmp/cczJHHnF.s page 296 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7556 .loc 1 3650 18 is_stmt 0 view .LVU2643 7557 0080 E76A ldr r7, [r4, #44] 7558 .LVL500: 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7559 .loc 1 3601 12 view .LVU2644 7560 0082 DFF8EC80 ldr r8, .L495+16 7561 .L482: 7562 .LVL501: 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7563 .loc 1 3654 5 is_stmt 1 view .LVU2645 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7564 .loc 1 3654 13 is_stmt 0 view .LVU2646 7565 0086 228D ldrh r2, [r4, #40] 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7566 .loc 1 3654 8 view .LVU2647 7567 0088 002A cmp r2, #0 7568 008a 4ED0 beq .L483 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7569 .loc 1 3656 7 is_stmt 1 view .LVU2648 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7570 .loc 1 3656 15 is_stmt 0 view .LVU2649 7571 008c E36B ldr r3, [r4, #60] 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7572 .loc 1 3656 10 view .LVU2650 7573 008e 13B3 cbz r3, .L484 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7574 .loc 1 3659 9 is_stmt 1 view .LVU2651 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7575 .loc 1 3659 40 is_stmt 0 view .LVU2652 7576 0090 344A ldr r2, .L495+4 7577 0092 9A62 str r2, [r3, #40] 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7578 .loc 1 3662 9 is_stmt 1 view .LVU2653 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7579 .loc 1 3662 13 is_stmt 0 view .LVU2654 7580 0094 E36B ldr r3, [r4, #60] 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7581 .loc 1 3662 41 view .LVU2655 7582 0096 344A ldr r2, .L495+8 7583 0098 1A63 str r2, [r3, #48] 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7584 .loc 1 3665 9 is_stmt 1 view .LVU2656 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7585 .loc 1 3665 13 is_stmt 0 view .LVU2657 7586 009a E26B ldr r2, [r4, #60] 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7587 .loc 1 3665 44 view .LVU2658 7588 009c 0023 movs r3, #0 7589 009e D362 str r3, [r2, #44] 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7590 .loc 1 3666 9 is_stmt 1 view .LVU2659 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7591 .loc 1 3666 13 is_stmt 0 view .LVU2660 7592 00a0 E26B ldr r2, [r4, #60] 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7593 .loc 1 3666 41 view .LVU2661 ARM GAS /tmp/cczJHHnF.s page 297 7594 00a2 5363 str r3, [r2, #52] 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 7595 .loc 1 3669 9 is_stmt 1 view .LVU2662 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 7596 .loc 1 3669 71 is_stmt 0 view .LVU2663 7597 00a4 2168 ldr r1, [r4] 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 7598 .loc 1 3669 25 view .LVU2664 7599 00a6 238D ldrh r3, [r4, #40] 7600 00a8 2A46 mov r2, r5 7601 00aa 2431 adds r1, r1, #36 7602 00ac E06B ldr r0, [r4, #60] 7603 00ae FFF7FEFF bl HAL_DMA_Start_IT 7604 .LVL502: 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7605 .loc 1 3687 7 is_stmt 1 view .LVU2665 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7606 .loc 1 3687 10 is_stmt 0 view .LVU2666 7607 00b2 F0B1 cbz r0, .L494 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7608 .loc 1 3710 9 is_stmt 1 view .LVU2667 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7609 .loc 1 3710 25 is_stmt 0 view .LVU2668 7610 00b4 2023 movs r3, #32 7611 00b6 84F84130 strb r3, [r4, #65] 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7612 .loc 1 3711 9 is_stmt 1 view .LVU2669 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7613 .loc 1 3711 25 is_stmt 0 view .LVU2670 7614 00ba 0022 movs r2, #0 7615 00bc 84F84220 strb r2, [r4, #66] 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7616 .loc 1 3714 9 is_stmt 1 view .LVU2671 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7617 .loc 1 3714 13 is_stmt 0 view .LVU2672 7618 00c0 636C ldr r3, [r4, #68] 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7619 .loc 1 3714 25 view .LVU2673 7620 00c2 43F01003 orr r3, r3, #16 7621 00c6 6364 str r3, [r4, #68] 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7622 .loc 1 3717 9 is_stmt 1 view .LVU2674 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7623 .loc 1 3717 9 view .LVU2675 7624 00c8 84F84020 strb r2, [r4, #64] 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7625 .loc 1 3717 9 view .LVU2676 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7626 .loc 1 3719 9 view .LVU2677 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7627 .loc 1 3719 16 is_stmt 0 view .LVU2678 7628 00cc 0120 movs r0, #1 7629 .LVL503: 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7630 .loc 1 3719 16 view .LVU2679 7631 00ce 41E0 b .L478 7632 .LVL504: ARM GAS /tmp/cczJHHnF.s page 298 7633 .L491: 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7634 .loc 1 3601 12 view .LVU2680 7635 00d0 DFF89C80 ldr r8, .L495+16 7636 00d4 D7E7 b .L482 7637 .LVL505: 7638 .L484: 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7639 .loc 1 3675 9 is_stmt 1 view .LVU2681 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7640 .loc 1 3675 25 is_stmt 0 view .LVU2682 7641 00d6 2023 movs r3, #32 7642 00d8 84F84130 strb r3, [r4, #65] 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7643 .loc 1 3676 9 is_stmt 1 view .LVU2683 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7644 .loc 1 3676 25 is_stmt 0 view .LVU2684 7645 00dc 0022 movs r2, #0 7646 00de 84F84220 strb r2, [r4, #66] 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7647 .loc 1 3679 9 is_stmt 1 view .LVU2685 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7648 .loc 1 3679 13 is_stmt 0 view .LVU2686 7649 00e2 636C ldr r3, [r4, #68] 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7650 .loc 1 3679 25 view .LVU2687 7651 00e4 43F08003 orr r3, r3, #128 7652 00e8 6364 str r3, [r4, #68] 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7653 .loc 1 3682 9 is_stmt 1 view .LVU2688 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7654 .loc 1 3682 9 view .LVU2689 7655 00ea 84F84020 strb r2, [r4, #64] 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7656 .loc 1 3682 9 view .LVU2690 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7657 .loc 1 3684 9 view .LVU2691 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7658 .loc 1 3684 16 is_stmt 0 view .LVU2692 7659 00ee 0120 movs r0, #1 7660 00f0 30E0 b .L478 7661 .LVL506: 7662 .L494: 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7663 .loc 1 3690 9 is_stmt 1 view .LVU2693 7664 00f2 CDF80080 str r8, [sp] 7665 00f6 3B46 mov r3, r7 7666 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7667 00fc 3146 mov r1, r6 7668 00fe 2046 mov r0, r4 7669 .LVL507: 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7670 .loc 1 3690 9 is_stmt 0 view .LVU2694 7671 0100 FFF7FEFF bl I2C_TransferConfig 7672 .LVL508: 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7673 .loc 1 3693 9 is_stmt 1 view .LVU2695 ARM GAS /tmp/cczJHHnF.s page 299 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7674 .loc 1 3693 13 is_stmt 0 view .LVU2696 7675 0104 638D ldrh r3, [r4, #42] 7676 0106 9BB2 uxth r3, r3 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7677 .loc 1 3693 32 view .LVU2697 7678 0108 228D ldrh r2, [r4, #40] 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7679 .loc 1 3693 25 view .LVU2698 7680 010a 9B1A subs r3, r3, r2 7681 010c 9BB2 uxth r3, r3 7682 010e 6385 strh r3, [r4, #42] @ movhi 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7683 .loc 1 3696 9 is_stmt 1 view .LVU2699 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7684 .loc 1 3696 9 view .LVU2700 7685 0110 0023 movs r3, #0 7686 0112 84F84030 strb r3, [r4, #64] 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7687 .loc 1 3696 9 view .LVU2701 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7688 .loc 1 3702 9 view .LVU2702 7689 0116 1021 movs r1, #16 7690 0118 2046 mov r0, r4 7691 011a FFF7FEFF bl I2C_Enable_IRQ 7692 .LVL509: 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7693 .loc 1 3705 9 view .LVU2703 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7694 .loc 1 3705 13 is_stmt 0 view .LVU2704 7695 011e 2268 ldr r2, [r4] 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7696 .loc 1 3705 23 view .LVU2705 7697 0120 1368 ldr r3, [r2] 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7698 .loc 1 3705 29 view .LVU2706 7699 0122 43F40043 orr r3, r3, #32768 7700 0126 1360 str r3, [r2] 7701 0128 11E0 b .L487 7702 .LVL510: 7703 .L483: 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7704 .loc 1 3725 7 is_stmt 1 view .LVU2707 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7705 .loc 1 3725 21 is_stmt 0 view .LVU2708 7706 012a 104B ldr r3, .L495+12 7707 012c 6363 str r3, [r4, #52] 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 7708 .loc 1 3729 7 is_stmt 1 view .LVU2709 7709 012e 104B ldr r3, .L495+16 7710 0130 0093 str r3, [sp] 7711 0132 4FF00073 mov r3, #33554432 7712 0136 D2B2 uxtb r2, r2 7713 0138 3146 mov r1, r6 7714 013a 2046 mov r0, r4 7715 013c FFF7FEFF bl I2C_TransferConfig 7716 .LVL511: ARM GAS /tmp/cczJHHnF.s page 300 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7717 .loc 1 3733 7 view .LVU2710 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7718 .loc 1 3733 7 view .LVU2711 7719 0140 0023 movs r3, #0 7720 0142 84F84030 strb r3, [r4, #64] 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7721 .loc 1 3733 7 view .LVU2712 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7722 .loc 1 3742 7 view .LVU2713 7723 0146 0121 movs r1, #1 7724 0148 2046 mov r0, r4 7725 014a FFF7FEFF bl I2C_Enable_IRQ 7726 .LVL512: 7727 .L487: 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7728 .loc 1 3745 5 view .LVU2714 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7729 .loc 1 3745 12 is_stmt 0 view .LVU2715 7730 014e 0020 movs r0, #0 7731 0150 00E0 b .L478 7732 .LVL513: 7733 .L488: 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7734 .loc 1 3749 12 view .LVU2716 7735 0152 0220 movs r0, #2 7736 .LVL514: 7737 .L478: 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7738 .loc 1 3751 1 view .LVU2717 7739 0154 02B0 add sp, sp, #8 7740 .cfi_remember_state 7741 .cfi_def_cfa_offset 24 7742 @ sp needed 7743 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7744 .LVL515: 7745 .L489: 7746 .cfi_restore_state 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7747 .loc 1 3610 5 view .LVU2718 7748 015a 0220 movs r0, #2 7749 015c FAE7 b .L478 7750 .L496: 7751 015e 00BF .align 2 7752 .L495: 7753 0160 00000000 .word I2C_Master_ISR_DMA 7754 0164 00000000 .word I2C_DMAMasterReceiveCplt 7755 0168 00000000 .word I2C_DMAError 7756 016c 00000000 .word I2C_Master_ISR_IT 7757 0170 00240080 .word -2147474432 7758 .cfi_endproc 7759 .LFE156: 7761 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 7762 .align 1 7763 .global HAL_I2C_Slave_Seq_Transmit_IT 7764 .syntax unified 7765 .thumb ARM GAS /tmp/cczJHHnF.s page 301 7766 .thumb_func 7768 HAL_I2C_Slave_Seq_Transmit_IT: 7769 .LVL516: 7770 .LFB157: 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 7771 .loc 1 3765 1 is_stmt 1 view -0 7772 .cfi_startproc 7773 @ args = 0, pretend = 0, frame = 0 7774 @ frame_needed = 0, uses_anonymous_args = 0 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 7775 .loc 1 3765 1 is_stmt 0 view .LVU2720 7776 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 7777 .cfi_def_cfa_offset 24 7778 .cfi_offset 3, -24 7779 .cfi_offset 4, -20 7780 .cfi_offset 5, -16 7781 .cfi_offset 6, -12 7782 .cfi_offset 7, -8 7783 .cfi_offset 14, -4 7784 0002 0446 mov r4, r0 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7785 .loc 1 3767 3 is_stmt 1 view .LVU2721 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7786 .loc 1 3769 3 view .LVU2722 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7787 .loc 1 3769 22 is_stmt 0 view .LVU2723 7788 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7789 .LVL517: 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7790 .loc 1 3769 6 view .LVU2724 7791 0008 00F02800 and r0, r0, #40 7792 000c 2828 cmp r0, #40 7793 000e 5AD1 bne .L503 7794 0010 0F46 mov r7, r1 7795 0012 1646 mov r6, r2 7796 0014 1D46 mov r5, r3 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7797 .loc 1 3771 5 is_stmt 1 view .LVU2725 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7798 .loc 1 3771 8 is_stmt 0 view .LVU2726 7799 0016 01B1 cbz r1, .L499 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7800 .loc 1 3771 25 discriminator 1 view .LVU2727 7801 0018 22B9 cbnz r2, .L500 7802 .L499: 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7803 .loc 1 3773 7 is_stmt 1 view .LVU2728 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7804 .loc 1 3773 23 is_stmt 0 view .LVU2729 7805 001a 4FF40073 mov r3, #512 7806 .LVL518: 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7807 .loc 1 3773 23 view .LVU2730 7808 001e 6364 str r3, [r4, #68] 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7809 .loc 1 3774 7 is_stmt 1 view .LVU2731 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 302 7810 .loc 1 3774 15 is_stmt 0 view .LVU2732 7811 0020 0120 movs r0, #1 7812 0022 51E0 b .L498 7813 .LVL519: 7814 .L500: 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7815 .loc 1 3778 5 is_stmt 1 view .LVU2733 7816 0024 48F20101 movw r1, #32769 7817 .LVL520: 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7818 .loc 1 3778 5 is_stmt 0 view .LVU2734 7819 0028 2046 mov r0, r4 7820 002a FFF7FEFF bl I2C_Disable_IRQ 7821 .LVL521: 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7822 .loc 1 3781 5 is_stmt 1 view .LVU2735 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7823 .loc 1 3781 5 view .LVU2736 7824 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 7825 0032 012B cmp r3, #1 7826 0034 49D0 beq .L504 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7827 .loc 1 3781 5 discriminator 2 view .LVU2737 7828 0036 0123 movs r3, #1 7829 0038 84F84030 strb r3, [r4, #64] 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7830 .loc 1 3781 5 discriminator 2 view .LVU2738 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7831 .loc 1 3785 5 discriminator 2 view .LVU2739 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7832 .loc 1 3785 13 is_stmt 0 discriminator 2 view .LVU2740 7833 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 7834 0040 DBB2 uxtb r3, r3 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7835 .loc 1 3785 8 discriminator 2 view .LVU2741 7836 0042 2A2B cmp r3, #42 7837 0044 24D0 beq .L506 7838 .L501: 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 7839 .loc 1 3811 5 is_stmt 1 view .LVU2742 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 7840 .loc 1 3811 21 is_stmt 0 view .LVU2743 7841 0046 2923 movs r3, #41 7842 0048 84F84130 strb r3, [r4, #65] 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7843 .loc 1 3812 5 is_stmt 1 view .LVU2744 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7844 .loc 1 3812 21 is_stmt 0 view .LVU2745 7845 004c 2023 movs r3, #32 7846 004e 84F84230 strb r3, [r4, #66] 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7847 .loc 1 3813 5 is_stmt 1 view .LVU2746 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7848 .loc 1 3813 21 is_stmt 0 view .LVU2747 7849 0052 0023 movs r3, #0 7850 0054 6364 str r3, [r4, #68] 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 303 7851 .loc 1 3816 5 is_stmt 1 view .LVU2748 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7852 .loc 1 3816 9 is_stmt 0 view .LVU2749 7853 0056 2268 ldr r2, [r4] 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7854 .loc 1 3816 19 view .LVU2750 7855 0058 5368 ldr r3, [r2, #4] 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7856 .loc 1 3816 25 view .LVU2751 7857 005a 23F40043 bic r3, r3, #32768 7858 005e 5360 str r3, [r2, #4] 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7859 .loc 1 3819 5 is_stmt 1 view .LVU2752 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7860 .loc 1 3819 23 is_stmt 0 view .LVU2753 7861 0060 6762 str r7, [r4, #36] 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 7862 .loc 1 3820 5 is_stmt 1 view .LVU2754 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 7863 .loc 1 3820 23 is_stmt 0 view .LVU2755 7864 0062 6685 strh r6, [r4, #42] @ movhi 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7865 .loc 1 3821 5 is_stmt 1 view .LVU2756 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7866 .loc 1 3821 29 is_stmt 0 view .LVU2757 7867 0064 638D ldrh r3, [r4, #42] 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7868 .loc 1 3821 23 view .LVU2758 7869 0066 2385 strh r3, [r4, #40] @ movhi 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 7870 .loc 1 3822 5 is_stmt 1 view .LVU2759 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 7871 .loc 1 3822 23 is_stmt 0 view .LVU2760 7872 0068 E562 str r5, [r4, #44] 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7873 .loc 1 3823 5 is_stmt 1 view .LVU2761 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7874 .loc 1 3823 23 is_stmt 0 view .LVU2762 7875 006a 194B ldr r3, .L507 7876 006c 6363 str r3, [r4, #52] 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7877 .loc 1 3825 5 is_stmt 1 view .LVU2763 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7878 .loc 1 3825 9 is_stmt 0 view .LVU2764 7879 006e 2368 ldr r3, [r4] 7880 0070 9A69 ldr r2, [r3, #24] 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7881 .loc 1 3825 8 view .LVU2765 7882 0072 12F4803F tst r2, #65536 7883 0076 01D0 beq .L502 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7884 .loc 1 3829 7 is_stmt 1 view .LVU2766 7885 0078 0822 movs r2, #8 7886 007a DA61 str r2, [r3, #28] 7887 .L502: 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7888 .loc 1 3833 5 view .LVU2767 ARM GAS /tmp/cczJHHnF.s page 304 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7889 .loc 1 3833 5 view .LVU2768 7890 007c 0025 movs r5, #0 7891 .LVL522: 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7892 .loc 1 3833 5 is_stmt 0 view .LVU2769 7893 007e 84F84050 strb r5, [r4, #64] 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7894 .loc 1 3833 5 is_stmt 1 view .LVU2770 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7895 .loc 1 3839 5 view .LVU2771 7896 0082 48F20101 movw r1, #32769 7897 0086 2046 mov r0, r4 7898 0088 FFF7FEFF bl I2C_Enable_IRQ 7899 .LVL523: 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7900 .loc 1 3841 5 view .LVU2772 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7901 .loc 1 3841 12 is_stmt 0 view .LVU2773 7902 008c 2846 mov r0, r5 7903 008e 1BE0 b .L498 7904 .LVL524: 7905 .L506: 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7906 .loc 1 3788 7 is_stmt 1 view .LVU2774 7907 0090 0221 movs r1, #2 7908 0092 2046 mov r0, r4 7909 0094 FFF7FEFF bl I2C_Disable_IRQ 7910 .LVL525: 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7911 .loc 1 3791 7 view .LVU2775 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7912 .loc 1 3791 16 is_stmt 0 view .LVU2776 7913 0098 2368 ldr r3, [r4] 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7914 .loc 1 3791 26 view .LVU2777 7915 009a 1A68 ldr r2, [r3] 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7916 .loc 1 3791 10 view .LVU2778 7917 009c 12F4004F tst r2, #32768 7918 00a0 D1D0 beq .L501 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7919 .loc 1 3793 9 is_stmt 1 view .LVU2779 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7920 .loc 1 3793 23 is_stmt 0 view .LVU2780 7921 00a2 1A68 ldr r2, [r3] 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7922 .loc 1 3793 29 view .LVU2781 7923 00a4 22F40042 bic r2, r2, #32768 7924 00a8 1A60 str r2, [r3] 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7925 .loc 1 3795 9 is_stmt 1 view .LVU2782 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7926 .loc 1 3795 17 is_stmt 0 view .LVU2783 7927 00aa E36B ldr r3, [r4, #60] 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7928 .loc 1 3795 12 view .LVU2784 ARM GAS /tmp/cczJHHnF.s page 305 7929 00ac 002B cmp r3, #0 7930 00ae CAD0 beq .L501 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7931 .loc 1 3799 11 is_stmt 1 view .LVU2785 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7932 .loc 1 3799 43 is_stmt 0 view .LVU2786 7933 00b0 084A ldr r2, .L507+4 7934 00b2 5A63 str r2, [r3, #52] 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7935 .loc 1 3802 11 is_stmt 1 view .LVU2787 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7936 .loc 1 3802 15 is_stmt 0 view .LVU2788 7937 00b4 E06B ldr r0, [r4, #60] 7938 00b6 FFF7FEFF bl HAL_DMA_Abort_IT 7939 .LVL526: 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7940 .loc 1 3802 14 view .LVU2789 7941 00ba 0028 cmp r0, #0 7942 00bc C3D0 beq .L501 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7943 .loc 1 3805 13 is_stmt 1 view .LVU2790 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7944 .loc 1 3805 17 is_stmt 0 view .LVU2791 7945 00be E06B ldr r0, [r4, #60] 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7946 .loc 1 3805 25 view .LVU2792 7947 00c0 436B ldr r3, [r0, #52] 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7948 .loc 1 3805 13 view .LVU2793 7949 00c2 9847 blx r3 7950 .LVL527: 7951 00c4 BFE7 b .L501 7952 .LVL528: 7953 .L503: 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7954 .loc 1 3845 12 view .LVU2794 7955 00c6 0120 movs r0, #1 7956 .LVL529: 7957 .L498: 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7958 .loc 1 3847 1 view .LVU2795 7959 00c8 F8BD pop {r3, r4, r5, r6, r7, pc} 7960 .LVL530: 7961 .L504: 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7962 .loc 1 3781 5 view .LVU2796 7963 00ca 0220 movs r0, #2 7964 00cc FCE7 b .L498 7965 .L508: 7966 00ce 00BF .align 2 7967 .L507: 7968 00d0 00000000 .word I2C_Slave_ISR_IT 7969 00d4 00000000 .word I2C_DMAAbort 7970 .cfi_endproc 7971 .LFE157: 7973 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 7974 .align 1 ARM GAS /tmp/cczJHHnF.s page 306 7975 .global HAL_I2C_Slave_Seq_Transmit_DMA 7976 .syntax unified 7977 .thumb 7978 .thumb_func 7980 HAL_I2C_Slave_Seq_Transmit_DMA: 7981 .LVL531: 7982 .LFB158: 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7983 .loc 1 3861 1 is_stmt 1 view -0 7984 .cfi_startproc 7985 @ args = 0, pretend = 0, frame = 0 7986 @ frame_needed = 0, uses_anonymous_args = 0 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7987 .loc 1 3861 1 is_stmt 0 view .LVU2798 7988 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 7989 .cfi_def_cfa_offset 24 7990 .cfi_offset 3, -24 7991 .cfi_offset 4, -20 7992 .cfi_offset 5, -16 7993 .cfi_offset 6, -12 7994 .cfi_offset 7, -8 7995 .cfi_offset 14, -4 7996 0002 0446 mov r4, r0 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7997 .loc 1 3862 3 is_stmt 1 view .LVU2799 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7998 .loc 1 3865 3 view .LVU2800 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7999 .loc 1 3867 3 view .LVU2801 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8000 .loc 1 3867 22 is_stmt 0 view .LVU2802 8001 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8002 .LVL532: 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8003 .loc 1 3867 6 view .LVU2803 8004 0008 00F02800 and r0, r0, #40 8005 000c 2828 cmp r0, #40 8006 000e 40F0BB80 bne .L520 8007 0012 0F46 mov r7, r1 8008 0014 1646 mov r6, r2 8009 0016 1D46 mov r5, r3 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8010 .loc 1 3869 5 is_stmt 1 view .LVU2804 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8011 .loc 1 3869 8 is_stmt 0 view .LVU2805 8012 0018 0029 cmp r1, #0 8013 001a 51D0 beq .L511 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8014 .loc 1 3869 25 discriminator 1 view .LVU2806 8015 001c 002A cmp r2, #0 8016 001e 4FD0 beq .L511 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8017 .loc 1 3876 5 is_stmt 1 view .LVU2807 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8018 .loc 1 3876 5 view .LVU2808 8019 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8020 .LVL533: ARM GAS /tmp/cczJHHnF.s page 307 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8021 .loc 1 3876 5 is_stmt 0 view .LVU2809 8022 0024 012B cmp r3, #1 8023 0026 00F0B280 beq .L521 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8024 .loc 1 3876 5 is_stmt 1 discriminator 2 view .LVU2810 8025 002a 0123 movs r3, #1 8026 002c 84F84030 strb r3, [r4, #64] 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8027 .loc 1 3876 5 discriminator 2 view .LVU2811 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8028 .loc 1 3879 5 discriminator 2 view .LVU2812 8029 0030 48F20101 movw r1, #32769 8030 .LVL534: 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8031 .loc 1 3879 5 is_stmt 0 discriminator 2 view .LVU2813 8032 0034 2046 mov r0, r4 8033 0036 FFF7FEFF bl I2C_Disable_IRQ 8034 .LVL535: 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8035 .loc 1 3883 5 is_stmt 1 discriminator 2 view .LVU2814 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8036 .loc 1 3883 13 is_stmt 0 discriminator 2 view .LVU2815 8037 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8038 003e DBB2 uxtb r3, r3 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8039 .loc 1 3883 8 discriminator 2 view .LVU2816 8040 0040 2A2B cmp r3, #42 8041 0042 42D0 beq .L524 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8042 .loc 1 3908 10 is_stmt 1 view .LVU2817 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8043 .loc 1 3908 18 is_stmt 0 view .LVU2818 8044 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8045 0048 DBB2 uxtb r3, r3 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8046 .loc 1 3908 13 view .LVU2819 8047 004a 292B cmp r3, #41 8048 004c 59D0 beq .L525 8049 .L514: 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8050 .loc 1 3933 5 is_stmt 1 view .LVU2820 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8051 .loc 1 3935 5 view .LVU2821 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8052 .loc 1 3935 21 is_stmt 0 view .LVU2822 8053 004e 2923 movs r3, #41 8054 0050 84F84130 strb r3, [r4, #65] 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8055 .loc 1 3936 5 is_stmt 1 view .LVU2823 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8056 .loc 1 3936 21 is_stmt 0 view .LVU2824 8057 0054 2023 movs r3, #32 8058 0056 84F84230 strb r3, [r4, #66] 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8059 .loc 1 3937 5 is_stmt 1 view .LVU2825 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 308 8060 .loc 1 3937 21 is_stmt 0 view .LVU2826 8061 005a 0023 movs r3, #0 8062 005c 6364 str r3, [r4, #68] 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8063 .loc 1 3940 5 is_stmt 1 view .LVU2827 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8064 .loc 1 3940 9 is_stmt 0 view .LVU2828 8065 005e 2268 ldr r2, [r4] 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8066 .loc 1 3940 19 view .LVU2829 8067 0060 5368 ldr r3, [r2, #4] 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8068 .loc 1 3940 25 view .LVU2830 8069 0062 23F40043 bic r3, r3, #32768 8070 0066 5360 str r3, [r2, #4] 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8071 .loc 1 3943 5 is_stmt 1 view .LVU2831 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8072 .loc 1 3943 23 is_stmt 0 view .LVU2832 8073 0068 6762 str r7, [r4, #36] 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8074 .loc 1 3944 5 is_stmt 1 view .LVU2833 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8075 .loc 1 3944 23 is_stmt 0 view .LVU2834 8076 006a 6685 strh r6, [r4, #42] @ movhi 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8077 .loc 1 3945 5 is_stmt 1 view .LVU2835 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8078 .loc 1 3945 29 is_stmt 0 view .LVU2836 8079 006c 638D ldrh r3, [r4, #42] 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8080 .loc 1 3945 23 view .LVU2837 8081 006e 2385 strh r3, [r4, #40] @ movhi 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8082 .loc 1 3946 5 is_stmt 1 view .LVU2838 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8083 .loc 1 3946 23 is_stmt 0 view .LVU2839 8084 0070 E562 str r5, [r4, #44] 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8085 .loc 1 3947 5 is_stmt 1 view .LVU2840 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8086 .loc 1 3947 23 is_stmt 0 view .LVU2841 8087 0072 484B ldr r3, .L526 8088 0074 6363 str r3, [r4, #52] 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8089 .loc 1 3949 5 is_stmt 1 view .LVU2842 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8090 .loc 1 3949 13 is_stmt 0 view .LVU2843 8091 0076 A36B ldr r3, [r4, #56] 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8092 .loc 1 3949 8 view .LVU2844 8093 0078 002B cmp r3, #0 8094 007a 59D0 beq .L515 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8095 .loc 1 3952 7 is_stmt 1 view .LVU2845 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8096 .loc 1 3952 38 is_stmt 0 view .LVU2846 ARM GAS /tmp/cczJHHnF.s page 309 8097 007c 464A ldr r2, .L526+4 8098 007e 9A62 str r2, [r3, #40] 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8099 .loc 1 3955 7 is_stmt 1 view .LVU2847 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8100 .loc 1 3955 11 is_stmt 0 view .LVU2848 8101 0080 A36B ldr r3, [r4, #56] 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8102 .loc 1 3955 39 view .LVU2849 8103 0082 464A ldr r2, .L526+8 8104 0084 1A63 str r2, [r3, #48] 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8105 .loc 1 3958 7 is_stmt 1 view .LVU2850 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8106 .loc 1 3958 11 is_stmt 0 view .LVU2851 8107 0086 A26B ldr r2, [r4, #56] 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8108 .loc 1 3958 42 view .LVU2852 8109 0088 0023 movs r3, #0 8110 008a D362 str r3, [r2, #44] 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8111 .loc 1 3959 7 is_stmt 1 view .LVU2853 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8112 .loc 1 3959 11 is_stmt 0 view .LVU2854 8113 008c A26B ldr r2, [r4, #56] 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8114 .loc 1 3959 39 view .LVU2855 8115 008e 5363 str r3, [r2, #52] 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8116 .loc 1 3962 7 is_stmt 1 view .LVU2856 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8117 .loc 1 3962 86 is_stmt 0 view .LVU2857 8118 0090 2268 ldr r2, [r4] 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8119 .loc 1 3962 23 view .LVU2858 8120 0092 238D ldrh r3, [r4, #40] 8121 0094 2832 adds r2, r2, #40 8122 0096 3946 mov r1, r7 8123 0098 A06B ldr r0, [r4, #56] 8124 009a FFF7FEFF bl HAL_DMA_Start_IT 8125 .LVL536: 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8126 .loc 1 3980 5 is_stmt 1 view .LVU2859 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8127 .loc 1 3980 8 is_stmt 0 view .LVU2860 8128 009e 0546 mov r5, r0 8129 .LVL537: 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8130 .loc 1 3980 8 view .LVU2861 8131 00a0 0028 cmp r0, #0 8132 00a2 53D0 beq .L516 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8133 .loc 1 3991 7 is_stmt 1 view .LVU2862 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8134 .loc 1 3991 23 is_stmt 0 view .LVU2863 8135 00a4 2823 movs r3, #40 8136 00a6 84F84130 strb r3, [r4, #65] ARM GAS /tmp/cczJHHnF.s page 310 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8137 .loc 1 3992 7 is_stmt 1 view .LVU2864 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8138 .loc 1 3992 23 is_stmt 0 view .LVU2865 8139 00aa 0022 movs r2, #0 8140 00ac 84F84220 strb r2, [r4, #66] 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8141 .loc 1 3995 7 is_stmt 1 view .LVU2866 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8142 .loc 1 3995 11 is_stmt 0 view .LVU2867 8143 00b0 636C ldr r3, [r4, #68] 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8144 .loc 1 3995 23 view .LVU2868 8145 00b2 43F01003 orr r3, r3, #16 8146 00b6 6364 str r3, [r4, #68] 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8147 .loc 1 3998 7 is_stmt 1 view .LVU2869 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8148 .loc 1 3998 7 view .LVU2870 8149 00b8 84F84020 strb r2, [r4, #64] 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8150 .loc 1 3998 7 view .LVU2871 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8151 .loc 1 4000 7 view .LVU2872 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8152 .loc 1 4000 14 is_stmt 0 view .LVU2873 8153 00bc 0125 movs r5, #1 8154 00be 64E0 b .L510 8155 .LVL538: 8156 .L511: 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8157 .loc 1 3871 7 is_stmt 1 view .LVU2874 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8158 .loc 1 3871 23 is_stmt 0 view .LVU2875 8159 00c0 4FF40073 mov r3, #512 8160 .LVL539: 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8161 .loc 1 3871 23 view .LVU2876 8162 00c4 6364 str r3, [r4, #68] 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8163 .loc 1 3872 7 is_stmt 1 view .LVU2877 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8164 .loc 1 3872 15 is_stmt 0 view .LVU2878 8165 00c6 0125 movs r5, #1 8166 .LVL540: 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8167 .loc 1 3872 15 view .LVU2879 8168 00c8 5FE0 b .L510 8169 .LVL541: 8170 .L524: 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8171 .loc 1 3886 7 is_stmt 1 view .LVU2880 8172 00ca 0221 movs r1, #2 8173 00cc 2046 mov r0, r4 8174 00ce FFF7FEFF bl I2C_Disable_IRQ 8175 .LVL542: 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 311 8176 .loc 1 3888 7 view .LVU2881 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8177 .loc 1 3888 16 is_stmt 0 view .LVU2882 8178 00d2 2368 ldr r3, [r4] 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8179 .loc 1 3888 26 view .LVU2883 8180 00d4 1A68 ldr r2, [r3] 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8181 .loc 1 3888 10 view .LVU2884 8182 00d6 12F4004F tst r2, #32768 8183 00da B8D0 beq .L514 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8184 .loc 1 3891 9 is_stmt 1 view .LVU2885 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8185 .loc 1 3891 17 is_stmt 0 view .LVU2886 8186 00dc E26B ldr r2, [r4, #60] 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8187 .loc 1 3891 12 view .LVU2887 8188 00de 002A cmp r2, #0 8189 00e0 B5D0 beq .L514 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8190 .loc 1 3893 11 is_stmt 1 view .LVU2888 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8191 .loc 1 3893 25 is_stmt 0 view .LVU2889 8192 00e2 1A68 ldr r2, [r3] 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8193 .loc 1 3893 31 view .LVU2890 8194 00e4 22F40042 bic r2, r2, #32768 8195 00e8 1A60 str r2, [r3] 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8196 .loc 1 3897 11 is_stmt 1 view .LVU2891 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8197 .loc 1 3897 15 is_stmt 0 view .LVU2892 8198 00ea E36B ldr r3, [r4, #60] 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8199 .loc 1 3897 43 view .LVU2893 8200 00ec 2C4A ldr r2, .L526+12 8201 00ee 5A63 str r2, [r3, #52] 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8202 .loc 1 3900 11 is_stmt 1 view .LVU2894 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8203 .loc 1 3900 15 is_stmt 0 view .LVU2895 8204 00f0 E06B ldr r0, [r4, #60] 8205 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 8206 .LVL543: 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8207 .loc 1 3900 14 view .LVU2896 8208 00f6 0028 cmp r0, #0 8209 00f8 A9D0 beq .L514 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8210 .loc 1 3903 13 is_stmt 1 view .LVU2897 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8211 .loc 1 3903 17 is_stmt 0 view .LVU2898 8212 00fa E06B ldr r0, [r4, #60] 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8213 .loc 1 3903 25 view .LVU2899 8214 00fc 436B ldr r3, [r0, #52] ARM GAS /tmp/cczJHHnF.s page 312 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8215 .loc 1 3903 13 view .LVU2900 8216 00fe 9847 blx r3 8217 .LVL544: 8218 0100 A5E7 b .L514 8219 .L525: 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8220 .loc 1 3910 7 is_stmt 1 view .LVU2901 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8221 .loc 1 3910 16 is_stmt 0 view .LVU2902 8222 0102 2368 ldr r3, [r4] 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8223 .loc 1 3910 26 view .LVU2903 8224 0104 1A68 ldr r2, [r3] 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8225 .loc 1 3910 10 view .LVU2904 8226 0106 12F4804F tst r2, #16384 8227 010a A0D0 beq .L514 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8228 .loc 1 3912 9 is_stmt 1 view .LVU2905 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8229 .loc 1 3912 23 is_stmt 0 view .LVU2906 8230 010c 1A68 ldr r2, [r3] 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8231 .loc 1 3912 29 view .LVU2907 8232 010e 22F48042 bic r2, r2, #16384 8233 0112 1A60 str r2, [r3] 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8234 .loc 1 3915 9 is_stmt 1 view .LVU2908 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8235 .loc 1 3915 17 is_stmt 0 view .LVU2909 8236 0114 A36B ldr r3, [r4, #56] 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8237 .loc 1 3915 12 view .LVU2910 8238 0116 002B cmp r3, #0 8239 0118 99D0 beq .L514 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8240 .loc 1 3919 11 is_stmt 1 view .LVU2911 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8241 .loc 1 3919 43 is_stmt 0 view .LVU2912 8242 011a 214A ldr r2, .L526+12 8243 011c 5A63 str r2, [r3, #52] 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8244 .loc 1 3922 11 is_stmt 1 view .LVU2913 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8245 .loc 1 3922 15 is_stmt 0 view .LVU2914 8246 011e A06B ldr r0, [r4, #56] 8247 0120 FFF7FEFF bl HAL_DMA_Abort_IT 8248 .LVL545: 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8249 .loc 1 3922 14 view .LVU2915 8250 0124 0028 cmp r0, #0 8251 0126 92D0 beq .L514 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8252 .loc 1 3925 13 is_stmt 1 view .LVU2916 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8253 .loc 1 3925 17 is_stmt 0 view .LVU2917 ARM GAS /tmp/cczJHHnF.s page 313 8254 0128 A06B ldr r0, [r4, #56] 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8255 .loc 1 3925 25 view .LVU2918 8256 012a 436B ldr r3, [r0, #52] 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8257 .loc 1 3925 13 view .LVU2919 8258 012c 9847 blx r3 8259 .LVL546: 8260 012e 8EE7 b .L514 8261 .L515: 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8262 .loc 1 3968 7 is_stmt 1 view .LVU2920 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8263 .loc 1 3968 23 is_stmt 0 view .LVU2921 8264 0130 2823 movs r3, #40 8265 0132 84F84130 strb r3, [r4, #65] 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8266 .loc 1 3969 7 is_stmt 1 view .LVU2922 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8267 .loc 1 3969 23 is_stmt 0 view .LVU2923 8268 0136 0022 movs r2, #0 8269 0138 84F84220 strb r2, [r4, #66] 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8270 .loc 1 3972 7 is_stmt 1 view .LVU2924 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8271 .loc 1 3972 11 is_stmt 0 view .LVU2925 8272 013c 636C ldr r3, [r4, #68] 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8273 .loc 1 3972 23 view .LVU2926 8274 013e 43F08003 orr r3, r3, #128 8275 0142 6364 str r3, [r4, #68] 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8276 .loc 1 3975 7 is_stmt 1 view .LVU2927 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8277 .loc 1 3975 7 view .LVU2928 8278 0144 84F84020 strb r2, [r4, #64] 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8279 .loc 1 3975 7 view .LVU2929 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8280 .loc 1 3977 7 view .LVU2930 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8281 .loc 1 3977 14 is_stmt 0 view .LVU2931 8282 0148 0125 movs r5, #1 8283 .LVL547: 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8284 .loc 1 3977 14 view .LVU2932 8285 014a 1EE0 b .L510 8286 .LVL548: 8287 .L516: 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8288 .loc 1 3983 7 is_stmt 1 view .LVU2933 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8289 .loc 1 3983 11 is_stmt 0 view .LVU2934 8290 014c 638D ldrh r3, [r4, #42] 8291 014e 9BB2 uxth r3, r3 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8292 .loc 1 3983 30 view .LVU2935 ARM GAS /tmp/cczJHHnF.s page 314 8293 0150 228D ldrh r2, [r4, #40] 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8294 .loc 1 3983 23 view .LVU2936 8295 0152 9B1A subs r3, r3, r2 8296 0154 9BB2 uxth r3, r3 8297 0156 6385 strh r3, [r4, #42] @ movhi 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8298 .loc 1 3986 7 is_stmt 1 view .LVU2937 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8299 .loc 1 3986 22 is_stmt 0 view .LVU2938 8300 0158 0023 movs r3, #0 8301 015a 2385 strh r3, [r4, #40] @ movhi 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8302 .loc 1 4003 5 is_stmt 1 view .LVU2939 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8303 .loc 1 4003 9 is_stmt 0 view .LVU2940 8304 015c 2368 ldr r3, [r4] 8305 015e 9A69 ldr r2, [r3, #24] 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8306 .loc 1 4003 8 view .LVU2941 8307 0160 12F4803F tst r2, #65536 8308 0164 0DD1 bne .L518 8309 .L519: 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8310 .loc 1 4011 5 is_stmt 1 view .LVU2942 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8311 .loc 1 4011 5 view .LVU2943 8312 0166 0023 movs r3, #0 8313 0168 84F84030 strb r3, [r4, #64] 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8314 .loc 1 4011 5 view .LVU2944 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8315 .loc 1 4017 5 view .LVU2945 8316 016c 4FF40041 mov r1, #32768 8317 0170 2046 mov r0, r4 8318 .LVL549: 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8319 .loc 1 4017 5 is_stmt 0 view .LVU2946 8320 0172 FFF7FEFF bl I2C_Enable_IRQ 8321 .LVL550: 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8322 .loc 1 4020 5 is_stmt 1 view .LVU2947 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8323 .loc 1 4020 9 is_stmt 0 view .LVU2948 8324 0176 2268 ldr r2, [r4] 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8325 .loc 1 4020 19 view .LVU2949 8326 0178 1368 ldr r3, [r2] 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8327 .loc 1 4020 25 view .LVU2950 8328 017a 43F48043 orr r3, r3, #16384 8329 017e 1360 str r3, [r2] 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8330 .loc 1 4022 5 is_stmt 1 view .LVU2951 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8331 .loc 1 4022 12 is_stmt 0 view .LVU2952 8332 0180 03E0 b .L510 ARM GAS /tmp/cczJHHnF.s page 315 8333 .LVL551: 8334 .L518: 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8335 .loc 1 4007 7 is_stmt 1 view .LVU2953 8336 0182 0822 movs r2, #8 8337 0184 DA61 str r2, [r3, #28] 8338 0186 EEE7 b .L519 8339 .LVL552: 8340 .L520: 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8341 .loc 1 4026 12 is_stmt 0 view .LVU2954 8342 0188 0125 movs r5, #1 8343 .LVL553: 8344 .L510: 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8345 .loc 1 4028 1 view .LVU2955 8346 018a 2846 mov r0, r5 8347 018c F8BD pop {r3, r4, r5, r6, r7, pc} 8348 .LVL554: 8349 .L521: 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8350 .loc 1 3876 5 view .LVU2956 8351 018e 0225 movs r5, #2 8352 .LVL555: 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8353 .loc 1 3876 5 view .LVU2957 8354 0190 FBE7 b .L510 8355 .L527: 8356 0192 00BF .align 2 8357 .L526: 8358 0194 00000000 .word I2C_Slave_ISR_DMA 8359 0198 00000000 .word I2C_DMASlaveTransmitCplt 8360 019c 00000000 .word I2C_DMAError 8361 01a0 00000000 .word I2C_DMAAbort 8362 .cfi_endproc 8363 .LFE158: 8365 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 8366 .align 1 8367 .global HAL_I2C_Slave_Seq_Receive_IT 8368 .syntax unified 8369 .thumb 8370 .thumb_func 8372 HAL_I2C_Slave_Seq_Receive_IT: 8373 .LVL556: 8374 .LFB159: 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 8375 .loc 1 4042 1 is_stmt 1 view -0 8376 .cfi_startproc 8377 @ args = 0, pretend = 0, frame = 0 8378 @ frame_needed = 0, uses_anonymous_args = 0 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 8379 .loc 1 4042 1 is_stmt 0 view .LVU2959 8380 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8381 .cfi_def_cfa_offset 24 8382 .cfi_offset 3, -24 8383 .cfi_offset 4, -20 8384 .cfi_offset 5, -16 ARM GAS /tmp/cczJHHnF.s page 316 8385 .cfi_offset 6, -12 8386 .cfi_offset 7, -8 8387 .cfi_offset 14, -4 8388 0002 0446 mov r4, r0 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8389 .loc 1 4044 3 is_stmt 1 view .LVU2960 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8390 .loc 1 4046 3 view .LVU2961 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8391 .loc 1 4046 22 is_stmt 0 view .LVU2962 8392 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8393 .LVL557: 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8394 .loc 1 4046 6 view .LVU2963 8395 0008 00F02800 and r0, r0, #40 8396 000c 2828 cmp r0, #40 8397 000e 5AD1 bne .L534 8398 0010 0F46 mov r7, r1 8399 0012 1646 mov r6, r2 8400 0014 1D46 mov r5, r3 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8401 .loc 1 4048 5 is_stmt 1 view .LVU2964 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8402 .loc 1 4048 8 is_stmt 0 view .LVU2965 8403 0016 01B1 cbz r1, .L530 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8404 .loc 1 4048 25 discriminator 1 view .LVU2966 8405 0018 22B9 cbnz r2, .L531 8406 .L530: 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8407 .loc 1 4050 7 is_stmt 1 view .LVU2967 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8408 .loc 1 4050 23 is_stmt 0 view .LVU2968 8409 001a 4FF40073 mov r3, #512 8410 .LVL558: 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8411 .loc 1 4050 23 view .LVU2969 8412 001e 6364 str r3, [r4, #68] 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8413 .loc 1 4051 7 is_stmt 1 view .LVU2970 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8414 .loc 1 4051 15 is_stmt 0 view .LVU2971 8415 0020 0120 movs r0, #1 8416 0022 51E0 b .L529 8417 .LVL559: 8418 .L531: 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8419 .loc 1 4055 5 is_stmt 1 view .LVU2972 8420 0024 48F20201 movw r1, #32770 8421 .LVL560: 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8422 .loc 1 4055 5 is_stmt 0 view .LVU2973 8423 0028 2046 mov r0, r4 8424 002a FFF7FEFF bl I2C_Disable_IRQ 8425 .LVL561: 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8426 .loc 1 4058 5 is_stmt 1 view .LVU2974 ARM GAS /tmp/cczJHHnF.s page 317 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8427 .loc 1 4058 5 view .LVU2975 8428 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8429 0032 012B cmp r3, #1 8430 0034 49D0 beq .L535 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8431 .loc 1 4058 5 discriminator 2 view .LVU2976 8432 0036 0123 movs r3, #1 8433 0038 84F84030 strb r3, [r4, #64] 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8434 .loc 1 4058 5 discriminator 2 view .LVU2977 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8435 .loc 1 4062 5 discriminator 2 view .LVU2978 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8436 .loc 1 4062 13 is_stmt 0 discriminator 2 view .LVU2979 8437 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8438 0040 DBB2 uxtb r3, r3 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8439 .loc 1 4062 8 discriminator 2 view .LVU2980 8440 0042 292B cmp r3, #41 8441 0044 24D0 beq .L537 8442 .L532: 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8443 .loc 1 4088 5 is_stmt 1 view .LVU2981 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8444 .loc 1 4088 21 is_stmt 0 view .LVU2982 8445 0046 2A23 movs r3, #42 8446 0048 84F84130 strb r3, [r4, #65] 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8447 .loc 1 4089 5 is_stmt 1 view .LVU2983 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8448 .loc 1 4089 21 is_stmt 0 view .LVU2984 8449 004c 2023 movs r3, #32 8450 004e 84F84230 strb r3, [r4, #66] 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8451 .loc 1 4090 5 is_stmt 1 view .LVU2985 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8452 .loc 1 4090 21 is_stmt 0 view .LVU2986 8453 0052 0023 movs r3, #0 8454 0054 6364 str r3, [r4, #68] 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8455 .loc 1 4093 5 is_stmt 1 view .LVU2987 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8456 .loc 1 4093 9 is_stmt 0 view .LVU2988 8457 0056 2268 ldr r2, [r4] 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8458 .loc 1 4093 19 view .LVU2989 8459 0058 5368 ldr r3, [r2, #4] 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8460 .loc 1 4093 25 view .LVU2990 8461 005a 23F40043 bic r3, r3, #32768 8462 005e 5360 str r3, [r2, #4] 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8463 .loc 1 4096 5 is_stmt 1 view .LVU2991 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8464 .loc 1 4096 23 is_stmt 0 view .LVU2992 8465 0060 6762 str r7, [r4, #36] ARM GAS /tmp/cczJHHnF.s page 318 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8466 .loc 1 4097 5 is_stmt 1 view .LVU2993 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8467 .loc 1 4097 23 is_stmt 0 view .LVU2994 8468 0062 6685 strh r6, [r4, #42] @ movhi 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8469 .loc 1 4098 5 is_stmt 1 view .LVU2995 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8470 .loc 1 4098 29 is_stmt 0 view .LVU2996 8471 0064 638D ldrh r3, [r4, #42] 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8472 .loc 1 4098 23 view .LVU2997 8473 0066 2385 strh r3, [r4, #40] @ movhi 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8474 .loc 1 4099 5 is_stmt 1 view .LVU2998 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8475 .loc 1 4099 23 is_stmt 0 view .LVU2999 8476 0068 E562 str r5, [r4, #44] 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8477 .loc 1 4100 5 is_stmt 1 view .LVU3000 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8478 .loc 1 4100 23 is_stmt 0 view .LVU3001 8479 006a 194B ldr r3, .L538 8480 006c 6363 str r3, [r4, #52] 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8481 .loc 1 4102 5 is_stmt 1 view .LVU3002 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8482 .loc 1 4102 9 is_stmt 0 view .LVU3003 8483 006e 2368 ldr r3, [r4] 8484 0070 9A69 ldr r2, [r3, #24] 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8485 .loc 1 4102 8 view .LVU3004 8486 0072 12F4803F tst r2, #65536 8487 0076 01D1 bne .L533 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8488 .loc 1 4106 7 is_stmt 1 view .LVU3005 8489 0078 0822 movs r2, #8 8490 007a DA61 str r2, [r3, #28] 8491 .L533: 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8492 .loc 1 4110 5 view .LVU3006 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8493 .loc 1 4110 5 view .LVU3007 8494 007c 0025 movs r5, #0 8495 .LVL562: 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8496 .loc 1 4110 5 is_stmt 0 view .LVU3008 8497 007e 84F84050 strb r5, [r4, #64] 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8498 .loc 1 4110 5 is_stmt 1 view .LVU3009 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8499 .loc 1 4116 5 view .LVU3010 8500 0082 48F20201 movw r1, #32770 8501 0086 2046 mov r0, r4 8502 0088 FFF7FEFF bl I2C_Enable_IRQ 8503 .LVL563: 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 319 8504 .loc 1 4118 5 view .LVU3011 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8505 .loc 1 4118 12 is_stmt 0 view .LVU3012 8506 008c 2846 mov r0, r5 8507 008e 1BE0 b .L529 8508 .LVL564: 8509 .L537: 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8510 .loc 1 4065 7 is_stmt 1 view .LVU3013 8511 0090 0121 movs r1, #1 8512 0092 2046 mov r0, r4 8513 0094 FFF7FEFF bl I2C_Disable_IRQ 8514 .LVL565: 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8515 .loc 1 4067 7 view .LVU3014 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8516 .loc 1 4067 16 is_stmt 0 view .LVU3015 8517 0098 2368 ldr r3, [r4] 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8518 .loc 1 4067 26 view .LVU3016 8519 009a 1A68 ldr r2, [r3] 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8520 .loc 1 4067 10 view .LVU3017 8521 009c 12F4804F tst r2, #16384 8522 00a0 D1D0 beq .L532 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8523 .loc 1 4069 9 is_stmt 1 view .LVU3018 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8524 .loc 1 4069 23 is_stmt 0 view .LVU3019 8525 00a2 1A68 ldr r2, [r3] 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8526 .loc 1 4069 29 view .LVU3020 8527 00a4 22F48042 bic r2, r2, #16384 8528 00a8 1A60 str r2, [r3] 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8529 .loc 1 4072 9 is_stmt 1 view .LVU3021 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8530 .loc 1 4072 17 is_stmt 0 view .LVU3022 8531 00aa A36B ldr r3, [r4, #56] 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8532 .loc 1 4072 12 view .LVU3023 8533 00ac 002B cmp r3, #0 8534 00ae CAD0 beq .L532 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8535 .loc 1 4076 11 is_stmt 1 view .LVU3024 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8536 .loc 1 4076 43 is_stmt 0 view .LVU3025 8537 00b0 084A ldr r2, .L538+4 8538 00b2 5A63 str r2, [r3, #52] 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8539 .loc 1 4079 11 is_stmt 1 view .LVU3026 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8540 .loc 1 4079 15 is_stmt 0 view .LVU3027 8541 00b4 A06B ldr r0, [r4, #56] 8542 00b6 FFF7FEFF bl HAL_DMA_Abort_IT 8543 .LVL566: 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 320 8544 .loc 1 4079 14 view .LVU3028 8545 00ba 0028 cmp r0, #0 8546 00bc C3D0 beq .L532 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8547 .loc 1 4082 13 is_stmt 1 view .LVU3029 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8548 .loc 1 4082 17 is_stmt 0 view .LVU3030 8549 00be A06B ldr r0, [r4, #56] 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8550 .loc 1 4082 25 view .LVU3031 8551 00c0 436B ldr r3, [r0, #52] 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8552 .loc 1 4082 13 view .LVU3032 8553 00c2 9847 blx r3 8554 .LVL567: 8555 00c4 BFE7 b .L532 8556 .LVL568: 8557 .L534: 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8558 .loc 1 4122 12 view .LVU3033 8559 00c6 0120 movs r0, #1 8560 .LVL569: 8561 .L529: 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8562 .loc 1 4124 1 view .LVU3034 8563 00c8 F8BD pop {r3, r4, r5, r6, r7, pc} 8564 .LVL570: 8565 .L535: 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8566 .loc 1 4058 5 view .LVU3035 8567 00ca 0220 movs r0, #2 8568 00cc FCE7 b .L529 8569 .L539: 8570 00ce 00BF .align 2 8571 .L538: 8572 00d0 00000000 .word I2C_Slave_ISR_IT 8573 00d4 00000000 .word I2C_DMAAbort 8574 .cfi_endproc 8575 .LFE159: 8577 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 8578 .align 1 8579 .global HAL_I2C_Slave_Seq_Receive_DMA 8580 .syntax unified 8581 .thumb 8582 .thumb_func 8584 HAL_I2C_Slave_Seq_Receive_DMA: 8585 .LVL571: 8586 .LFB160: 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8587 .loc 1 4138 1 is_stmt 1 view -0 8588 .cfi_startproc 8589 @ args = 0, pretend = 0, frame = 0 8590 @ frame_needed = 0, uses_anonymous_args = 0 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8591 .loc 1 4138 1 is_stmt 0 view .LVU3037 8592 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8593 .cfi_def_cfa_offset 24 ARM GAS /tmp/cczJHHnF.s page 321 8594 .cfi_offset 3, -24 8595 .cfi_offset 4, -20 8596 .cfi_offset 5, -16 8597 .cfi_offset 6, -12 8598 .cfi_offset 7, -8 8599 .cfi_offset 14, -4 8600 0002 0446 mov r4, r0 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8601 .loc 1 4139 3 is_stmt 1 view .LVU3038 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8602 .loc 1 4142 3 view .LVU3039 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8603 .loc 1 4144 3 view .LVU3040 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8604 .loc 1 4144 22 is_stmt 0 view .LVU3041 8605 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8606 .LVL572: 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8607 .loc 1 4144 6 view .LVU3042 8608 0008 00F02800 and r0, r0, #40 8609 000c 2828 cmp r0, #40 8610 000e 40F0B980 bne .L551 8611 0012 0F46 mov r7, r1 8612 0014 1646 mov r6, r2 8613 0016 1D46 mov r5, r3 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8614 .loc 1 4146 5 is_stmt 1 view .LVU3043 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8615 .loc 1 4146 8 is_stmt 0 view .LVU3044 8616 0018 01B1 cbz r1, .L542 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8617 .loc 1 4146 25 discriminator 1 view .LVU3045 8618 001a 22B9 cbnz r2, .L543 8619 .L542: 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8620 .loc 1 4148 7 is_stmt 1 view .LVU3046 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8621 .loc 1 4148 23 is_stmt 0 view .LVU3047 8622 001c 4FF40073 mov r3, #512 8623 .LVL573: 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8624 .loc 1 4148 23 view .LVU3048 8625 0020 6364 str r3, [r4, #68] 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8626 .loc 1 4149 7 is_stmt 1 view .LVU3049 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8627 .loc 1 4149 15 is_stmt 0 view .LVU3050 8628 0022 0125 movs r5, #1 8629 .LVL574: 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8630 .loc 1 4149 15 view .LVU3051 8631 0024 AFE0 b .L541 8632 .LVL575: 8633 .L543: 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8634 .loc 1 4153 5 is_stmt 1 view .LVU3052 8635 0026 48F20201 movw r1, #32770 ARM GAS /tmp/cczJHHnF.s page 322 8636 .LVL576: 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8637 .loc 1 4153 5 is_stmt 0 view .LVU3053 8638 002a 2046 mov r0, r4 8639 002c FFF7FEFF bl I2C_Disable_IRQ 8640 .LVL577: 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8641 .loc 1 4156 5 is_stmt 1 view .LVU3054 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8642 .loc 1 4156 5 view .LVU3055 8643 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8644 0034 012B cmp r3, #1 8645 0036 00F0A880 beq .L552 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8646 .loc 1 4156 5 discriminator 2 view .LVU3056 8647 003a 0123 movs r3, #1 8648 003c 84F84030 strb r3, [r4, #64] 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8649 .loc 1 4156 5 discriminator 2 view .LVU3057 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8650 .loc 1 4160 5 discriminator 2 view .LVU3058 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8651 .loc 1 4160 13 is_stmt 0 discriminator 2 view .LVU3059 8652 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8653 0044 DBB2 uxtb r3, r3 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8654 .loc 1 4160 8 discriminator 2 view .LVU3060 8655 0046 292B cmp r3, #41 8656 0048 3DD0 beq .L555 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8657 .loc 1 4185 10 is_stmt 1 view .LVU3061 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8658 .loc 1 4185 18 is_stmt 0 view .LVU3062 8659 004a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8660 004e DBB2 uxtb r3, r3 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8661 .loc 1 4185 13 view .LVU3063 8662 0050 2A2B cmp r3, #42 8663 0052 54D0 beq .L556 8664 .L545: 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8665 .loc 1 4210 5 is_stmt 1 view .LVU3064 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8666 .loc 1 4212 5 view .LVU3065 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8667 .loc 1 4212 21 is_stmt 0 view .LVU3066 8668 0054 2A23 movs r3, #42 8669 0056 84F84130 strb r3, [r4, #65] 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8670 .loc 1 4213 5 is_stmt 1 view .LVU3067 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8671 .loc 1 4213 21 is_stmt 0 view .LVU3068 8672 005a 2023 movs r3, #32 8673 005c 84F84230 strb r3, [r4, #66] 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8674 .loc 1 4214 5 is_stmt 1 view .LVU3069 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 323 8675 .loc 1 4214 21 is_stmt 0 view .LVU3070 8676 0060 0023 movs r3, #0 8677 0062 6364 str r3, [r4, #68] 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8678 .loc 1 4217 5 is_stmt 1 view .LVU3071 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8679 .loc 1 4217 9 is_stmt 0 view .LVU3072 8680 0064 2268 ldr r2, [r4] 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8681 .loc 1 4217 19 view .LVU3073 8682 0066 5368 ldr r3, [r2, #4] 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8683 .loc 1 4217 25 view .LVU3074 8684 0068 23F40043 bic r3, r3, #32768 8685 006c 5360 str r3, [r2, #4] 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8686 .loc 1 4220 5 is_stmt 1 view .LVU3075 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8687 .loc 1 4220 23 is_stmt 0 view .LVU3076 8688 006e 6762 str r7, [r4, #36] 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8689 .loc 1 4221 5 is_stmt 1 view .LVU3077 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8690 .loc 1 4221 23 is_stmt 0 view .LVU3078 8691 0070 6685 strh r6, [r4, #42] @ movhi 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8692 .loc 1 4222 5 is_stmt 1 view .LVU3079 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8693 .loc 1 4222 29 is_stmt 0 view .LVU3080 8694 0072 638D ldrh r3, [r4, #42] 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8695 .loc 1 4222 23 view .LVU3081 8696 0074 2385 strh r3, [r4, #40] @ movhi 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8697 .loc 1 4223 5 is_stmt 1 view .LVU3082 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8698 .loc 1 4223 23 is_stmt 0 view .LVU3083 8699 0076 E562 str r5, [r4, #44] 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8700 .loc 1 4224 5 is_stmt 1 view .LVU3084 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8701 .loc 1 4224 23 is_stmt 0 view .LVU3085 8702 0078 454B ldr r3, .L557 8703 007a 6363 str r3, [r4, #52] 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8704 .loc 1 4226 5 is_stmt 1 view .LVU3086 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8705 .loc 1 4226 13 is_stmt 0 view .LVU3087 8706 007c E36B ldr r3, [r4, #60] 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8707 .loc 1 4226 8 view .LVU3088 8708 007e 002B cmp r3, #0 8709 0080 54D0 beq .L546 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8710 .loc 1 4229 7 is_stmt 1 view .LVU3089 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8711 .loc 1 4229 38 is_stmt 0 view .LVU3090 ARM GAS /tmp/cczJHHnF.s page 324 8712 0082 444A ldr r2, .L557+4 8713 0084 9A62 str r2, [r3, #40] 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8714 .loc 1 4232 7 is_stmt 1 view .LVU3091 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8715 .loc 1 4232 11 is_stmt 0 view .LVU3092 8716 0086 E36B ldr r3, [r4, #60] 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8717 .loc 1 4232 39 view .LVU3093 8718 0088 434A ldr r2, .L557+8 8719 008a 1A63 str r2, [r3, #48] 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8720 .loc 1 4235 7 is_stmt 1 view .LVU3094 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8721 .loc 1 4235 11 is_stmt 0 view .LVU3095 8722 008c E26B ldr r2, [r4, #60] 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8723 .loc 1 4235 42 view .LVU3096 8724 008e 0023 movs r3, #0 8725 0090 D362 str r3, [r2, #44] 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8726 .loc 1 4236 7 is_stmt 1 view .LVU3097 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8727 .loc 1 4236 11 is_stmt 0 view .LVU3098 8728 0092 E26B ldr r2, [r4, #60] 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8729 .loc 1 4236 39 view .LVU3099 8730 0094 5363 str r3, [r2, #52] 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 8731 .loc 1 4239 7 is_stmt 1 view .LVU3100 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 8732 .loc 1 4239 69 is_stmt 0 view .LVU3101 8733 0096 2168 ldr r1, [r4] 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 8734 .loc 1 4239 23 view .LVU3102 8735 0098 238D ldrh r3, [r4, #40] 8736 009a 3A46 mov r2, r7 8737 009c 2431 adds r1, r1, #36 8738 009e E06B ldr r0, [r4, #60] 8739 00a0 FFF7FEFF bl HAL_DMA_Start_IT 8740 .LVL578: 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8741 .loc 1 4257 5 is_stmt 1 view .LVU3103 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8742 .loc 1 4257 8 is_stmt 0 view .LVU3104 8743 00a4 0546 mov r5, r0 8744 .LVL579: 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8745 .loc 1 4257 8 view .LVU3105 8746 00a6 0028 cmp r0, #0 8747 00a8 4ED0 beq .L547 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8748 .loc 1 4268 7 is_stmt 1 view .LVU3106 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8749 .loc 1 4268 23 is_stmt 0 view .LVU3107 8750 00aa 2823 movs r3, #40 8751 00ac 84F84130 strb r3, [r4, #65] ARM GAS /tmp/cczJHHnF.s page 325 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8752 .loc 1 4269 7 is_stmt 1 view .LVU3108 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8753 .loc 1 4269 23 is_stmt 0 view .LVU3109 8754 00b0 0022 movs r2, #0 8755 00b2 84F84220 strb r2, [r4, #66] 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8756 .loc 1 4272 7 is_stmt 1 view .LVU3110 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8757 .loc 1 4272 11 is_stmt 0 view .LVU3111 8758 00b6 636C ldr r3, [r4, #68] 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8759 .loc 1 4272 23 view .LVU3112 8760 00b8 43F01003 orr r3, r3, #16 8761 00bc 6364 str r3, [r4, #68] 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8762 .loc 1 4275 7 is_stmt 1 view .LVU3113 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8763 .loc 1 4275 7 view .LVU3114 8764 00be 84F84020 strb r2, [r4, #64] 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8765 .loc 1 4275 7 view .LVU3115 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8766 .loc 1 4277 7 view .LVU3116 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8767 .loc 1 4277 14 is_stmt 0 view .LVU3117 8768 00c2 0125 movs r5, #1 8769 00c4 5FE0 b .L541 8770 .LVL580: 8771 .L555: 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8772 .loc 1 4163 7 is_stmt 1 view .LVU3118 8773 00c6 0121 movs r1, #1 8774 00c8 2046 mov r0, r4 8775 00ca FFF7FEFF bl I2C_Disable_IRQ 8776 .LVL581: 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8777 .loc 1 4165 7 view .LVU3119 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8778 .loc 1 4165 16 is_stmt 0 view .LVU3120 8779 00ce 2368 ldr r3, [r4] 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8780 .loc 1 4165 26 view .LVU3121 8781 00d0 1A68 ldr r2, [r3] 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8782 .loc 1 4165 10 view .LVU3122 8783 00d2 12F4804F tst r2, #16384 8784 00d6 BDD0 beq .L545 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8785 .loc 1 4168 9 is_stmt 1 view .LVU3123 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8786 .loc 1 4168 17 is_stmt 0 view .LVU3124 8787 00d8 A26B ldr r2, [r4, #56] 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8788 .loc 1 4168 12 view .LVU3125 8789 00da 002A cmp r2, #0 8790 00dc BAD0 beq .L545 ARM GAS /tmp/cczJHHnF.s page 326 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8791 .loc 1 4170 11 is_stmt 1 view .LVU3126 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8792 .loc 1 4170 25 is_stmt 0 view .LVU3127 8793 00de 1A68 ldr r2, [r3] 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8794 .loc 1 4170 31 view .LVU3128 8795 00e0 22F48042 bic r2, r2, #16384 8796 00e4 1A60 str r2, [r3] 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8797 .loc 1 4174 11 is_stmt 1 view .LVU3129 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8798 .loc 1 4174 15 is_stmt 0 view .LVU3130 8799 00e6 A36B ldr r3, [r4, #56] 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8800 .loc 1 4174 43 view .LVU3131 8801 00e8 2C4A ldr r2, .L557+12 8802 00ea 5A63 str r2, [r3, #52] 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8803 .loc 1 4177 11 is_stmt 1 view .LVU3132 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8804 .loc 1 4177 15 is_stmt 0 view .LVU3133 8805 00ec A06B ldr r0, [r4, #56] 8806 00ee FFF7FEFF bl HAL_DMA_Abort_IT 8807 .LVL582: 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8808 .loc 1 4177 14 view .LVU3134 8809 00f2 0028 cmp r0, #0 8810 00f4 AED0 beq .L545 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8811 .loc 1 4180 13 is_stmt 1 view .LVU3135 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8812 .loc 1 4180 17 is_stmt 0 view .LVU3136 8813 00f6 A06B ldr r0, [r4, #56] 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8814 .loc 1 4180 25 view .LVU3137 8815 00f8 436B ldr r3, [r0, #52] 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8816 .loc 1 4180 13 view .LVU3138 8817 00fa 9847 blx r3 8818 .LVL583: 8819 00fc AAE7 b .L545 8820 .L556: 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8821 .loc 1 4187 7 is_stmt 1 view .LVU3139 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8822 .loc 1 4187 16 is_stmt 0 view .LVU3140 8823 00fe 2368 ldr r3, [r4] 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8824 .loc 1 4187 26 view .LVU3141 8825 0100 1A68 ldr r2, [r3] 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8826 .loc 1 4187 10 view .LVU3142 8827 0102 12F4004F tst r2, #32768 8828 0106 A5D0 beq .L545 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8829 .loc 1 4189 9 is_stmt 1 view .LVU3143 ARM GAS /tmp/cczJHHnF.s page 327 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8830 .loc 1 4189 23 is_stmt 0 view .LVU3144 8831 0108 1A68 ldr r2, [r3] 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8832 .loc 1 4189 29 view .LVU3145 8833 010a 22F40042 bic r2, r2, #32768 8834 010e 1A60 str r2, [r3] 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8835 .loc 1 4192 9 is_stmt 1 view .LVU3146 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8836 .loc 1 4192 17 is_stmt 0 view .LVU3147 8837 0110 E36B ldr r3, [r4, #60] 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8838 .loc 1 4192 12 view .LVU3148 8839 0112 002B cmp r3, #0 8840 0114 9ED0 beq .L545 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8841 .loc 1 4196 11 is_stmt 1 view .LVU3149 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8842 .loc 1 4196 43 is_stmt 0 view .LVU3150 8843 0116 214A ldr r2, .L557+12 8844 0118 5A63 str r2, [r3, #52] 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8845 .loc 1 4199 11 is_stmt 1 view .LVU3151 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8846 .loc 1 4199 15 is_stmt 0 view .LVU3152 8847 011a E06B ldr r0, [r4, #60] 8848 011c FFF7FEFF bl HAL_DMA_Abort_IT 8849 .LVL584: 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8850 .loc 1 4199 14 view .LVU3153 8851 0120 0028 cmp r0, #0 8852 0122 97D0 beq .L545 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8853 .loc 1 4202 13 is_stmt 1 view .LVU3154 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8854 .loc 1 4202 17 is_stmt 0 view .LVU3155 8855 0124 E06B ldr r0, [r4, #60] 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8856 .loc 1 4202 25 view .LVU3156 8857 0126 436B ldr r3, [r0, #52] 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8858 .loc 1 4202 13 view .LVU3157 8859 0128 9847 blx r3 8860 .LVL585: 8861 012a 93E7 b .L545 8862 .L546: 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8863 .loc 1 4245 7 is_stmt 1 view .LVU3158 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8864 .loc 1 4245 23 is_stmt 0 view .LVU3159 8865 012c 2823 movs r3, #40 8866 012e 84F84130 strb r3, [r4, #65] 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8867 .loc 1 4246 7 is_stmt 1 view .LVU3160 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8868 .loc 1 4246 23 is_stmt 0 view .LVU3161 ARM GAS /tmp/cczJHHnF.s page 328 8869 0132 0022 movs r2, #0 8870 0134 84F84220 strb r2, [r4, #66] 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8871 .loc 1 4249 7 is_stmt 1 view .LVU3162 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8872 .loc 1 4249 11 is_stmt 0 view .LVU3163 8873 0138 636C ldr r3, [r4, #68] 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8874 .loc 1 4249 23 view .LVU3164 8875 013a 43F08003 orr r3, r3, #128 8876 013e 6364 str r3, [r4, #68] 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8877 .loc 1 4252 7 is_stmt 1 view .LVU3165 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8878 .loc 1 4252 7 view .LVU3166 8879 0140 84F84020 strb r2, [r4, #64] 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8880 .loc 1 4252 7 view .LVU3167 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8881 .loc 1 4254 7 view .LVU3168 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8882 .loc 1 4254 14 is_stmt 0 view .LVU3169 8883 0144 0125 movs r5, #1 8884 .LVL586: 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8885 .loc 1 4254 14 view .LVU3170 8886 0146 1EE0 b .L541 8887 .LVL587: 8888 .L547: 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8889 .loc 1 4260 7 is_stmt 1 view .LVU3171 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8890 .loc 1 4260 11 is_stmt 0 view .LVU3172 8891 0148 638D ldrh r3, [r4, #42] 8892 014a 9BB2 uxth r3, r3 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8893 .loc 1 4260 30 view .LVU3173 8894 014c 228D ldrh r2, [r4, #40] 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8895 .loc 1 4260 23 view .LVU3174 8896 014e 9B1A subs r3, r3, r2 8897 0150 9BB2 uxth r3, r3 8898 0152 6385 strh r3, [r4, #42] @ movhi 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8899 .loc 1 4263 7 is_stmt 1 view .LVU3175 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8900 .loc 1 4263 22 is_stmt 0 view .LVU3176 8901 0154 0023 movs r3, #0 8902 0156 2385 strh r3, [r4, #40] @ movhi 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8903 .loc 1 4280 5 is_stmt 1 view .LVU3177 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8904 .loc 1 4280 9 is_stmt 0 view .LVU3178 8905 0158 2368 ldr r3, [r4] 8906 015a 9A69 ldr r2, [r3, #24] 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8907 .loc 1 4280 8 view .LVU3179 ARM GAS /tmp/cczJHHnF.s page 329 8908 015c 12F4803F tst r2, #65536 8909 0160 0DD0 beq .L549 8910 .L550: 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8911 .loc 1 4288 5 is_stmt 1 view .LVU3180 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8912 .loc 1 4288 5 view .LVU3181 8913 0162 0023 movs r3, #0 8914 0164 84F84030 strb r3, [r4, #64] 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8915 .loc 1 4288 5 view .LVU3182 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8916 .loc 1 4294 5 view .LVU3183 8917 0168 48F20201 movw r1, #32770 8918 016c 2046 mov r0, r4 8919 .LVL588: 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8920 .loc 1 4294 5 is_stmt 0 view .LVU3184 8921 016e FFF7FEFF bl I2C_Enable_IRQ 8922 .LVL589: 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8923 .loc 1 4297 5 is_stmt 1 view .LVU3185 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8924 .loc 1 4297 9 is_stmt 0 view .LVU3186 8925 0172 2268 ldr r2, [r4] 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8926 .loc 1 4297 19 view .LVU3187 8927 0174 1368 ldr r3, [r2] 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8928 .loc 1 4297 25 view .LVU3188 8929 0176 43F40043 orr r3, r3, #32768 8930 017a 1360 str r3, [r2] 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8931 .loc 1 4299 5 is_stmt 1 view .LVU3189 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8932 .loc 1 4299 12 is_stmt 0 view .LVU3190 8933 017c 03E0 b .L541 8934 .LVL590: 8935 .L549: 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8936 .loc 1 4284 7 is_stmt 1 view .LVU3191 8937 017e 0822 movs r2, #8 8938 0180 DA61 str r2, [r3, #28] 8939 0182 EEE7 b .L550 8940 .LVL591: 8941 .L551: 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8942 .loc 1 4303 12 is_stmt 0 view .LVU3192 8943 0184 0125 movs r5, #1 8944 .LVL592: 8945 .L541: 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8946 .loc 1 4305 1 view .LVU3193 8947 0186 2846 mov r0, r5 8948 0188 F8BD pop {r3, r4, r5, r6, r7, pc} 8949 .LVL593: 8950 .L552: ARM GAS /tmp/cczJHHnF.s page 330 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8951 .loc 1 4156 5 view .LVU3194 8952 018a 0225 movs r5, #2 8953 .LVL594: 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8954 .loc 1 4156 5 view .LVU3195 8955 018c FBE7 b .L541 8956 .L558: 8957 018e 00BF .align 2 8958 .L557: 8959 0190 00000000 .word I2C_Slave_ISR_DMA 8960 0194 00000000 .word I2C_DMASlaveReceiveCplt 8961 0198 00000000 .word I2C_DMAError 8962 019c 00000000 .word I2C_DMAAbort 8963 .cfi_endproc 8964 .LFE160: 8966 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 8967 .align 1 8968 .global HAL_I2C_EnableListen_IT 8969 .syntax unified 8970 .thumb 8971 .thumb_func 8973 HAL_I2C_EnableListen_IT: 8974 .LVL595: 8975 .LFB161: 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 8976 .loc 1 4314 1 is_stmt 1 view -0 8977 .cfi_startproc 8978 @ args = 0, pretend = 0, frame = 0 8979 @ frame_needed = 0, uses_anonymous_args = 0 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 8980 .loc 1 4314 1 is_stmt 0 view .LVU3197 8981 0000 08B5 push {r3, lr} 8982 .cfi_def_cfa_offset 8 8983 .cfi_offset 3, -8 8984 .cfi_offset 14, -4 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8985 .loc 1 4315 3 is_stmt 1 view .LVU3198 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8986 .loc 1 4315 11 is_stmt 0 view .LVU3199 8987 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 8988 0006 DBB2 uxtb r3, r3 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8989 .loc 1 4315 6 view .LVU3200 8990 0008 202B cmp r3, #32 8991 000a 01D0 beq .L563 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8992 .loc 1 4327 12 view .LVU3201 8993 000c 0220 movs r0, #2 8994 .LVL596: 8995 .L560: 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8996 .loc 1 4329 1 view .LVU3202 8997 000e 08BD pop {r3, pc} 8998 .LVL597: 8999 .L563: 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; ARM GAS /tmp/cczJHHnF.s page 331 9000 .loc 1 4317 5 is_stmt 1 view .LVU3203 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9001 .loc 1 4317 17 is_stmt 0 view .LVU3204 9002 0010 2823 movs r3, #40 9003 0012 80F84130 strb r3, [r0, #65] 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9004 .loc 1 4318 5 is_stmt 1 view .LVU3205 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9005 .loc 1 4318 19 is_stmt 0 view .LVU3206 9006 0016 044B ldr r3, .L564 9007 0018 4363 str r3, [r0, #52] 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9008 .loc 1 4321 5 is_stmt 1 view .LVU3207 9009 001a 4FF40041 mov r1, #32768 9010 001e FFF7FEFF bl I2C_Enable_IRQ 9011 .LVL598: 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9012 .loc 1 4323 5 view .LVU3208 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9013 .loc 1 4323 12 is_stmt 0 view .LVU3209 9014 0022 0020 movs r0, #0 9015 0024 F3E7 b .L560 9016 .L565: 9017 0026 00BF .align 2 9018 .L564: 9019 0028 00000000 .word I2C_Slave_ISR_IT 9020 .cfi_endproc 9021 .LFE161: 9023 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9024 .align 1 9025 .global HAL_I2C_DisableListen_IT 9026 .syntax unified 9027 .thumb 9028 .thumb_func 9030 HAL_I2C_DisableListen_IT: 9031 .LVL599: 9032 .LFB162: 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9033 .loc 1 4338 1 is_stmt 1 view -0 9034 .cfi_startproc 9035 @ args = 0, pretend = 0, frame = 0 9036 @ frame_needed = 0, uses_anonymous_args = 0 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9037 .loc 1 4340 3 view .LVU3211 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9038 .loc 1 4343 3 view .LVU3212 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9039 .loc 1 4343 11 is_stmt 0 view .LVU3213 9040 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9041 0004 DBB2 uxtb r3, r3 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9042 .loc 1 4343 6 view .LVU3214 9043 0006 282B cmp r3, #40 9044 0008 01D0 beq .L573 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9045 .loc 1 4358 12 view .LVU3215 9046 000a 0220 movs r0, #2 ARM GAS /tmp/cczJHHnF.s page 332 9047 .LVL600: 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9048 .loc 1 4360 1 view .LVU3216 9049 000c 7047 bx lr 9050 .LVL601: 9051 .L573: 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9052 .loc 1 4338 1 view .LVU3217 9053 000e 10B5 push {r4, lr} 9054 .cfi_def_cfa_offset 8 9055 .cfi_offset 4, -8 9056 .cfi_offset 14, -4 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9057 .loc 1 4345 5 is_stmt 1 view .LVU3218 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9058 .loc 1 4345 26 is_stmt 0 view .LVU3219 9059 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9060 .LVL602: 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9061 .loc 1 4346 5 is_stmt 1 view .LVU3220 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9062 .loc 1 4346 48 is_stmt 0 view .LVU3221 9063 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9064 .loc 1 4346 31 view .LVU3222 9065 0018 02F00302 and r2, r2, #3 9066 .LVL603: 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9067 .loc 1 4346 31 view .LVU3223 9068 001c 1343 orrs r3, r3, r2 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9069 .loc 1 4346 25 view .LVU3224 9070 001e 0363 str r3, [r0, #48] 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9071 .loc 1 4347 5 is_stmt 1 view .LVU3225 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9072 .loc 1 4347 17 is_stmt 0 view .LVU3226 9073 0020 2023 movs r3, #32 9074 0022 80F84130 strb r3, [r0, #65] 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9075 .loc 1 4348 5 is_stmt 1 view .LVU3227 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9076 .loc 1 4348 16 is_stmt 0 view .LVU3228 9077 0026 0024 movs r4, #0 9078 0028 80F84240 strb r4, [r0, #66] 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9079 .loc 1 4349 5 is_stmt 1 view .LVU3229 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9080 .loc 1 4349 19 is_stmt 0 view .LVU3230 9081 002c 4463 str r4, [r0, #52] 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9082 .loc 1 4352 5 is_stmt 1 view .LVU3231 9083 002e 4FF40041 mov r1, #32768 9084 0032 FFF7FEFF bl I2C_Disable_IRQ 9085 .LVL604: 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9086 .loc 1 4354 5 view .LVU3232 ARM GAS /tmp/cczJHHnF.s page 333 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9087 .loc 1 4354 12 is_stmt 0 view .LVU3233 9088 0036 2046 mov r0, r4 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9089 .loc 1 4360 1 view .LVU3234 9090 0038 10BD pop {r4, pc} 9091 .cfi_endproc 9092 .LFE162: 9094 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9095 .align 1 9096 .global HAL_I2C_Master_Abort_IT 9097 .syntax unified 9098 .thumb 9099 .thumb_func 9101 HAL_I2C_Master_Abort_IT: 9102 .LVL605: 9103 .LFB163: 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9104 .loc 1 4371 1 is_stmt 1 view -0 9105 .cfi_startproc 9106 @ args = 0, pretend = 0, frame = 0 9107 @ frame_needed = 0, uses_anonymous_args = 0 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9108 .loc 1 4372 3 view .LVU3236 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9109 .loc 1 4372 11 is_stmt 0 view .LVU3237 9110 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9111 0004 DBB2 uxtb r3, r3 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9112 .loc 1 4372 6 view .LVU3238 9113 0006 102B cmp r3, #16 9114 0008 36D1 bne .L578 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9115 .loc 1 4371 1 view .LVU3239 9116 000a 30B5 push {r4, r5, lr} 9117 .cfi_def_cfa_offset 12 9118 .cfi_offset 4, -12 9119 .cfi_offset 5, -8 9120 .cfi_offset 14, -4 9121 000c 83B0 sub sp, sp, #12 9122 .cfi_def_cfa_offset 24 9123 000e 0446 mov r4, r0 9124 0010 0D46 mov r5, r1 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9125 .loc 1 4375 5 is_stmt 1 view .LVU3240 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9126 .loc 1 4375 5 view .LVU3241 9127 0012 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 9128 0016 012B cmp r3, #1 9129 0018 30D0 beq .L579 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9130 .loc 1 4375 5 discriminator 2 view .LVU3242 9131 001a 0123 movs r3, #1 9132 001c 80F84030 strb r3, [r0, #64] 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9133 .loc 1 4375 5 discriminator 2 view .LVU3243 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 334 9134 .loc 1 4378 5 discriminator 2 view .LVU3244 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9135 .loc 1 4378 13 is_stmt 0 discriminator 2 view .LVU3245 9136 0020 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9137 0024 DBB2 uxtb r3, r3 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9138 .loc 1 4378 8 discriminator 2 view .LVU3246 9139 0026 212B cmp r3, #33 9140 0028 1AD0 beq .L584 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9141 .loc 1 4383 10 is_stmt 1 view .LVU3247 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9142 .loc 1 4383 18 is_stmt 0 view .LVU3248 9143 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9144 002e DBB2 uxtb r3, r3 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9145 .loc 1 4383 13 view .LVU3249 9146 0030 222B cmp r3, #34 9147 0032 1BD0 beq .L585 9148 .LVL606: 9149 .L577: 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9150 .loc 1 4391 5 is_stmt 1 view .LVU3250 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9151 .loc 1 4394 5 view .LVU3251 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9152 .loc 1 4394 17 is_stmt 0 view .LVU3252 9153 0034 6023 movs r3, #96 9154 0036 84F84130 strb r3, [r4, #65] 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9155 .loc 1 4398 5 is_stmt 1 view .LVU3253 9156 003a 114B ldr r3, .L586 9157 003c 0093 str r3, [sp] 9158 003e 4FF00073 mov r3, #33554432 9159 0042 0122 movs r2, #1 9160 0044 2946 mov r1, r5 9161 0046 2046 mov r0, r4 9162 0048 FFF7FEFF bl I2C_TransferConfig 9163 .LVL607: 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9164 .loc 1 4401 5 view .LVU3254 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9165 .loc 1 4401 5 view .LVU3255 9166 004c 0025 movs r5, #0 9167 004e 84F84050 strb r5, [r4, #64] 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9168 .loc 1 4401 5 view .LVU3256 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9169 .loc 1 4406 5 view .LVU3257 9170 0052 2021 movs r1, #32 9171 0054 2046 mov r0, r4 9172 0056 FFF7FEFF bl I2C_Enable_IRQ 9173 .LVL608: 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9174 .loc 1 4408 5 view .LVU3258 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9175 .loc 1 4408 12 is_stmt 0 view .LVU3259 ARM GAS /tmp/cczJHHnF.s page 335 9176 005a 2846 mov r0, r5 9177 .L575: 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9178 .loc 1 4416 1 view .LVU3260 9179 005c 03B0 add sp, sp, #12 9180 .cfi_remember_state 9181 .cfi_def_cfa_offset 12 9182 @ sp needed 9183 005e 30BD pop {r4, r5, pc} 9184 .LVL609: 9185 .L584: 9186 .cfi_restore_state 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9187 .loc 1 4380 7 is_stmt 1 view .LVU3261 9188 0060 0121 movs r1, #1 9189 .LVL610: 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9190 .loc 1 4380 7 is_stmt 0 view .LVU3262 9191 0062 FFF7FEFF bl I2C_Disable_IRQ 9192 .LVL611: 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9193 .loc 1 4381 7 is_stmt 1 view .LVU3263 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9194 .loc 1 4381 27 is_stmt 0 view .LVU3264 9195 0066 1123 movs r3, #17 9196 0068 2363 str r3, [r4, #48] 9197 006a E3E7 b .L577 9198 .LVL612: 9199 .L585: 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9200 .loc 1 4385 7 is_stmt 1 view .LVU3265 9201 006c 0221 movs r1, #2 9202 .LVL613: 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9203 .loc 1 4385 7 is_stmt 0 view .LVU3266 9204 006e FFF7FEFF bl I2C_Disable_IRQ 9205 .LVL614: 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9206 .loc 1 4386 7 is_stmt 1 view .LVU3267 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9207 .loc 1 4386 27 is_stmt 0 view .LVU3268 9208 0072 1223 movs r3, #18 9209 0074 2363 str r3, [r4, #48] 9210 0076 DDE7 b .L577 9211 .LVL615: 9212 .L578: 9213 .cfi_def_cfa_offset 0 9214 .cfi_restore 4 9215 .cfi_restore 5 9216 .cfi_restore 14 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9217 .loc 1 4414 12 view .LVU3269 9218 0078 0120 movs r0, #1 9219 .LVL616: 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9220 .loc 1 4416 1 view .LVU3270 9221 007a 7047 bx lr ARM GAS /tmp/cczJHHnF.s page 336 9222 .LVL617: 9223 .L579: 9224 .cfi_def_cfa_offset 24 9225 .cfi_offset 4, -12 9226 .cfi_offset 5, -8 9227 .cfi_offset 14, -4 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9228 .loc 1 4375 5 view .LVU3271 9229 007c 0220 movs r0, #2 9230 .LVL618: 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9231 .loc 1 4375 5 view .LVU3272 9232 007e EDE7 b .L575 9233 .L587: 9234 .align 2 9235 .L586: 9236 0080 00400080 .word -2147467264 9237 .cfi_endproc 9238 .LFE163: 9240 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 9241 .align 1 9242 .global HAL_I2C_EV_IRQHandler 9243 .syntax unified 9244 .thumb 9245 .thumb_func 9247 HAL_I2C_EV_IRQHandler: 9248 .LVL619: 9249 .LFB164: 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9250 .loc 1 4433 1 is_stmt 1 view -0 9251 .cfi_startproc 9252 @ args = 0, pretend = 0, frame = 0 9253 @ frame_needed = 0, uses_anonymous_args = 0 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9254 .loc 1 4433 1 is_stmt 0 view .LVU3274 9255 0000 08B5 push {r3, lr} 9256 .cfi_def_cfa_offset 8 9257 .cfi_offset 3, -8 9258 .cfi_offset 14, -4 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9259 .loc 1 4435 3 is_stmt 1 view .LVU3275 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9260 .loc 1 4435 24 is_stmt 0 view .LVU3276 9261 0002 0368 ldr r3, [r0] 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9262 .loc 1 4435 12 view .LVU3277 9263 0004 9969 ldr r1, [r3, #24] 9264 .LVL620: 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9265 .loc 1 4436 3 is_stmt 1 view .LVU3278 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9266 .loc 1 4436 12 is_stmt 0 view .LVU3279 9267 0006 1A68 ldr r2, [r3] 9268 .LVL621: 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9269 .loc 1 4439 3 is_stmt 1 view .LVU3280 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 337 9270 .loc 1 4439 11 is_stmt 0 view .LVU3281 9271 0008 436B ldr r3, [r0, #52] 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9272 .loc 1 4439 6 view .LVU3282 9273 000a 03B1 cbz r3, .L588 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9274 .loc 1 4441 5 is_stmt 1 view .LVU3283 9275 000c 9847 blx r3 9276 .LVL622: 9277 .L588: 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9278 .loc 1 4443 1 is_stmt 0 view .LVU3284 9279 000e 08BD pop {r3, pc} 9280 .cfi_endproc 9281 .LFE164: 9283 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 9284 .align 1 9285 .weak HAL_I2C_MasterTxCpltCallback 9286 .syntax unified 9287 .thumb 9288 .thumb_func 9290 HAL_I2C_MasterTxCpltCallback: 9291 .LVL623: 9292 .LFB166: 4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9293 .loc 1 4504 1 is_stmt 1 view -0 9294 .cfi_startproc 9295 @ args = 0, pretend = 0, frame = 0 9296 @ frame_needed = 0, uses_anonymous_args = 0 9297 @ link register save eliminated. 4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9298 .loc 1 4506 3 view .LVU3286 4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9299 .loc 1 4511 1 is_stmt 0 view .LVU3287 9300 0000 7047 bx lr 9301 .cfi_endproc 9302 .LFE166: 9304 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 9305 .align 1 9306 .weak HAL_I2C_MasterRxCpltCallback 9307 .syntax unified 9308 .thumb 9309 .thumb_func 9311 HAL_I2C_MasterRxCpltCallback: 9312 .LVL624: 9313 .LFB167: 4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9314 .loc 1 4520 1 is_stmt 1 view -0 9315 .cfi_startproc 9316 @ args = 0, pretend = 0, frame = 0 9317 @ frame_needed = 0, uses_anonymous_args = 0 9318 @ link register save eliminated. 4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9319 .loc 1 4522 3 view .LVU3289 4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9320 .loc 1 4527 1 is_stmt 0 view .LVU3290 9321 0000 7047 bx lr ARM GAS /tmp/cczJHHnF.s page 338 9322 .cfi_endproc 9323 .LFE167: 9325 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 9326 .align 1 9327 .syntax unified 9328 .thumb 9329 .thumb_func 9331 I2C_ITMasterSeqCplt: 9332 .LVL625: 9333 .LFB186: 5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 9334 .loc 1 5505 1 is_stmt 1 view -0 9335 .cfi_startproc 9336 @ args = 0, pretend = 0, frame = 0 9337 @ frame_needed = 0, uses_anonymous_args = 0 5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 9338 .loc 1 5505 1 is_stmt 0 view .LVU3292 9339 0000 38B5 push {r3, r4, r5, lr} 9340 .cfi_def_cfa_offset 16 9341 .cfi_offset 3, -16 9342 .cfi_offset 4, -12 9343 .cfi_offset 5, -8 9344 .cfi_offset 14, -4 9345 0002 0446 mov r4, r0 5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9346 .loc 1 5507 3 is_stmt 1 view .LVU3293 5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9347 .loc 1 5507 14 is_stmt 0 view .LVU3294 9348 0004 0023 movs r3, #0 9349 0006 80F84230 strb r3, [r0, #66] 5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9350 .loc 1 5511 3 is_stmt 1 view .LVU3295 5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9351 .loc 1 5511 11 is_stmt 0 view .LVU3296 9352 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9353 000e DBB2 uxtb r3, r3 5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9354 .loc 1 5511 6 view .LVU3297 9355 0010 212B cmp r3, #33 9356 0012 0FD0 beq .L597 5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9357 .loc 1 5533 5 is_stmt 1 view .LVU3298 5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9358 .loc 1 5533 25 is_stmt 0 view .LVU3299 9359 0014 2023 movs r3, #32 9360 0016 80F84130 strb r3, [r0, #65] 5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9361 .loc 1 5534 5 is_stmt 1 view .LVU3300 5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9362 .loc 1 5534 25 is_stmt 0 view .LVU3301 9363 001a 1223 movs r3, #18 9364 001c 0363 str r3, [r0, #48] 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9365 .loc 1 5535 5 is_stmt 1 view .LVU3302 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9366 .loc 1 5535 25 is_stmt 0 view .LVU3303 9367 001e 0025 movs r5, #0 ARM GAS /tmp/cczJHHnF.s page 339 9368 0020 4563 str r5, [r0, #52] 5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9369 .loc 1 5538 5 is_stmt 1 view .LVU3304 9370 0022 0221 movs r1, #2 9371 0024 FFF7FEFF bl I2C_Disable_IRQ 9372 .LVL626: 5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9373 .loc 1 5541 5 view .LVU3305 5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9374 .loc 1 5541 5 view .LVU3306 9375 0028 84F84050 strb r5, [r4, #64] 5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9376 .loc 1 5541 5 view .LVU3307 5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9377 .loc 1 5547 5 view .LVU3308 9378 002c 2046 mov r0, r4 9379 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 9380 .LVL627: 9381 .L593: 5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9382 .loc 1 5550 1 is_stmt 0 view .LVU3309 9383 0032 38BD pop {r3, r4, r5, pc} 9384 .LVL628: 9385 .L597: 5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9386 .loc 1 5513 5 is_stmt 1 view .LVU3310 5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9387 .loc 1 5513 25 is_stmt 0 view .LVU3311 9388 0034 2023 movs r3, #32 9389 0036 80F84130 strb r3, [r0, #65] 5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9390 .loc 1 5514 5 is_stmt 1 view .LVU3312 5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9391 .loc 1 5514 25 is_stmt 0 view .LVU3313 9392 003a 1123 movs r3, #17 9393 003c 0363 str r3, [r0, #48] 5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9394 .loc 1 5515 5 is_stmt 1 view .LVU3314 5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9395 .loc 1 5515 25 is_stmt 0 view .LVU3315 9396 003e 0025 movs r5, #0 9397 0040 4563 str r5, [r0, #52] 5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9398 .loc 1 5518 5 is_stmt 1 view .LVU3316 9399 0042 0121 movs r1, #1 9400 0044 FFF7FEFF bl I2C_Disable_IRQ 9401 .LVL629: 5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9402 .loc 1 5521 5 view .LVU3317 5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9403 .loc 1 5521 5 view .LVU3318 9404 0048 84F84050 strb r5, [r4, #64] 5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9405 .loc 1 5521 5 view .LVU3319 5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9406 .loc 1 5527 5 view .LVU3320 9407 004c 2046 mov r0, r4 ARM GAS /tmp/cczJHHnF.s page 340 9408 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 9409 .LVL630: 9410 0052 EEE7 b .L593 9411 .cfi_endproc 9412 .LFE186: 9414 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 9415 .align 1 9416 .weak HAL_I2C_SlaveTxCpltCallback 9417 .syntax unified 9418 .thumb 9419 .thumb_func 9421 HAL_I2C_SlaveTxCpltCallback: 9422 .LVL631: 9423 .LFB168: 4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9424 .loc 1 4535 1 view -0 9425 .cfi_startproc 9426 @ args = 0, pretend = 0, frame = 0 9427 @ frame_needed = 0, uses_anonymous_args = 0 9428 @ link register save eliminated. 4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9429 .loc 1 4537 3 view .LVU3322 4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9430 .loc 1 4542 1 is_stmt 0 view .LVU3323 9431 0000 7047 bx lr 9432 .cfi_endproc 9433 .LFE168: 9435 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 9436 .align 1 9437 .weak HAL_I2C_SlaveRxCpltCallback 9438 .syntax unified 9439 .thumb 9440 .thumb_func 9442 HAL_I2C_SlaveRxCpltCallback: 9443 .LVL632: 9444 .LFB169: 4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9445 .loc 1 4551 1 is_stmt 1 view -0 9446 .cfi_startproc 9447 @ args = 0, pretend = 0, frame = 0 9448 @ frame_needed = 0, uses_anonymous_args = 0 9449 @ link register save eliminated. 4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9450 .loc 1 4553 3 view .LVU3325 4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9451 .loc 1 4558 1 is_stmt 0 view .LVU3326 9452 0000 7047 bx lr 9453 .cfi_endproc 9454 .LFE169: 9456 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 9457 .align 1 9458 .syntax unified 9459 .thumb 9460 .thumb_func 9462 I2C_ITSlaveSeqCplt: 9463 .LVL633: 9464 .LFB187: ARM GAS /tmp/cczJHHnF.s page 341 5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 9465 .loc 1 5558 1 is_stmt 1 view -0 9466 .cfi_startproc 9467 @ args = 0, pretend = 0, frame = 0 9468 @ frame_needed = 0, uses_anonymous_args = 0 5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 9469 .loc 1 5558 1 is_stmt 0 view .LVU3328 9470 0000 10B5 push {r4, lr} 9471 .cfi_def_cfa_offset 8 9472 .cfi_offset 4, -8 9473 .cfi_offset 14, -4 9474 0002 0446 mov r4, r0 5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9475 .loc 1 5559 3 is_stmt 1 view .LVU3329 5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9476 .loc 1 5559 26 is_stmt 0 view .LVU3330 9477 0004 0368 ldr r3, [r0] 5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9478 .loc 1 5559 12 view .LVU3331 9479 0006 1A68 ldr r2, [r3] 9480 .LVL634: 5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9481 .loc 1 5562 3 is_stmt 1 view .LVU3332 5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9482 .loc 1 5562 14 is_stmt 0 view .LVU3333 9483 0008 0021 movs r1, #0 9484 000a 80F84210 strb r1, [r0, #66] 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9485 .loc 1 5565 3 is_stmt 1 view .LVU3334 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9486 .loc 1 5565 6 is_stmt 0 view .LVU3335 9487 000e 12F4804F tst r2, #16384 9488 0012 0ED0 beq .L601 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9489 .loc 1 5568 5 is_stmt 1 view .LVU3336 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9490 .loc 1 5568 19 is_stmt 0 view .LVU3337 9491 0014 1A68 ldr r2, [r3] 9492 .LVL635: 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9493 .loc 1 5568 25 view .LVU3338 9494 0016 22F48042 bic r2, r2, #16384 9495 001a 1A60 str r2, [r3] 9496 .L602: 5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9497 .loc 1 5578 3 is_stmt 1 view .LVU3339 5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9498 .loc 1 5580 3 view .LVU3340 5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9499 .loc 1 5580 11 is_stmt 0 view .LVU3341 9500 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9501 0020 DBB2 uxtb r3, r3 5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9502 .loc 1 5580 6 view .LVU3342 9503 0022 292B cmp r3, #41 9504 0024 0DD0 beq .L606 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 342 9505 .loc 1 5600 8 is_stmt 1 view .LVU3343 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9506 .loc 1 5600 16 is_stmt 0 view .LVU3344 9507 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9508 002a DBB2 uxtb r3, r3 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9509 .loc 1 5600 11 view .LVU3345 9510 002c 2A2B cmp r3, #42 9511 002e 18D0 beq .L607 9512 .LVL636: 9513 .L600: 5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9514 .loc 1 5623 1 view .LVU3346 9515 0030 10BD pop {r4, pc} 9516 .LVL637: 9517 .L601: 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9518 .loc 1 5570 8 is_stmt 1 view .LVU3347 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9519 .loc 1 5570 11 is_stmt 0 view .LVU3348 9520 0032 12F4004F tst r2, #32768 9521 0036 F1D0 beq .L602 5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9522 .loc 1 5573 5 is_stmt 1 view .LVU3349 5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9523 .loc 1 5573 19 is_stmt 0 view .LVU3350 9524 0038 1A68 ldr r2, [r3] 9525 .LVL638: 5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9526 .loc 1 5573 25 view .LVU3351 9527 003a 22F40042 bic r2, r2, #32768 9528 003e 1A60 str r2, [r3] 9529 0040 ECE7 b .L602 9530 .L606: 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 9531 .loc 1 5583 5 is_stmt 1 view .LVU3352 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 9532 .loc 1 5583 25 is_stmt 0 view .LVU3353 9533 0042 2823 movs r3, #40 9534 0044 84F84130 strb r3, [r4, #65] 5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9535 .loc 1 5584 5 is_stmt 1 view .LVU3354 5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9536 .loc 1 5584 25 is_stmt 0 view .LVU3355 9537 0048 2123 movs r3, #33 9538 004a 2363 str r3, [r4, #48] 5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9539 .loc 1 5587 5 is_stmt 1 view .LVU3356 9540 004c 0121 movs r1, #1 9541 004e 2046 mov r0, r4 9542 .LVL639: 5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9543 .loc 1 5587 5 is_stmt 0 view .LVU3357 9544 0050 FFF7FEFF bl I2C_Disable_IRQ 9545 .LVL640: 5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9546 .loc 1 5590 5 is_stmt 1 view .LVU3358 ARM GAS /tmp/cczJHHnF.s page 343 5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9547 .loc 1 5590 5 view .LVU3359 9548 0054 0023 movs r3, #0 9549 0056 84F84030 strb r3, [r4, #64] 5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9550 .loc 1 5590 5 view .LVU3360 5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9551 .loc 1 5596 5 view .LVU3361 9552 005a 2046 mov r0, r4 9553 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 9554 .LVL641: 9555 0060 E6E7 b .L600 9556 .LVL642: 9557 .L607: 5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 9558 .loc 1 5603 5 view .LVU3362 5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 9559 .loc 1 5603 25 is_stmt 0 view .LVU3363 9560 0062 2823 movs r3, #40 9561 0064 84F84130 strb r3, [r4, #65] 5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9562 .loc 1 5604 5 is_stmt 1 view .LVU3364 5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9563 .loc 1 5604 25 is_stmt 0 view .LVU3365 9564 0068 2223 movs r3, #34 9565 006a 2363 str r3, [r4, #48] 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9566 .loc 1 5607 5 is_stmt 1 view .LVU3366 9567 006c 0221 movs r1, #2 9568 006e 2046 mov r0, r4 9569 .LVL643: 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9570 .loc 1 5607 5 is_stmt 0 view .LVU3367 9571 0070 FFF7FEFF bl I2C_Disable_IRQ 9572 .LVL644: 5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9573 .loc 1 5610 5 is_stmt 1 view .LVU3368 5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9574 .loc 1 5610 5 view .LVU3369 9575 0074 0023 movs r3, #0 9576 0076 84F84030 strb r3, [r4, #64] 5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9577 .loc 1 5610 5 view .LVU3370 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9578 .loc 1 5616 5 view .LVU3371 9579 007a 2046 mov r0, r4 9580 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 9581 .LVL645: 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9582 .loc 1 5622 3 view .LVU3372 5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9583 .loc 1 5623 1 is_stmt 0 view .LVU3373 9584 0080 D6E7 b .L600 9585 .cfi_endproc 9586 .LFE187: 9588 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 9589 .align 1 ARM GAS /tmp/cczJHHnF.s page 344 9590 .syntax unified 9591 .thumb 9592 .thumb_func 9594 I2C_DMASlaveTransmitCplt: 9595 .LVL646: 9596 .LFB195: 6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 9597 .loc 1 6206 1 is_stmt 1 view -0 9598 .cfi_startproc 9599 @ args = 0, pretend = 0, frame = 0 9600 @ frame_needed = 0, uses_anonymous_args = 0 6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 9601 .loc 1 6206 1 is_stmt 0 view .LVU3375 9602 0000 08B5 push {r3, lr} 9603 .cfi_def_cfa_offset 8 9604 .cfi_offset 3, -8 9605 .cfi_offset 14, -4 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9606 .loc 1 6208 3 is_stmt 1 view .LVU3376 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9607 .loc 1 6208 22 is_stmt 0 view .LVU3377 9608 0002 406A ldr r0, [r0, #36] 9609 .LVL647: 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9610 .loc 1 6209 3 is_stmt 1 view .LVU3378 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9611 .loc 1 6209 12 is_stmt 0 view .LVU3379 9612 0004 C36A ldr r3, [r0, #44] 9613 .LVL648: 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9614 .loc 1 6211 3 is_stmt 1 view .LVU3380 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9615 .loc 1 6211 6 is_stmt 0 view .LVU3381 9616 0006 B3F1807F cmp r3, #16777216 9617 000a 00D0 beq .L609 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9618 .loc 1 6211 38 discriminator 1 view .LVU3382 9619 000c 33B9 cbnz r3, .L608 9620 .L609: 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9621 .loc 1 6214 5 is_stmt 1 view .LVU3383 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9622 .loc 1 6214 9 is_stmt 0 view .LVU3384 9623 000e 0268 ldr r2, [r0] 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9624 .loc 1 6214 19 view .LVU3385 9625 0010 1368 ldr r3, [r2] 9626 .LVL649: 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9627 .loc 1 6214 25 view .LVU3386 9628 0012 23F48043 bic r3, r3, #16384 9629 0016 1360 str r3, [r2] 6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9630 .loc 1 6218 5 is_stmt 1 view .LVU3387 9631 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt 9632 .LVL650: 9633 .L608: ARM GAS /tmp/cczJHHnF.s page 345 6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9634 .loc 1 6226 1 is_stmt 0 view .LVU3388 9635 001c 08BD pop {r3, pc} 9636 .cfi_endproc 9637 .LFE195: 9639 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 9640 .align 1 9641 .syntax unified 9642 .thumb 9643 .thumb_func 9645 I2C_DMASlaveReceiveCplt: 9646 .LVL651: 9647 .LFB197: 6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 9648 .loc 1 6284 1 is_stmt 1 view -0 9649 .cfi_startproc 9650 @ args = 0, pretend = 0, frame = 0 9651 @ frame_needed = 0, uses_anonymous_args = 0 6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 9652 .loc 1 6284 1 is_stmt 0 view .LVU3390 9653 0000 08B5 push {r3, lr} 9654 .cfi_def_cfa_offset 8 9655 .cfi_offset 3, -8 9656 .cfi_offset 14, -4 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9657 .loc 1 6286 3 is_stmt 1 view .LVU3391 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 9658 .loc 1 6286 22 is_stmt 0 view .LVU3392 9659 0002 406A ldr r0, [r0, #36] 9660 .LVL652: 6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9661 .loc 1 6287 3 is_stmt 1 view .LVU3393 6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9662 .loc 1 6287 12 is_stmt 0 view .LVU3394 9663 0004 C26A ldr r2, [r0, #44] 9664 .LVL653: 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9665 .loc 1 6289 3 is_stmt 1 view .LVU3395 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9666 .loc 1 6289 8 is_stmt 0 view .LVU3396 9667 0006 C36B ldr r3, [r0, #60] 9668 0008 1B68 ldr r3, [r3] 9669 000a 5B68 ldr r3, [r3, #4] 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9670 .loc 1 6289 6 view .LVU3397 9671 000c 13B9 cbnz r3, .L612 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 9672 .loc 1 6289 51 discriminator 1 view .LVU3398 9673 000e 12F5803F cmn r2, #65536 9674 0012 00D1 bne .L615 9675 .LVL654: 9676 .L612: 6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9677 .loc 1 6304 1 view .LVU3399 9678 0014 08BD pop {r3, pc} 9679 .LVL655: 9680 .L615: ARM GAS /tmp/cczJHHnF.s page 346 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9681 .loc 1 6293 5 is_stmt 1 view .LVU3400 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9682 .loc 1 6293 9 is_stmt 0 view .LVU3401 9683 0016 0268 ldr r2, [r0] 9684 .LVL656: 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9685 .loc 1 6293 19 view .LVU3402 9686 0018 1368 ldr r3, [r2] 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9687 .loc 1 6293 25 view .LVU3403 9688 001a 23F40043 bic r3, r3, #32768 9689 001e 1360 str r3, [r2] 6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9690 .loc 1 6296 5 is_stmt 1 view .LVU3404 9691 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt 9692 .LVL657: 6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9693 .loc 1 6303 3 view .LVU3405 6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9694 .loc 1 6304 1 is_stmt 0 view .LVU3406 9695 0024 F6E7 b .L612 9696 .cfi_endproc 9697 .LFE197: 9699 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 9700 .align 1 9701 .weak HAL_I2C_AddrCallback 9702 .syntax unified 9703 .thumb 9704 .thumb_func 9706 HAL_I2C_AddrCallback: 9707 .LVL658: 9708 .LFB170: 4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9709 .loc 1 4569 1 is_stmt 1 view -0 9710 .cfi_startproc 9711 @ args = 0, pretend = 0, frame = 0 9712 @ frame_needed = 0, uses_anonymous_args = 0 9713 @ link register save eliminated. 4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection); 9714 .loc 1 4571 3 view .LVU3408 4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode); 9715 .loc 1 4572 3 view .LVU3409 4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9716 .loc 1 4573 3 view .LVU3410 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9717 .loc 1 4578 1 is_stmt 0 view .LVU3411 9718 0000 7047 bx lr 9719 .cfi_endproc 9720 .LFE170: 9722 .section .text.I2C_ITAddrCplt,"ax",%progbits 9723 .align 1 9724 .syntax unified 9725 .thumb 9726 .thumb_func 9728 I2C_ITAddrCplt: 9729 .LVL659: ARM GAS /tmp/cczJHHnF.s page 347 9730 .LFB185: 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection; 9731 .loc 1 5410 1 is_stmt 1 view -0 9732 .cfi_startproc 9733 @ args = 0, pretend = 0, frame = 0 9734 @ frame_needed = 0, uses_anonymous_args = 0 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection; 9735 .loc 1 5410 1 is_stmt 0 view .LVU3413 9736 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9737 .cfi_def_cfa_offset 24 9738 .cfi_offset 3, -24 9739 .cfi_offset 4, -20 9740 .cfi_offset 5, -16 9741 .cfi_offset 6, -12 9742 .cfi_offset 7, -8 9743 .cfi_offset 14, -4 9744 0002 0446 mov r4, r0 5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode; 9745 .loc 1 5411 3 is_stmt 1 view .LVU3414 5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code; 9746 .loc 1 5412 3 view .LVU3415 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code; 9747 .loc 1 5413 3 view .LVU3416 5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9748 .loc 1 5414 3 view .LVU3417 5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9749 .loc 1 5417 3 view .LVU3418 5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9750 .loc 1 5420 3 view .LVU3419 5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9751 .loc 1 5420 22 is_stmt 0 view .LVU3420 9752 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9753 .loc 1 5420 6 view .LVU3421 9754 0008 03F02803 and r3, r3, #40 9755 000c 282B cmp r3, #40 9756 000e 06D0 beq .L623 5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9757 .loc 1 5492 5 is_stmt 1 view .LVU3422 9758 0010 0368 ldr r3, [r0] 9759 0012 0822 movs r2, #8 9760 0014 DA61 str r2, [r3, #28] 5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9761 .loc 1 5495 5 view .LVU3423 5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9762 .loc 1 5495 5 view .LVU3424 9763 0016 0023 movs r3, #0 9764 0018 80F84030 strb r3, [r0, #64] 5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9765 .loc 1 5495 5 view .LVU3425 9766 .LVL660: 9767 .L617: 5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9768 .loc 1 5497 1 is_stmt 0 view .LVU3426 9769 001c F8BD pop {r3, r4, r5, r6, r7, pc} 9770 .LVL661: 9771 .L623: ARM GAS /tmp/cczJHHnF.s page 348 5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 9772 .loc 1 5422 5 is_stmt 1 view .LVU3427 5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 9773 .loc 1 5422 25 is_stmt 0 view .LVU3428 9774 001e 0368 ldr r3, [r0] 9775 0020 9E69 ldr r6, [r3, #24] 5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 9776 .loc 1 5422 23 view .LVU3429 9777 0022 C6F30046 ubfx r6, r6, #16, #1 9778 .LVL662: 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 9779 .loc 1 5423 5 is_stmt 1 view .LVU3430 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 9780 .loc 1 5423 25 is_stmt 0 view .LVU3431 9781 0026 9A69 ldr r2, [r3, #24] 9782 0028 120C lsrs r2, r2, #16 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 9783 .loc 1 5423 23 view .LVU3432 9784 002a 02F0FE05 and r5, r2, #254 9785 .LVL663: 5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 9786 .loc 1 5424 5 is_stmt 1 view .LVU3433 5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 9787 .loc 1 5424 25 is_stmt 0 view .LVU3434 9788 002e 9A68 ldr r2, [r3, #8] 5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 9789 .loc 1 5424 23 view .LVU3435 9790 0030 C2F30902 ubfx r2, r2, #0, #10 9791 .LVL664: 5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9792 .loc 1 5425 5 is_stmt 1 view .LVU3436 5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9793 .loc 1 5425 25 is_stmt 0 view .LVU3437 9794 0034 DF68 ldr r7, [r3, #12] 5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9795 .loc 1 5425 23 view .LVU3438 9796 0036 07F0FE07 and r7, r7, #254 9797 .LVL665: 5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9798 .loc 1 5428 5 is_stmt 1 view .LVU3439 5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9799 .loc 1 5428 19 is_stmt 0 view .LVU3440 9800 003a C168 ldr r1, [r0, #12] 9801 .LVL666: 5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9802 .loc 1 5428 8 view .LVU3441 9803 003c 0229 cmp r1, #2 9804 003e 22D1 bne .L619 5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9805 .loc 1 5430 7 is_stmt 1 view .LVU3442 5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9806 .loc 1 5430 44 is_stmt 0 view .LVU3443 9807 0040 85EAD215 eor r5, r5, r2, lsr #7 9808 .LVL667: 5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9809 .loc 1 5430 10 view .LVU3444 9810 0044 15F0060F tst r5, #6 ARM GAS /tmp/cczJHHnF.s page 349 9811 0048 10D1 bne .L620 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++; 9812 .loc 1 5432 9 is_stmt 1 view .LVU3445 9813 .LVL668: 5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 9814 .loc 1 5433 9 view .LVU3446 5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 9815 .loc 1 5433 13 is_stmt 0 view .LVU3447 9816 004a 816C ldr r1, [r0, #72] 5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 9817 .loc 1 5433 29 view .LVU3448 9818 004c 0131 adds r1, r1, #1 9819 004e 8164 str r1, [r0, #72] 5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9820 .loc 1 5434 9 is_stmt 1 view .LVU3449 5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9821 .loc 1 5434 17 is_stmt 0 view .LVU3450 9822 0050 816C ldr r1, [r0, #72] 5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9823 .loc 1 5434 12 view .LVU3451 9824 0052 0229 cmp r1, #2 9825 0054 E2D1 bne .L617 5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9826 .loc 1 5437 11 is_stmt 1 view .LVU3452 5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9827 .loc 1 5437 32 is_stmt 0 view .LVU3453 9828 0056 0021 movs r1, #0 9829 0058 8164 str r1, [r0, #72] 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9830 .loc 1 5440 11 is_stmt 1 view .LVU3454 9831 005a 0820 movs r0, #8 9832 .LVL669: 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9833 .loc 1 5440 11 is_stmt 0 view .LVU3455 9834 005c D861 str r0, [r3, #28] 5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9835 .loc 1 5443 11 is_stmt 1 view .LVU3456 5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9836 .loc 1 5443 11 view .LVU3457 9837 005e 84F84010 strb r1, [r4, #64] 5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9838 .loc 1 5443 11 view .LVU3458 5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9839 .loc 1 5449 11 view .LVU3459 9840 0062 3146 mov r1, r6 9841 0064 2046 mov r0, r4 9842 0066 FFF7FEFF bl HAL_I2C_AddrCallback 9843 .LVL670: 5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9844 .loc 1 5449 11 is_stmt 0 view .LVU3460 9845 006a D7E7 b .L617 9846 .LVL671: 9847 .L620: 5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9848 .loc 1 5455 9 is_stmt 1 view .LVU3461 5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9849 .loc 1 5458 9 view .LVU3462 ARM GAS /tmp/cczJHHnF.s page 350 9850 006c 4FF40041 mov r1, #32768 9851 0070 FFF7FEFF bl I2C_Disable_IRQ 9852 .LVL672: 5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9853 .loc 1 5461 9 view .LVU3463 5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9854 .loc 1 5461 9 view .LVU3464 9855 0074 0023 movs r3, #0 9856 0076 84F84030 strb r3, [r4, #64] 5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9857 .loc 1 5461 9 view .LVU3465 5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9858 .loc 1 5467 9 view .LVU3466 9859 007a 3A46 mov r2, r7 9860 007c 3146 mov r1, r6 9861 007e 2046 mov r0, r4 9862 0080 FFF7FEFF bl HAL_I2C_AddrCallback 9863 .LVL673: 9864 0084 CAE7 b .L617 9865 .LVL674: 9866 .L619: 5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9867 .loc 1 5475 7 view .LVU3467 9868 0086 4FF40041 mov r1, #32768 9869 008a FFF7FEFF bl I2C_Disable_IRQ 9870 .LVL675: 5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9871 .loc 1 5478 7 view .LVU3468 5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9872 .loc 1 5478 7 view .LVU3469 9873 008e 0023 movs r3, #0 9874 0090 84F84030 strb r3, [r4, #64] 5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9875 .loc 1 5478 7 view .LVU3470 5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9876 .loc 1 5484 7 view .LVU3471 9877 0094 2A46 mov r2, r5 9878 0096 3146 mov r1, r6 9879 0098 2046 mov r0, r4 9880 009a FFF7FEFF bl HAL_I2C_AddrCallback 9881 .LVL676: 9882 009e BDE7 b .L617 9883 .cfi_endproc 9884 .LFE185: 9886 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 9887 .align 1 9888 .weak HAL_I2C_ListenCpltCallback 9889 .syntax unified 9890 .thumb 9891 .thumb_func 9893 HAL_I2C_ListenCpltCallback: 9894 .LVL677: 9895 .LFB171: 4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9896 .loc 1 4587 1 view -0 9897 .cfi_startproc 9898 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/cczJHHnF.s page 351 9899 @ frame_needed = 0, uses_anonymous_args = 0 9900 @ link register save eliminated. 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9901 .loc 1 4589 3 view .LVU3473 4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9902 .loc 1 4594 1 is_stmt 0 view .LVU3474 9903 0000 7047 bx lr 9904 .cfi_endproc 9905 .LFE171: 9907 .section .text.I2C_ITListenCplt,"ax",%progbits 9908 .align 1 9909 .syntax unified 9910 .thumb 9911 .thumb_func 9913 I2C_ITListenCplt: 9914 .LVL678: 9915 .LFB190: 5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 9916 .loc 1 5934 1 is_stmt 1 view -0 9917 .cfi_startproc 9918 @ args = 0, pretend = 0, frame = 0 9919 @ frame_needed = 0, uses_anonymous_args = 0 5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 9920 .loc 1 5934 1 is_stmt 0 view .LVU3476 9921 0000 10B5 push {r4, lr} 9922 .cfi_def_cfa_offset 8 9923 .cfi_offset 4, -8 9924 .cfi_offset 14, -4 9925 0002 0446 mov r4, r0 5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 9926 .loc 1 5936 3 is_stmt 1 view .LVU3477 5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 9927 .loc 1 5936 21 is_stmt 0 view .LVU3478 9928 0004 174B ldr r3, .L628 9929 0006 C362 str r3, [r0, #44] 5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9930 .loc 1 5937 3 is_stmt 1 view .LVU3479 5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9931 .loc 1 5937 23 is_stmt 0 view .LVU3480 9932 0008 0023 movs r3, #0 9933 000a 0363 str r3, [r0, #48] 5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9934 .loc 1 5938 3 is_stmt 1 view .LVU3481 5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9935 .loc 1 5938 15 is_stmt 0 view .LVU3482 9936 000c 2022 movs r2, #32 9937 000e 80F84120 strb r2, [r0, #65] 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9938 .loc 1 5939 3 is_stmt 1 view .LVU3483 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9939 .loc 1 5939 14 is_stmt 0 view .LVU3484 9940 0012 80F84230 strb r3, [r0, #66] 5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9941 .loc 1 5940 3 is_stmt 1 view .LVU3485 5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9942 .loc 1 5940 17 is_stmt 0 view .LVU3486 9943 0016 4363 str r3, [r0, #52] ARM GAS /tmp/cczJHHnF.s page 352 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9944 .loc 1 5943 3 is_stmt 1 view .LVU3487 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9945 .loc 1 5943 6 is_stmt 0 view .LVU3488 9946 0018 11F0040F tst r1, #4 9947 001c 13D0 beq .L626 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9948 .loc 1 5946 5 is_stmt 1 view .LVU3489 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9949 .loc 1 5946 36 is_stmt 0 view .LVU3490 9950 001e 0368 ldr r3, [r0] 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9951 .loc 1 5946 46 view .LVU3491 9952 0020 5A6A ldr r2, [r3, #36] 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9953 .loc 1 5946 10 view .LVU3492 9954 0022 436A ldr r3, [r0, #36] 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9955 .loc 1 5946 21 view .LVU3493 9956 0024 1A70 strb r2, [r3] 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9957 .loc 1 5949 5 is_stmt 1 view .LVU3494 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9958 .loc 1 5949 9 is_stmt 0 view .LVU3495 9959 0026 436A ldr r3, [r0, #36] 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9960 .loc 1 5949 19 view .LVU3496 9961 0028 0133 adds r3, r3, #1 9962 002a 4362 str r3, [r0, #36] 5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9963 .loc 1 5951 5 is_stmt 1 view .LVU3497 5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9964 .loc 1 5951 14 is_stmt 0 view .LVU3498 9965 002c 038D ldrh r3, [r0, #40] 5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9966 .loc 1 5951 8 view .LVU3499 9967 002e 53B1 cbz r3, .L626 5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 9968 .loc 1 5953 7 is_stmt 1 view .LVU3500 5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 9969 .loc 1 5953 21 is_stmt 0 view .LVU3501 9970 0030 013B subs r3, r3, #1 9971 0032 0385 strh r3, [r0, #40] @ movhi 5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9972 .loc 1 5954 7 is_stmt 1 view .LVU3502 5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9973 .loc 1 5954 11 is_stmt 0 view .LVU3503 9974 0034 438D ldrh r3, [r0, #42] 9975 0036 9BB2 uxth r3, r3 5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9976 .loc 1 5954 22 view .LVU3504 9977 0038 013B subs r3, r3, #1 9978 003a 9BB2 uxth r3, r3 9979 003c 4385 strh r3, [r0, #42] @ movhi 5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9980 .loc 1 5957 7 is_stmt 1 view .LVU3505 5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 353 9981 .loc 1 5957 11 is_stmt 0 view .LVU3506 9982 003e 436C ldr r3, [r0, #68] 5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9983 .loc 1 5957 23 view .LVU3507 9984 0040 43F00403 orr r3, r3, #4 9985 0044 4364 str r3, [r0, #68] 9986 .L626: 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9987 .loc 1 5962 3 is_stmt 1 view .LVU3508 9988 0046 48F20301 movw r1, #32771 9989 .LVL679: 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9990 .loc 1 5962 3 is_stmt 0 view .LVU3509 9991 004a 2046 mov r0, r4 9992 .LVL680: 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9993 .loc 1 5962 3 view .LVU3510 9994 004c FFF7FEFF bl I2C_Disable_IRQ 9995 .LVL681: 5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9996 .loc 1 5965 3 is_stmt 1 view .LVU3511 9997 0050 2368 ldr r3, [r4] 9998 0052 1022 movs r2, #16 9999 0054 DA61 str r2, [r3, #28] 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10000 .loc 1 5968 3 view .LVU3512 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10001 .loc 1 5968 3 view .LVU3513 10002 0056 0023 movs r3, #0 10003 0058 84F84030 strb r3, [r4, #64] 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10004 .loc 1 5968 3 view .LVU3514 5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10005 .loc 1 5974 3 view .LVU3515 10006 005c 2046 mov r0, r4 10007 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10008 .LVL682: 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10009 .loc 1 5976 1 is_stmt 0 view .LVU3516 10010 0062 10BD pop {r4, pc} 10011 .LVL683: 10012 .L629: 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10013 .loc 1 5976 1 view .LVU3517 10014 .align 2 10015 .L628: 10016 0064 0000FFFF .word -65536 10017 .cfi_endproc 10018 .LFE190: 10020 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10021 .align 1 10022 .weak HAL_I2C_MemTxCpltCallback 10023 .syntax unified 10024 .thumb 10025 .thumb_func 10027 HAL_I2C_MemTxCpltCallback: 10028 .LVL684: ARM GAS /tmp/cczJHHnF.s page 354 10029 .LFB172: 4603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10030 .loc 1 4603 1 is_stmt 1 view -0 10031 .cfi_startproc 10032 @ args = 0, pretend = 0, frame = 0 10033 @ frame_needed = 0, uses_anonymous_args = 0 10034 @ link register save eliminated. 4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10035 .loc 1 4605 3 view .LVU3519 4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10036 .loc 1 4610 1 is_stmt 0 view .LVU3520 10037 0000 7047 bx lr 10038 .cfi_endproc 10039 .LFE172: 10041 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10042 .align 1 10043 .weak HAL_I2C_MemRxCpltCallback 10044 .syntax unified 10045 .thumb 10046 .thumb_func 10048 HAL_I2C_MemRxCpltCallback: 10049 .LVL685: 10050 .LFB173: 4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10051 .loc 1 4619 1 is_stmt 1 view -0 10052 .cfi_startproc 10053 @ args = 0, pretend = 0, frame = 0 10054 @ frame_needed = 0, uses_anonymous_args = 0 10055 @ link register save eliminated. 4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10056 .loc 1 4621 3 view .LVU3522 4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10057 .loc 1 4626 1 is_stmt 0 view .LVU3523 10058 0000 7047 bx lr 10059 .cfi_endproc 10060 .LFE173: 10062 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10063 .align 1 10064 .weak HAL_I2C_ErrorCallback 10065 .syntax unified 10066 .thumb 10067 .thumb_func 10069 HAL_I2C_ErrorCallback: 10070 .LVL686: 10071 .LFB174: 4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10072 .loc 1 4635 1 is_stmt 1 view -0 10073 .cfi_startproc 10074 @ args = 0, pretend = 0, frame = 0 10075 @ frame_needed = 0, uses_anonymous_args = 0 10076 @ link register save eliminated. 4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10077 .loc 1 4637 3 view .LVU3525 4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10078 .loc 1 4642 1 is_stmt 0 view .LVU3526 10079 0000 7047 bx lr 10080 .cfi_endproc ARM GAS /tmp/cczJHHnF.s page 355 10081 .LFE174: 10083 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10084 .align 1 10085 .weak HAL_I2C_AbortCpltCallback 10086 .syntax unified 10087 .thumb 10088 .thumb_func 10090 HAL_I2C_AbortCpltCallback: 10091 .LVL687: 10092 .LFB175: 4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10093 .loc 1 4651 1 is_stmt 1 view -0 10094 .cfi_startproc 10095 @ args = 0, pretend = 0, frame = 0 10096 @ frame_needed = 0, uses_anonymous_args = 0 10097 @ link register save eliminated. 4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10098 .loc 1 4653 3 view .LVU3528 4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10099 .loc 1 4658 1 is_stmt 0 view .LVU3529 10100 0000 7047 bx lr 10101 .cfi_endproc 10102 .LFE175: 10104 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10105 .align 1 10106 .syntax unified 10107 .thumb 10108 .thumb_func 10110 I2C_TreatErrorCallback: 10111 .LVL688: 10112 .LFB192: 6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10113 .loc 1 6097 1 is_stmt 1 view -0 10114 .cfi_startproc 10115 @ args = 0, pretend = 0, frame = 0 10116 @ frame_needed = 0, uses_anonymous_args = 0 6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10117 .loc 1 6097 1 is_stmt 0 view .LVU3531 10118 0000 08B5 push {r3, lr} 10119 .cfi_def_cfa_offset 8 10120 .cfi_offset 3, -8 10121 .cfi_offset 14, -4 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10122 .loc 1 6098 3 is_stmt 1 view .LVU3532 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10123 .loc 1 6098 11 is_stmt 0 view .LVU3533 10124 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10125 0006 DBB2 uxtb r3, r3 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10126 .loc 1 6098 6 view .LVU3534 10127 0008 602B cmp r3, #96 10128 000a 06D0 beq .L638 6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10129 .loc 1 6115 5 is_stmt 1 view .LVU3535 6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10130 .loc 1 6115 25 is_stmt 0 view .LVU3536 10131 000c 0023 movs r3, #0 ARM GAS /tmp/cczJHHnF.s page 356 10132 000e 0363 str r3, [r0, #48] 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10133 .loc 1 6118 5 is_stmt 1 view .LVU3537 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10134 .loc 1 6118 5 view .LVU3538 10135 0010 80F84030 strb r3, [r0, #64] 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10136 .loc 1 6118 5 view .LVU3539 6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10137 .loc 1 6124 5 view .LVU3540 10138 0014 FFF7FEFF bl HAL_I2C_ErrorCallback 10139 .LVL689: 10140 .L634: 6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10141 .loc 1 6127 1 is_stmt 0 view .LVU3541 10142 0018 08BD pop {r3, pc} 10143 .LVL690: 10144 .L638: 6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10145 .loc 1 6100 5 is_stmt 1 view .LVU3542 6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10146 .loc 1 6100 17 is_stmt 0 view .LVU3543 10147 001a 2023 movs r3, #32 10148 001c 80F84130 strb r3, [r0, #65] 6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10149 .loc 1 6101 5 is_stmt 1 view .LVU3544 6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10150 .loc 1 6101 25 is_stmt 0 view .LVU3545 10151 0020 0023 movs r3, #0 10152 0022 0363 str r3, [r0, #48] 6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10153 .loc 1 6104 5 is_stmt 1 view .LVU3546 6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10154 .loc 1 6104 5 view .LVU3547 10155 0024 80F84030 strb r3, [r0, #64] 6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10156 .loc 1 6104 5 view .LVU3548 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10157 .loc 1 6110 5 view .LVU3549 10158 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10159 .LVL691: 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10160 .loc 1 6110 5 is_stmt 0 view .LVU3550 10161 002c F4E7 b .L634 10162 .cfi_endproc 10163 .LFE192: 10165 .section .text.I2C_ITError,"ax",%progbits 10166 .align 1 10167 .syntax unified 10168 .thumb 10169 .thumb_func 10171 I2C_ITError: 10172 .LVL692: 10173 .LFB191: 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10174 .loc 1 5985 1 is_stmt 1 view -0 10175 .cfi_startproc ARM GAS /tmp/cczJHHnF.s page 357 10176 @ args = 0, pretend = 0, frame = 0 10177 @ frame_needed = 0, uses_anonymous_args = 0 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10178 .loc 1 5985 1 is_stmt 0 view .LVU3552 10179 0000 10B5 push {r4, lr} 10180 .cfi_def_cfa_offset 8 10181 .cfi_offset 4, -8 10182 .cfi_offset 14, -4 10183 0002 0446 mov r4, r0 5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate; 10184 .loc 1 5986 3 is_stmt 1 view .LVU3553 5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate; 10185 .loc 1 5986 24 is_stmt 0 view .LVU3554 10186 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10187 .LVL693: 5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10188 .loc 1 5987 3 is_stmt 1 view .LVU3555 5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10189 .loc 1 5990 3 view .LVU3556 5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10190 .loc 1 5990 23 is_stmt 0 view .LVU3557 10191 0008 0022 movs r2, #0 10192 000a 80F84220 strb r2, [r0, #66] 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 10193 .loc 1 5991 3 is_stmt 1 view .LVU3558 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 10194 .loc 1 5991 23 is_stmt 0 view .LVU3559 10195 000e 3B48 ldr r0, .L653 10196 .LVL694: 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 10197 .loc 1 5991 23 view .LVU3560 10198 0010 E062 str r0, [r4, #44] 5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10199 .loc 1 5992 3 is_stmt 1 view .LVU3561 5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10200 .loc 1 5992 23 is_stmt 0 view .LVU3562 10201 0012 6285 strh r2, [r4, #42] @ movhi 5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10202 .loc 1 5995 3 is_stmt 1 view .LVU3563 5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10203 .loc 1 5995 7 is_stmt 0 view .LVU3564 10204 0014 626C ldr r2, [r4, #68] 5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10205 .loc 1 5995 19 view .LVU3565 10206 0016 0A43 orrs r2, r2, r1 10207 0018 6264 str r2, [r4, #68] 5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10208 .loc 1 5998 3 is_stmt 1 view .LVU3566 5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10209 .loc 1 5999 50 is_stmt 0 view .LVU3567 10210 001a 283B subs r3, r3, #40 10211 .LVL695: 5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10212 .loc 1 5999 50 view .LVU3568 10213 001c DBB2 uxtb r3, r3 5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10214 .loc 1 5998 6 view .LVU3569 ARM GAS /tmp/cczJHHnF.s page 358 10215 001e 022B cmp r3, #2 10216 0020 19D8 bhi .L640 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10217 .loc 1 6003 5 is_stmt 1 view .LVU3570 10218 0022 0321 movs r1, #3 10219 .LVL696: 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10220 .loc 1 6003 5 is_stmt 0 view .LVU3571 10221 0024 2046 mov r0, r4 10222 0026 FFF7FEFF bl I2C_Disable_IRQ 10223 .LVL697: 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10224 .loc 1 6006 5 is_stmt 1 view .LVU3572 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10225 .loc 1 6006 25 is_stmt 0 view .LVU3573 10226 002a 2823 movs r3, #40 10227 002c 84F84130 strb r3, [r4, #65] 6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10228 .loc 1 6007 5 is_stmt 1 view .LVU3574 6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10229 .loc 1 6007 25 is_stmt 0 view .LVU3575 10230 0030 334B ldr r3, .L653+4 10231 0032 6363 str r3, [r4, #52] 10232 .L641: 6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 10233 .loc 1 6025 3 is_stmt 1 view .LVU3576 6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 10234 .loc 1 6025 20 is_stmt 0 view .LVU3577 10235 0034 236B ldr r3, [r4, #48] 10236 .LVL698: 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10237 .loc 1 6026 3 is_stmt 1 view .LVU3578 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10238 .loc 1 6026 12 is_stmt 0 view .LVU3579 10239 0036 A26B ldr r2, [r4, #56] 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10240 .loc 1 6026 6 view .LVU3580 10241 0038 1AB1 cbz r2, .L643 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10242 .loc 1 6026 30 discriminator 1 view .LVU3581 10243 003a 112B cmp r3, #17 10244 003c 1BD0 beq .L644 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10245 .loc 1 6026 81 discriminator 2 view .LVU3582 10246 003e 212B cmp r3, #33 10247 0040 19D0 beq .L644 10248 .L643: 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10249 .loc 1 6056 8 is_stmt 1 view .LVU3583 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10250 .loc 1 6056 17 is_stmt 0 view .LVU3584 10251 0042 E26B ldr r2, [r4, #60] 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10252 .loc 1 6056 11 view .LVU3585 10253 0044 1AB1 cbz r2, .L648 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10254 .loc 1 6056 35 discriminator 1 view .LVU3586 ARM GAS /tmp/cczJHHnF.s page 359 10255 0046 122B cmp r3, #18 10256 0048 36D0 beq .L649 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10257 .loc 1 6056 86 discriminator 2 view .LVU3587 10258 004a 222B cmp r3, #34 10259 004c 34D0 beq .L649 10260 .L648: 6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10261 .loc 1 6087 5 is_stmt 1 view .LVU3588 10262 004e 2046 mov r0, r4 10263 0050 FFF7FEFF bl I2C_TreatErrorCallback 10264 .LVL699: 10265 .L639: 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10266 .loc 1 6089 1 is_stmt 0 view .LVU3589 10267 0054 10BD pop {r4, pc} 10268 .LVL700: 10269 .L640: 6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10270 .loc 1 6012 5 is_stmt 1 view .LVU3590 10271 0056 48F20301 movw r1, #32771 10272 .LVL701: 6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10273 .loc 1 6012 5 is_stmt 0 view .LVU3591 10274 005a 2046 mov r0, r4 10275 005c FFF7FEFF bl I2C_Disable_IRQ 10276 .LVL702: 6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10277 .loc 1 6016 5 is_stmt 1 view .LVU3592 6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10278 .loc 1 6016 13 is_stmt 0 view .LVU3593 10279 0060 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10280 0064 DBB2 uxtb r3, r3 6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10281 .loc 1 6016 8 view .LVU3594 10282 0066 602B cmp r3, #96 10283 0068 02D0 beq .L642 6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10284 .loc 1 6019 7 is_stmt 1 view .LVU3595 6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10285 .loc 1 6019 27 is_stmt 0 view .LVU3596 10286 006a 2023 movs r3, #32 10287 006c 84F84130 strb r3, [r4, #65] 10288 .L642: 6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10289 .loc 1 6021 5 is_stmt 1 view .LVU3597 6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10290 .loc 1 6021 25 is_stmt 0 view .LVU3598 10291 0070 0023 movs r3, #0 10292 0072 6363 str r3, [r4, #52] 10293 0074 DEE7 b .L641 10294 .LVL703: 10295 .L644: 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10296 .loc 1 6029 5 is_stmt 1 view .LVU3599 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10297 .loc 1 6029 14 is_stmt 0 view .LVU3600 ARM GAS /tmp/cczJHHnF.s page 360 10298 0076 2368 ldr r3, [r4] 10299 .LVL704: 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10300 .loc 1 6029 24 view .LVU3601 10301 0078 1A68 ldr r2, [r3] 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10302 .loc 1 6029 8 view .LVU3602 10303 007a 12F4804F tst r2, #16384 10304 007e 03D0 beq .L645 6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10305 .loc 1 6031 7 is_stmt 1 view .LVU3603 6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10306 .loc 1 6031 21 is_stmt 0 view .LVU3604 10307 0080 1A68 ldr r2, [r3] 6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10308 .loc 1 6031 27 view .LVU3605 10309 0082 22F48042 bic r2, r2, #16384 10310 0086 1A60 str r2, [r3] 10311 .L645: 6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10312 .loc 1 6034 5 is_stmt 1 view .LVU3606 6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10313 .loc 1 6034 9 is_stmt 0 view .LVU3607 10314 0088 A06B ldr r0, [r4, #56] 10315 008a FFF7FEFF bl HAL_DMA_GetState 10316 .LVL705: 6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10317 .loc 1 6034 8 view .LVU3608 10318 008e 0128 cmp r0, #1 10319 0090 0ED0 beq .L646 6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10320 .loc 1 6038 7 is_stmt 1 view .LVU3609 6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10321 .loc 1 6038 11 is_stmt 0 view .LVU3610 10322 0092 A36B ldr r3, [r4, #56] 6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10323 .loc 1 6038 39 view .LVU3611 10324 0094 1B4A ldr r2, .L653+8 10325 0096 5A63 str r2, [r3, #52] 6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10326 .loc 1 6041 7 is_stmt 1 view .LVU3612 6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10327 .loc 1 6041 7 view .LVU3613 10328 0098 0023 movs r3, #0 10329 009a 84F84030 strb r3, [r4, #64] 6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10330 .loc 1 6041 7 view .LVU3614 6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10331 .loc 1 6044 7 view .LVU3615 6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10332 .loc 1 6044 11 is_stmt 0 view .LVU3616 10333 009e A06B ldr r0, [r4, #56] 10334 00a0 FFF7FEFF bl HAL_DMA_Abort_IT 10335 .LVL706: 6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10336 .loc 1 6044 10 view .LVU3617 10337 00a4 0028 cmp r0, #0 ARM GAS /tmp/cczJHHnF.s page 361 10338 00a6 D5D0 beq .L639 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10339 .loc 1 6047 9 is_stmt 1 view .LVU3618 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10340 .loc 1 6047 13 is_stmt 0 view .LVU3619 10341 00a8 A06B ldr r0, [r4, #56] 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10342 .loc 1 6047 21 view .LVU3620 10343 00aa 436B ldr r3, [r0, #52] 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10344 .loc 1 6047 9 view .LVU3621 10345 00ac 9847 blx r3 10346 .LVL707: 10347 00ae D1E7 b .L639 10348 .L646: 6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10349 .loc 1 6052 7 is_stmt 1 view .LVU3622 10350 00b0 2046 mov r0, r4 10351 00b2 FFF7FEFF bl I2C_TreatErrorCallback 10352 .LVL708: 10353 00b6 CDE7 b .L639 10354 .LVL709: 10355 .L649: 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10356 .loc 1 6059 5 view .LVU3623 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10357 .loc 1 6059 14 is_stmt 0 view .LVU3624 10358 00b8 2368 ldr r3, [r4] 10359 .LVL710: 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10360 .loc 1 6059 24 view .LVU3625 10361 00ba 1A68 ldr r2, [r3] 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10362 .loc 1 6059 8 view .LVU3626 10363 00bc 12F4004F tst r2, #32768 10364 00c0 03D0 beq .L650 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10365 .loc 1 6061 7 is_stmt 1 view .LVU3627 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10366 .loc 1 6061 21 is_stmt 0 view .LVU3628 10367 00c2 1A68 ldr r2, [r3] 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10368 .loc 1 6061 27 view .LVU3629 10369 00c4 22F40042 bic r2, r2, #32768 10370 00c8 1A60 str r2, [r3] 10371 .L650: 6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10372 .loc 1 6064 5 is_stmt 1 view .LVU3630 6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10373 .loc 1 6064 9 is_stmt 0 view .LVU3631 10374 00ca E06B ldr r0, [r4, #60] 10375 00cc FFF7FEFF bl HAL_DMA_GetState 10376 .LVL711: 6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10377 .loc 1 6064 8 view .LVU3632 10378 00d0 0128 cmp r0, #1 10379 00d2 0ED0 beq .L651 ARM GAS /tmp/cczJHHnF.s page 362 6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10380 .loc 1 6068 7 is_stmt 1 view .LVU3633 6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10381 .loc 1 6068 11 is_stmt 0 view .LVU3634 10382 00d4 E36B ldr r3, [r4, #60] 6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10383 .loc 1 6068 39 view .LVU3635 10384 00d6 0B4A ldr r2, .L653+8 10385 00d8 5A63 str r2, [r3, #52] 6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10386 .loc 1 6071 7 is_stmt 1 view .LVU3636 6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10387 .loc 1 6071 7 view .LVU3637 10388 00da 0023 movs r3, #0 10389 00dc 84F84030 strb r3, [r4, #64] 6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10390 .loc 1 6071 7 view .LVU3638 6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10391 .loc 1 6074 7 view .LVU3639 6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10392 .loc 1 6074 11 is_stmt 0 view .LVU3640 10393 00e0 E06B ldr r0, [r4, #60] 10394 00e2 FFF7FEFF bl HAL_DMA_Abort_IT 10395 .LVL712: 6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10396 .loc 1 6074 10 view .LVU3641 10397 00e6 0028 cmp r0, #0 10398 00e8 B4D0 beq .L639 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10399 .loc 1 6077 9 is_stmt 1 view .LVU3642 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10400 .loc 1 6077 13 is_stmt 0 view .LVU3643 10401 00ea E06B ldr r0, [r4, #60] 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10402 .loc 1 6077 21 view .LVU3644 10403 00ec 436B ldr r3, [r0, #52] 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10404 .loc 1 6077 9 view .LVU3645 10405 00ee 9847 blx r3 10406 .LVL713: 10407 00f0 B0E7 b .L639 10408 .L651: 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10409 .loc 1 6082 7 is_stmt 1 view .LVU3646 10410 00f2 2046 mov r0, r4 10411 00f4 FFF7FEFF bl I2C_TreatErrorCallback 10412 .LVL714: 10413 00f8 ACE7 b .L639 10414 .L654: 10415 00fa 00BF .align 2 10416 .L653: 10417 00fc 0000FFFF .word -65536 10418 0100 00000000 .word I2C_Slave_ISR_IT 10419 0104 00000000 .word I2C_DMAAbort 10420 .cfi_endproc 10421 .LFE191: 10423 .section .text.I2C_ITSlaveCplt,"ax",%progbits ARM GAS /tmp/cczJHHnF.s page 363 10424 .align 1 10425 .syntax unified 10426 .thumb 10427 .thumb_func 10429 I2C_ITSlaveCplt: 10430 .LVL715: 10431 .LFB189: 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10432 .loc 1 5775 1 view -0 10433 .cfi_startproc 10434 @ args = 0, pretend = 0, frame = 0 10435 @ frame_needed = 0, uses_anonymous_args = 0 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10436 .loc 1 5775 1 is_stmt 0 view .LVU3648 10437 0000 70B5 push {r4, r5, r6, lr} 10438 .cfi_def_cfa_offset 16 10439 .cfi_offset 4, -16 10440 .cfi_offset 5, -12 10441 .cfi_offset 6, -8 10442 .cfi_offset 14, -4 10443 0002 0446 mov r4, r0 10444 0004 0D46 mov r5, r1 5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10445 .loc 1 5776 3 is_stmt 1 view .LVU3649 5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10446 .loc 1 5776 26 is_stmt 0 view .LVU3650 10447 0006 0268 ldr r2, [r0] 5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10448 .loc 1 5776 12 view .LVU3651 10449 0008 1668 ldr r6, [r2] 10450 .LVL716: 5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10451 .loc 1 5777 3 is_stmt 1 view .LVU3652 5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10452 .loc 1 5778 3 view .LVU3653 5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10453 .loc 1 5778 24 is_stmt 0 view .LVU3654 10454 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10455 000e DBB2 uxtb r3, r3 10456 .LVL717: 5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10457 .loc 1 5781 3 is_stmt 1 view .LVU3655 10458 0010 2021 movs r1, #32 10459 .LVL718: 5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10460 .loc 1 5781 3 is_stmt 0 view .LVU3656 10461 0012 D161 str r1, [r2, #28] 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10462 .loc 1 5784 3 is_stmt 1 view .LVU3657 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10463 .loc 1 5784 6 is_stmt 0 view .LVU3658 10464 0014 212B cmp r3, #33 10465 0016 0DD0 beq .L656 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10466 .loc 1 5784 43 discriminator 1 view .LVU3659 10467 0018 292B cmp r3, #41 10468 001a 0BD0 beq .L656 ARM GAS /tmp/cczJHHnF.s page 364 5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10469 .loc 1 5789 8 is_stmt 1 view .LVU3660 5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10470 .loc 1 5789 11 is_stmt 0 view .LVU3661 10471 001c 222B cmp r3, #34 10472 001e 01D0 beq .L659 5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10473 .loc 1 5789 48 discriminator 1 view .LVU3662 10474 0020 2A2B cmp r3, #42 10475 0022 0ED1 bne .L658 10476 .L659: 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10477 .loc 1 5791 5 is_stmt 1 view .LVU3663 10478 0024 48F20201 movw r1, #32770 10479 0028 2046 mov r0, r4 10480 .LVL719: 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10481 .loc 1 5791 5 is_stmt 0 view .LVU3664 10482 002a FFF7FEFF bl I2C_Disable_IRQ 10483 .LVL720: 5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10484 .loc 1 5792 5 is_stmt 1 view .LVU3665 5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10485 .loc 1 5792 25 is_stmt 0 view .LVU3666 10486 002e 2223 movs r3, #34 10487 0030 2363 str r3, [r4, #48] 10488 0032 06E0 b .L658 10489 .LVL721: 10490 .L656: 5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10491 .loc 1 5786 5 is_stmt 1 view .LVU3667 10492 0034 48F20101 movw r1, #32769 10493 0038 2046 mov r0, r4 10494 .LVL722: 5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10495 .loc 1 5786 5 is_stmt 0 view .LVU3668 10496 003a FFF7FEFF bl I2C_Disable_IRQ 10497 .LVL723: 5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10498 .loc 1 5787 5 is_stmt 1 view .LVU3669 5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10499 .loc 1 5787 25 is_stmt 0 view .LVU3670 10500 003e 2123 movs r3, #33 10501 0040 2363 str r3, [r4, #48] 10502 .L658: 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10503 .loc 1 5800 3 is_stmt 1 view .LVU3671 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10504 .loc 1 5800 7 is_stmt 0 view .LVU3672 10505 0042 2268 ldr r2, [r4] 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10506 .loc 1 5800 17 view .LVU3673 10507 0044 5368 ldr r3, [r2, #4] 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10508 .loc 1 5800 23 view .LVU3674 10509 0046 43F40043 orr r3, r3, #32768 10510 004a 5360 str r3, [r2, #4] ARM GAS /tmp/cczJHHnF.s page 365 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10511 .loc 1 5803 3 is_stmt 1 view .LVU3675 10512 004c 2268 ldr r2, [r4] 10513 004e 5368 ldr r3, [r2, #4] 10514 0050 23F0FF73 bic r3, r3, #33423360 10515 0054 23F48B33 bic r3, r3, #71168 10516 0058 23F4FF73 bic r3, r3, #510 10517 005c 23F00103 bic r3, r3, #1 10518 0060 5360 str r3, [r2, #4] 5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10519 .loc 1 5806 3 view .LVU3676 10520 0062 2046 mov r0, r4 10521 0064 FFF7FEFF bl I2C_Flush_TXDR 10522 .LVL724: 5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10523 .loc 1 5809 3 view .LVU3677 5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10524 .loc 1 5809 6 is_stmt 0 view .LVU3678 10525 0068 16F4804F tst r6, #16384 10526 006c 40D0 beq .L660 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10527 .loc 1 5812 5 is_stmt 1 view .LVU3679 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10528 .loc 1 5812 9 is_stmt 0 view .LVU3680 10529 006e 2268 ldr r2, [r4] 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10530 .loc 1 5812 19 view .LVU3681 10531 0070 1368 ldr r3, [r2] 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10532 .loc 1 5812 25 view .LVU3682 10533 0072 23F48043 bic r3, r3, #16384 10534 0076 1360 str r3, [r2] 5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10535 .loc 1 5814 5 is_stmt 1 view .LVU3683 5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10536 .loc 1 5814 13 is_stmt 0 view .LVU3684 10537 0078 A36B ldr r3, [r4, #56] 5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10538 .loc 1 5814 8 view .LVU3685 10539 007a 1BB1 cbz r3, .L661 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10540 .loc 1 5816 7 is_stmt 1 view .LVU3686 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10541 .loc 1 5816 35 is_stmt 0 view .LVU3687 10542 007c 1B68 ldr r3, [r3] 10543 007e 5B68 ldr r3, [r3, #4] 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10544 .loc 1 5816 25 view .LVU3688 10545 0080 9BB2 uxth r3, r3 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10546 .loc 1 5816 23 view .LVU3689 10547 0082 6385 strh r3, [r4, #42] @ movhi 10548 .L661: 5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10549 .loc 1 5832 3 is_stmt 1 view .LVU3690 5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10550 .loc 1 5835 3 view .LVU3691 ARM GAS /tmp/cczJHHnF.s page 366 5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10551 .loc 1 5835 6 is_stmt 0 view .LVU3692 10552 0084 15F0040F tst r5, #4 10553 0088 11D0 beq .L662 5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10554 .loc 1 5838 5 is_stmt 1 view .LVU3693 5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10555 .loc 1 5838 16 is_stmt 0 view .LVU3694 10556 008a 25F00405 bic r5, r5, #4 10557 .LVL725: 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10558 .loc 1 5841 5 is_stmt 1 view .LVU3695 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10559 .loc 1 5841 36 is_stmt 0 view .LVU3696 10560 008e 2368 ldr r3, [r4] 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10561 .loc 1 5841 46 view .LVU3697 10562 0090 5A6A ldr r2, [r3, #36] 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10563 .loc 1 5841 10 view .LVU3698 10564 0092 636A ldr r3, [r4, #36] 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10565 .loc 1 5841 21 view .LVU3699 10566 0094 1A70 strb r2, [r3] 5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10567 .loc 1 5844 5 is_stmt 1 view .LVU3700 5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10568 .loc 1 5844 9 is_stmt 0 view .LVU3701 10569 0096 636A ldr r3, [r4, #36] 5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10570 .loc 1 5844 19 view .LVU3702 10571 0098 0133 adds r3, r3, #1 10572 009a 6362 str r3, [r4, #36] 5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10573 .loc 1 5846 5 is_stmt 1 view .LVU3703 5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10574 .loc 1 5846 14 is_stmt 0 view .LVU3704 10575 009c 238D ldrh r3, [r4, #40] 5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10576 .loc 1 5846 8 view .LVU3705 10577 009e 33B1 cbz r3, .L662 5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 10578 .loc 1 5848 7 is_stmt 1 view .LVU3706 5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 10579 .loc 1 5848 21 is_stmt 0 view .LVU3707 10580 00a0 013B subs r3, r3, #1 10581 00a2 2385 strh r3, [r4, #40] @ movhi 5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10582 .loc 1 5849 7 is_stmt 1 view .LVU3708 5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10583 .loc 1 5849 11 is_stmt 0 view .LVU3709 10584 00a4 638D ldrh r3, [r4, #42] 10585 00a6 9BB2 uxth r3, r3 5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10586 .loc 1 5849 22 view .LVU3710 10587 00a8 013B subs r3, r3, #1 10588 00aa 9BB2 uxth r3, r3 ARM GAS /tmp/cczJHHnF.s page 367 10589 00ac 6385 strh r3, [r4, #42] @ movhi 10590 .L662: 5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10591 .loc 1 5854 3 is_stmt 1 view .LVU3711 5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10592 .loc 1 5854 11 is_stmt 0 view .LVU3712 10593 00ae 638D ldrh r3, [r4, #42] 10594 00b0 9BB2 uxth r3, r3 5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10595 .loc 1 5854 6 view .LVU3713 10596 00b2 1BB1 cbz r3, .L663 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10597 .loc 1 5857 5 is_stmt 1 view .LVU3714 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10598 .loc 1 5857 9 is_stmt 0 view .LVU3715 10599 00b4 636C ldr r3, [r4, #68] 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10600 .loc 1 5857 21 view .LVU3716 10601 00b6 43F00403 orr r3, r3, #4 10602 00ba 6364 str r3, [r4, #68] 10603 .L663: 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10604 .loc 1 5860 3 is_stmt 1 view .LVU3717 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10605 .loc 1 5860 14 is_stmt 0 view .LVU3718 10606 00bc 0023 movs r3, #0 10607 00be 84F84230 strb r3, [r4, #66] 5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10608 .loc 1 5861 3 is_stmt 1 view .LVU3719 5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10609 .loc 1 5861 17 is_stmt 0 view .LVU3720 10610 00c2 6363 str r3, [r4, #52] 5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10611 .loc 1 5863 3 is_stmt 1 view .LVU3721 5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10612 .loc 1 5863 11 is_stmt 0 view .LVU3722 10613 00c4 636C ldr r3, [r4, #68] 5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10614 .loc 1 5863 6 view .LVU3723 10615 00c6 1BBB cbnz r3, .L669 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10616 .loc 1 5875 8 is_stmt 1 view .LVU3724 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10617 .loc 1 5875 16 is_stmt 0 view .LVU3725 10618 00c8 E36A ldr r3, [r4, #44] 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10619 .loc 1 5875 11 view .LVU3726 10620 00ca 13F5803F cmn r3, #65536 10621 00ce 2DD1 bne .L670 5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10622 .loc 1 5895 8 is_stmt 1 view .LVU3727 5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10623 .loc 1 5895 16 is_stmt 0 view .LVU3728 10624 00d0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10625 00d4 DBB2 uxtb r3, r3 5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10626 .loc 1 5895 11 view .LVU3729 ARM GAS /tmp/cczJHHnF.s page 368 10627 00d6 222B cmp r3, #34 10628 00d8 38D0 beq .L671 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10629 .loc 1 5912 5 is_stmt 1 view .LVU3730 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10630 .loc 1 5912 17 is_stmt 0 view .LVU3731 10631 00da 2023 movs r3, #32 10632 00dc 84F84130 strb r3, [r4, #65] 5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10633 .loc 1 5913 5 is_stmt 1 view .LVU3732 5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10634 .loc 1 5913 25 is_stmt 0 view .LVU3733 10635 00e0 0023 movs r3, #0 10636 00e2 2363 str r3, [r4, #48] 5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10637 .loc 1 5916 5 is_stmt 1 view .LVU3734 5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10638 .loc 1 5916 5 view .LVU3735 10639 00e4 84F84030 strb r3, [r4, #64] 5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10640 .loc 1 5916 5 view .LVU3736 5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10641 .loc 1 5922 5 view .LVU3737 10642 00e8 2046 mov r0, r4 10643 00ea FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10644 .LVL726: 5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10645 .loc 1 5925 1 is_stmt 0 view .LVU3738 10646 00ee 2CE0 b .L655 10647 .LVL727: 10648 .L660: 5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10649 .loc 1 5819 8 is_stmt 1 view .LVU3739 5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10650 .loc 1 5819 11 is_stmt 0 view .LVU3740 10651 00f0 16F4004F tst r6, #32768 10652 00f4 C6D0 beq .L661 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10653 .loc 1 5822 5 is_stmt 1 view .LVU3741 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10654 .loc 1 5822 9 is_stmt 0 view .LVU3742 10655 00f6 2268 ldr r2, [r4] 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10656 .loc 1 5822 19 view .LVU3743 10657 00f8 1368 ldr r3, [r2] 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10658 .loc 1 5822 25 view .LVU3744 10659 00fa 23F40043 bic r3, r3, #32768 10660 00fe 1360 str r3, [r2] 5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10661 .loc 1 5824 5 is_stmt 1 view .LVU3745 5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10662 .loc 1 5824 13 is_stmt 0 view .LVU3746 10663 0100 E36B ldr r3, [r4, #60] 5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10664 .loc 1 5824 8 view .LVU3747 10665 0102 002B cmp r3, #0 ARM GAS /tmp/cczJHHnF.s page 369 10666 0104 BED0 beq .L661 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10667 .loc 1 5826 7 is_stmt 1 view .LVU3748 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10668 .loc 1 5826 35 is_stmt 0 view .LVU3749 10669 0106 1B68 ldr r3, [r3] 10670 0108 5B68 ldr r3, [r3, #4] 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10671 .loc 1 5826 25 view .LVU3750 10672 010a 9BB2 uxth r3, r3 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10673 .loc 1 5826 23 view .LVU3751 10674 010c 6385 strh r3, [r4, #42] @ movhi 10675 010e B9E7 b .L661 10676 .LVL728: 10677 .L669: 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10678 .loc 1 5866 5 is_stmt 1 view .LVU3752 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10679 .loc 1 5866 27 is_stmt 0 view .LVU3753 10680 0110 616C ldr r1, [r4, #68] 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10681 .loc 1 5866 5 view .LVU3754 10682 0112 2046 mov r0, r4 10683 0114 FFF7FEFF bl I2C_ITError 10684 .LVL729: 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10685 .loc 1 5869 5 is_stmt 1 view .LVU3755 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10686 .loc 1 5869 13 is_stmt 0 view .LVU3756 10687 0118 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10688 011c DBB2 uxtb r3, r3 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10689 .loc 1 5869 8 view .LVU3757 10690 011e 282B cmp r3, #40 10691 0120 13D1 bne .L655 5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10692 .loc 1 5872 7 is_stmt 1 view .LVU3758 10693 0122 2946 mov r1, r5 10694 0124 2046 mov r0, r4 10695 0126 FFF7FEFF bl I2C_ITListenCplt 10696 .LVL730: 10697 012a 0EE0 b .L655 10698 .L670: 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10699 .loc 1 5878 5 view .LVU3759 10700 012c 2046 mov r0, r4 10701 012e FFF7FEFF bl I2C_ITSlaveSeqCplt 10702 .LVL731: 5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10703 .loc 1 5880 5 view .LVU3760 5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10704 .loc 1 5880 23 is_stmt 0 view .LVU3761 10705 0132 0C4B ldr r3, .L672 10706 0134 E362 str r3, [r4, #44] 5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10707 .loc 1 5881 5 is_stmt 1 view .LVU3762 ARM GAS /tmp/cczJHHnF.s page 370 5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10708 .loc 1 5881 17 is_stmt 0 view .LVU3763 10709 0136 2023 movs r3, #32 10710 0138 84F84130 strb r3, [r4, #65] 5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10711 .loc 1 5882 5 is_stmt 1 view .LVU3764 5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10712 .loc 1 5882 25 is_stmt 0 view .LVU3765 10713 013c 0023 movs r3, #0 10714 013e 2363 str r3, [r4, #48] 5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10715 .loc 1 5885 5 is_stmt 1 view .LVU3766 5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10716 .loc 1 5885 5 view .LVU3767 10717 0140 84F84030 strb r3, [r4, #64] 5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10718 .loc 1 5885 5 view .LVU3768 5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10719 .loc 1 5891 5 view .LVU3769 10720 0144 2046 mov r0, r4 10721 0146 FFF7FEFF bl HAL_I2C_ListenCpltCallback 10722 .LVL732: 10723 .L655: 5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10724 .loc 1 5925 1 is_stmt 0 view .LVU3770 10725 014a 70BD pop {r4, r5, r6, pc} 10726 .LVL733: 10727 .L671: 5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10728 .loc 1 5897 5 is_stmt 1 view .LVU3771 5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10729 .loc 1 5897 17 is_stmt 0 view .LVU3772 10730 014c 2023 movs r3, #32 10731 014e 84F84130 strb r3, [r4, #65] 5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10732 .loc 1 5898 5 is_stmt 1 view .LVU3773 5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10733 .loc 1 5898 25 is_stmt 0 view .LVU3774 10734 0152 0023 movs r3, #0 10735 0154 2363 str r3, [r4, #48] 5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10736 .loc 1 5901 5 is_stmt 1 view .LVU3775 5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10737 .loc 1 5901 5 view .LVU3776 10738 0156 84F84030 strb r3, [r4, #64] 5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10739 .loc 1 5901 5 view .LVU3777 5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10740 .loc 1 5907 5 view .LVU3778 10741 015a 2046 mov r0, r4 10742 015c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10743 .LVL734: 10744 0160 F3E7 b .L655 10745 .L673: 10746 0162 00BF .align 2 10747 .L672: 10748 0164 0000FFFF .word -65536 ARM GAS /tmp/cczJHHnF.s page 371 10749 .cfi_endproc 10750 .LFE189: 10752 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 10753 .align 1 10754 .syntax unified 10755 .thumb 10756 .thumb_func 10758 I2C_Slave_ISR_IT: 10759 .LVL735: 10760 .LFB180: 4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10761 .loc 1 4881 1 view -0 10762 .cfi_startproc 10763 @ args = 0, pretend = 0, frame = 0 10764 @ frame_needed = 0, uses_anonymous_args = 0 4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10765 .loc 1 4881 1 is_stmt 0 view .LVU3780 10766 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10767 .cfi_def_cfa_offset 24 10768 .cfi_offset 3, -24 10769 .cfi_offset 4, -20 10770 .cfi_offset 5, -16 10771 .cfi_offset 6, -12 10772 .cfi_offset 7, -8 10773 .cfi_offset 14, -4 4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10774 .loc 1 4882 3 is_stmt 1 view .LVU3781 4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 10775 .loc 1 4882 12 is_stmt 0 view .LVU3782 10776 0002 C76A ldr r7, [r0, #44] 10777 .LVL736: 4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10778 .loc 1 4883 3 is_stmt 1 view .LVU3783 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10779 .loc 1 4886 3 view .LVU3784 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10780 .loc 1 4886 3 view .LVU3785 10781 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 10782 0008 012B cmp r3, #1 10783 000a 00F09E80 beq .L688 10784 000e 0446 mov r4, r0 10785 0010 0D46 mov r5, r1 10786 0012 1646 mov r6, r2 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10787 .loc 1 4886 3 discriminator 2 view .LVU3786 10788 0014 0123 movs r3, #1 10789 0016 80F84030 strb r3, [r0, #64] 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10790 .loc 1 4886 3 discriminator 2 view .LVU3787 4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 10791 .loc 1 4889 3 discriminator 2 view .LVU3788 4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 10792 .loc 1 4889 6 is_stmt 0 discriminator 2 view .LVU3789 10793 001a 11F0200F tst r1, #32 10794 001e 02D0 beq .L676 4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 10795 .loc 1 4889 61 discriminator 1 view .LVU3790 ARM GAS /tmp/cczJHHnF.s page 372 10796 0020 12F0200F tst r2, #32 10797 0024 19D1 bne .L690 10798 .LVL737: 10799 .L676: 4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 10800 .loc 1 4896 3 is_stmt 1 view .LVU3791 4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 10801 .loc 1 4896 6 is_stmt 0 view .LVU3792 10802 0026 15F0100F tst r5, #16 10803 002a 3ED0 beq .L677 4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 10804 .loc 1 4896 58 discriminator 1 view .LVU3793 10805 002c 16F0100F tst r6, #16 10806 0030 3BD0 beq .L677 4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10807 .loc 1 4903 5 is_stmt 1 view .LVU3794 4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10808 .loc 1 4903 13 is_stmt 0 view .LVU3795 10809 0032 638D ldrh r3, [r4, #42] 10810 0034 9BB2 uxth r3, r3 4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10811 .loc 1 4903 8 view .LVU3796 10812 0036 43BB cbnz r3, .L678 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 10813 .loc 1 4905 7 is_stmt 1 view .LVU3797 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 10814 .loc 1 4905 16 is_stmt 0 view .LVU3798 10815 0038 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10816 003c DBB2 uxtb r3, r3 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 10817 .loc 1 4905 10 view .LVU3799 10818 003e 282B cmp r3, #40 10819 0040 0ED0 beq .L691 10820 .L679: 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10821 .loc 1 4912 12 is_stmt 1 view .LVU3800 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10822 .loc 1 4912 21 is_stmt 0 view .LVU3801 10823 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10824 0046 DBB2 uxtb r3, r3 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10825 .loc 1 4912 15 view .LVU3802 10826 0048 292B cmp r3, #41 10827 004a 11D0 beq .L692 10828 .L681: 4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10829 .loc 1 4927 9 is_stmt 1 view .LVU3803 10830 004c 2368 ldr r3, [r4] 10831 004e 1022 movs r2, #16 10832 0050 DA61 str r2, [r3, #28] 10833 .L680: 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10834 .loc 1 5004 3 view .LVU3804 5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10835 .loc 1 5007 3 view .LVU3805 5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10836 .loc 1 5007 3 view .LVU3806 ARM GAS /tmp/cczJHHnF.s page 373 10837 0052 0020 movs r0, #0 10838 0054 84F84000 strb r0, [r4, #64] 5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10839 .loc 1 5007 3 view .LVU3807 5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10840 .loc 1 5009 3 view .LVU3808 10841 .LVL738: 10842 .L675: 5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10843 .loc 1 5010 1 is_stmt 0 view .LVU3809 10844 0058 F8BD pop {r3, r4, r5, r6, r7, pc} 10845 .LVL739: 10846 .L690: 4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10847 .loc 1 4893 5 is_stmt 1 view .LVU3810 10848 005a FFF7FEFF bl I2C_ITSlaveCplt 10849 .LVL740: 4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10850 .loc 1 4893 5 is_stmt 0 view .LVU3811 10851 005e E2E7 b .L676 10852 .L691: 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 10853 .loc 1 4905 49 discriminator 1 view .LVU3812 10854 0060 B7F1007F cmp r7, #33554432 10855 0064 EDD1 bne .L679 4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10856 .loc 1 4910 9 is_stmt 1 view .LVU3813 10857 0066 2946 mov r1, r5 10858 0068 2046 mov r0, r4 10859 006a FFF7FEFF bl I2C_ITListenCplt 10860 .LVL741: 10861 006e F0E7 b .L680 10862 .L692: 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10863 .loc 1 4912 62 is_stmt 0 discriminator 1 view .LVU3814 10864 0070 17F5803F cmn r7, #65536 10865 0074 EAD0 beq .L681 4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10866 .loc 1 4915 9 is_stmt 1 view .LVU3815 10867 0076 2368 ldr r3, [r4] 10868 0078 1022 movs r2, #16 10869 007a DA61 str r2, [r3, #28] 4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10870 .loc 1 4918 9 view .LVU3816 10871 007c 2046 mov r0, r4 10872 007e FFF7FEFF bl I2C_Flush_TXDR 10873 .LVL742: 4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10874 .loc 1 4922 9 view .LVU3817 10875 0082 2046 mov r0, r4 10876 0084 FFF7FEFF bl I2C_ITSlaveSeqCplt 10877 .LVL743: 10878 0088 E3E7 b .L680 10879 .L678: 4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10880 .loc 1 4934 7 view .LVU3818 10881 008a 2368 ldr r3, [r4] ARM GAS /tmp/cczJHHnF.s page 374 10882 008c 1022 movs r2, #16 10883 008e DA61 str r2, [r3, #28] 4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10884 .loc 1 4937 7 view .LVU3819 4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10885 .loc 1 4937 11 is_stmt 0 view .LVU3820 10886 0090 636C ldr r3, [r4, #68] 4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10887 .loc 1 4937 23 view .LVU3821 10888 0092 43F00403 orr r3, r3, #4 10889 0096 6364 str r3, [r4, #68] 4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10890 .loc 1 4939 7 is_stmt 1 view .LVU3822 4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10891 .loc 1 4939 10 is_stmt 0 view .LVU3823 10892 0098 17B1 cbz r7, .L682 4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10893 .loc 1 4939 43 discriminator 1 view .LVU3824 10894 009a B7F1807F cmp r7, #16777216 10895 009e D8D1 bne .L680 10896 .L682: 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10897 .loc 1 4942 9 is_stmt 1 view .LVU3825 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10898 .loc 1 4942 31 is_stmt 0 view .LVU3826 10899 00a0 616C ldr r1, [r4, #68] 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10900 .loc 1 4942 9 view .LVU3827 10901 00a2 2046 mov r0, r4 10902 00a4 FFF7FEFF bl I2C_ITError 10903 .LVL744: 10904 00a8 D3E7 b .L680 10905 .L677: 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 10906 .loc 1 4946 8 is_stmt 1 view .LVU3828 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 10907 .loc 1 4946 11 is_stmt 0 view .LVU3829 10908 00aa 15F0040F tst r5, #4 10909 00ae 1FD0 beq .L683 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 10910 .loc 1 4946 65 discriminator 1 view .LVU3830 10911 00b0 16F0040F tst r6, #4 10912 00b4 1CD0 beq .L683 4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10913 .loc 1 4949 5 is_stmt 1 view .LVU3831 4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10914 .loc 1 4949 13 is_stmt 0 view .LVU3832 10915 00b6 638D ldrh r3, [r4, #42] 10916 00b8 9BB2 uxth r3, r3 4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10917 .loc 1 4949 8 view .LVU3833 10918 00ba 73B1 cbz r3, .L684 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10919 .loc 1 4952 7 is_stmt 1 view .LVU3834 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10920 .loc 1 4952 38 is_stmt 0 view .LVU3835 10921 00bc 2368 ldr r3, [r4] ARM GAS /tmp/cczJHHnF.s page 375 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10922 .loc 1 4952 48 view .LVU3836 10923 00be 5A6A ldr r2, [r3, #36] 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10924 .loc 1 4952 12 view .LVU3837 10925 00c0 636A ldr r3, [r4, #36] 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10926 .loc 1 4952 23 view .LVU3838 10927 00c2 1A70 strb r2, [r3] 4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10928 .loc 1 4955 7 is_stmt 1 view .LVU3839 4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10929 .loc 1 4955 11 is_stmt 0 view .LVU3840 10930 00c4 636A ldr r3, [r4, #36] 4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10931 .loc 1 4955 21 view .LVU3841 10932 00c6 0133 adds r3, r3, #1 10933 00c8 6362 str r3, [r4, #36] 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 10934 .loc 1 4957 7 is_stmt 1 view .LVU3842 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 10935 .loc 1 4957 11 is_stmt 0 view .LVU3843 10936 00ca 238D ldrh r3, [r4, #40] 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 10937 .loc 1 4957 21 view .LVU3844 10938 00cc 013B subs r3, r3, #1 10939 00ce 2385 strh r3, [r4, #40] @ movhi 4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10940 .loc 1 4958 7 is_stmt 1 view .LVU3845 4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10941 .loc 1 4958 11 is_stmt 0 view .LVU3846 10942 00d0 638D ldrh r3, [r4, #42] 10943 00d2 9BB2 uxth r3, r3 4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10944 .loc 1 4958 22 view .LVU3847 10945 00d4 013B subs r3, r3, #1 10946 00d6 9BB2 uxth r3, r3 10947 00d8 6385 strh r3, [r4, #42] @ movhi 10948 .L684: 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10949 .loc 1 4961 5 is_stmt 1 view .LVU3848 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10950 .loc 1 4961 14 is_stmt 0 view .LVU3849 10951 00da 638D ldrh r3, [r4, #42] 10952 00dc 9BB2 uxth r3, r3 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10953 .loc 1 4961 8 view .LVU3850 10954 00de 002B cmp r3, #0 10955 00e0 B7D1 bne .L680 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10956 .loc 1 4961 33 discriminator 1 view .LVU3851 10957 00e2 17F5803F cmn r7, #65536 10958 00e6 B4D0 beq .L680 4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10959 .loc 1 4965 7 is_stmt 1 view .LVU3852 10960 00e8 2046 mov r0, r4 10961 00ea FFF7FEFF bl I2C_ITSlaveSeqCplt ARM GAS /tmp/cczJHHnF.s page 376 10962 .LVL745: 10963 00ee B0E7 b .L680 10964 .L683: 4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 10965 .loc 1 4968 8 view .LVU3853 4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 10966 .loc 1 4968 11 is_stmt 0 view .LVU3854 10967 00f0 15F0080F tst r5, #8 10968 00f4 02D0 beq .L685 4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 10969 .loc 1 4968 65 discriminator 1 view .LVU3855 10970 00f6 16F0080F tst r6, #8 10971 00fa 18D1 bne .L693 10972 .L685: 4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 10973 .loc 1 4973 8 is_stmt 1 view .LVU3856 4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 10974 .loc 1 4973 11 is_stmt 0 view .LVU3857 10975 00fc 15F0020F tst r5, #2 10976 0100 A7D0 beq .L680 4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 10977 .loc 1 4973 65 discriminator 1 view .LVU3858 10978 0102 16F0020F tst r6, #2 10979 0106 A4D0 beq .L680 4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10980 .loc 1 4980 5 is_stmt 1 view .LVU3859 4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10981 .loc 1 4980 13 is_stmt 0 view .LVU3860 10982 0108 638D ldrh r3, [r4, #42] 10983 010a 9BB2 uxth r3, r3 4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10984 .loc 1 4980 8 view .LVU3861 10985 010c A3B1 cbz r3, .L686 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10986 .loc 1 4983 7 is_stmt 1 view .LVU3862 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10987 .loc 1 4983 35 is_stmt 0 view .LVU3863 10988 010e 626A ldr r2, [r4, #36] 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10989 .loc 1 4983 11 view .LVU3864 10990 0110 2368 ldr r3, [r4] 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10991 .loc 1 4983 30 view .LVU3865 10992 0112 1278 ldrb r2, [r2] @ zero_extendqisi2 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10993 .loc 1 4983 28 view .LVU3866 10994 0114 9A62 str r2, [r3, #40] 4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10995 .loc 1 4986 7 is_stmt 1 view .LVU3867 4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10996 .loc 1 4986 11 is_stmt 0 view .LVU3868 10997 0116 636A ldr r3, [r4, #36] 4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10998 .loc 1 4986 21 view .LVU3869 10999 0118 0133 adds r3, r3, #1 11000 011a 6362 str r3, [r4, #36] 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/cczJHHnF.s page 377 11001 .loc 1 4988 7 is_stmt 1 view .LVU3870 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 11002 .loc 1 4988 11 is_stmt 0 view .LVU3871 11003 011c 638D ldrh r3, [r4, #42] 11004 011e 9BB2 uxth r3, r3 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 11005 .loc 1 4988 22 view .LVU3872 11006 0120 013B subs r3, r3, #1 11007 0122 9BB2 uxth r3, r3 11008 0124 6385 strh r3, [r4, #42] @ movhi 4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11009 .loc 1 4989 7 is_stmt 1 view .LVU3873 4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11010 .loc 1 4989 11 is_stmt 0 view .LVU3874 11011 0126 238D ldrh r3, [r4, #40] 4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11012 .loc 1 4989 21 view .LVU3875 11013 0128 013B subs r3, r3, #1 11014 012a 2385 strh r3, [r4, #40] @ movhi 11015 012c 91E7 b .L680 11016 .L693: 4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11017 .loc 1 4971 5 is_stmt 1 view .LVU3876 11018 012e 2946 mov r1, r5 11019 0130 2046 mov r0, r4 11020 0132 FFF7FEFF bl I2C_ITAddrCplt 11021 .LVL746: 11022 0136 8CE7 b .L680 11023 .L686: 4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11024 .loc 1 4993 7 view .LVU3877 4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11025 .loc 1 4993 10 is_stmt 0 view .LVU3878 11026 0138 B7F1807F cmp r7, #16777216 11027 013c 01D0 beq .L687 4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11028 .loc 1 4993 42 discriminator 1 view .LVU3879 11029 013e 002F cmp r7, #0 11030 0140 87D1 bne .L680 11031 .L687: 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11032 .loc 1 4997 9 is_stmt 1 view .LVU3880 11033 0142 2046 mov r0, r4 11034 0144 FFF7FEFF bl I2C_ITSlaveSeqCplt 11035 .LVL747: 11036 0148 83E7 b .L680 11037 .LVL748: 11038 .L688: 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11039 .loc 1 4886 3 is_stmt 0 view .LVU3881 11040 014a 0220 movs r0, #2 11041 .LVL749: 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11042 .loc 1 4886 3 view .LVU3882 11043 014c 84E7 b .L675 11044 .cfi_endproc 11045 .LFE180: ARM GAS /tmp/cczJHHnF.s page 378 11047 .section .text.I2C_ITMasterCplt,"ax",%progbits 11048 .align 1 11049 .syntax unified 11050 .thumb 11051 .thumb_func 11053 I2C_ITMasterCplt: 11054 .LVL750: 11055 .LFB188: 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 11056 .loc 1 5632 1 is_stmt 1 view -0 11057 .cfi_startproc 11058 @ args = 0, pretend = 0, frame = 8 11059 @ frame_needed = 0, uses_anonymous_args = 0 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 11060 .loc 1 5632 1 is_stmt 0 view .LVU3884 11061 0000 30B5 push {r4, r5, lr} 11062 .cfi_def_cfa_offset 12 11063 .cfi_offset 4, -12 11064 .cfi_offset 5, -8 11065 .cfi_offset 14, -4 11066 0002 83B0 sub sp, sp, #12 11067 .cfi_def_cfa_offset 24 11068 0004 0446 mov r4, r0 11069 0006 0D46 mov r5, r1 5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11070 .loc 1 5633 3 is_stmt 1 view .LVU3885 5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg; 11071 .loc 1 5634 3 view .LVU3886 11072 .LVL751: 5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11073 .loc 1 5635 3 view .LVU3887 5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11074 .loc 1 5638 3 view .LVU3888 11075 0008 0368 ldr r3, [r0] 11076 000a 2022 movs r2, #32 11077 000c DA61 str r2, [r3, #28] 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11078 .loc 1 5641 3 view .LVU3889 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11079 .loc 1 5641 11 is_stmt 0 view .LVU3890 11080 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11081 0012 DBB2 uxtb r3, r3 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11082 .loc 1 5641 6 view .LVU3891 11083 0014 212B cmp r3, #33 11084 0016 33D0 beq .L706 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11085 .loc 1 5646 8 is_stmt 1 view .LVU3892 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11086 .loc 1 5646 16 is_stmt 0 view .LVU3893 11087 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11088 001c DBB2 uxtb r3, r3 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11089 .loc 1 5646 11 view .LVU3894 11090 001e 222B cmp r3, #34 11091 0020 34D0 beq .L707 11092 .LVL752: ARM GAS /tmp/cczJHHnF.s page 379 11093 .L696: 5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11094 .loc 1 5654 3 is_stmt 1 view .LVU3895 5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11095 .loc 1 5657 3 view .LVU3896 11096 0022 2268 ldr r2, [r4] 11097 0024 5368 ldr r3, [r2, #4] 11098 0026 23F0FF73 bic r3, r3, #33423360 11099 002a 23F48B33 bic r3, r3, #71168 11100 002e 23F4FF73 bic r3, r3, #510 11101 0032 23F00103 bic r3, r3, #1 11102 0036 5360 str r3, [r2, #4] 5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11103 .loc 1 5660 3 view .LVU3897 5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11104 .loc 1 5660 23 is_stmt 0 view .LVU3898 11105 0038 0023 movs r3, #0 11106 003a 6363 str r3, [r4, #52] 5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11107 .loc 1 5661 3 is_stmt 1 view .LVU3899 5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11108 .loc 1 5661 23 is_stmt 0 view .LVU3900 11109 003c A3F58033 sub r3, r3, #65536 11110 0040 E362 str r3, [r4, #44] 5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11111 .loc 1 5663 3 is_stmt 1 view .LVU3901 5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11112 .loc 1 5663 6 is_stmt 0 view .LVU3902 11113 0042 15F0100F tst r5, #16 11114 0046 06D0 beq .L697 5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11115 .loc 1 5666 5 is_stmt 1 view .LVU3903 11116 0048 2368 ldr r3, [r4] 11117 004a 1022 movs r2, #16 11118 004c DA61 str r2, [r3, #28] 5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11119 .loc 1 5669 5 view .LVU3904 5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11120 .loc 1 5669 9 is_stmt 0 view .LVU3905 11121 004e 636C ldr r3, [r4, #68] 5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11122 .loc 1 5669 21 view .LVU3906 11123 0050 43F00403 orr r3, r3, #4 11124 0054 6364 str r3, [r4, #68] 11125 .L697: 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11126 .loc 1 5673 3 is_stmt 1 view .LVU3907 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11127 .loc 1 5673 12 is_stmt 0 view .LVU3908 11128 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11129 005a DBB2 uxtb r3, r3 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11130 .loc 1 5673 6 view .LVU3909 11131 005c 602B cmp r3, #96 11132 005e 1BD0 beq .L708 11133 .L698: 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 380 11134 .loc 1 5681 3 is_stmt 1 view .LVU3910 11135 0060 2046 mov r0, r4 11136 0062 FFF7FEFF bl I2C_Flush_TXDR 11137 .LVL753: 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11138 .loc 1 5684 3 view .LVU3911 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11139 .loc 1 5684 12 is_stmt 0 view .LVU3912 11140 0066 626C ldr r2, [r4, #68] 11141 .LVL754: 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11142 .loc 1 5687 3 is_stmt 1 view .LVU3913 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11143 .loc 1 5687 12 is_stmt 0 view .LVU3914 11144 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11145 006c DBB2 uxtb r3, r3 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11146 .loc 1 5687 6 view .LVU3915 11147 006e 602B cmp r3, #96 11148 0070 00D0 beq .L699 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11149 .loc 1 5687 44 discriminator 1 view .LVU3916 11150 0072 D2B1 cbz r2, .L700 11151 .L699: 5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11152 .loc 1 5690 5 is_stmt 1 view .LVU3917 5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11153 .loc 1 5690 27 is_stmt 0 view .LVU3918 11154 0074 616C ldr r1, [r4, #68] 5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11155 .loc 1 5690 5 view .LVU3919 11156 0076 2046 mov r0, r4 11157 0078 FFF7FEFF bl I2C_ITError 11158 .LVL755: 11159 .L694: 5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11160 .loc 1 5766 1 view .LVU3920 11161 007c 03B0 add sp, sp, #12 11162 .cfi_remember_state 11163 .cfi_def_cfa_offset 12 11164 @ sp needed 11165 007e 30BD pop {r4, r5, pc} 11166 .LVL756: 11167 .L706: 11168 .cfi_restore_state 5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 11169 .loc 1 5643 5 is_stmt 1 view .LVU3921 11170 0080 0121 movs r1, #1 11171 .LVL757: 5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 11172 .loc 1 5643 5 is_stmt 0 view .LVU3922 11173 0082 FFF7FEFF bl I2C_Disable_IRQ 11174 .LVL758: 5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11175 .loc 1 5644 5 is_stmt 1 view .LVU3923 5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11176 .loc 1 5644 25 is_stmt 0 view .LVU3924 ARM GAS /tmp/cczJHHnF.s page 381 11177 0086 1123 movs r3, #17 11178 0088 2363 str r3, [r4, #48] 11179 008a CAE7 b .L696 11180 .LVL759: 11181 .L707: 5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 11182 .loc 1 5648 5 is_stmt 1 view .LVU3925 11183 008c 0221 movs r1, #2 11184 .LVL760: 5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 11185 .loc 1 5648 5 is_stmt 0 view .LVU3926 11186 008e FFF7FEFF bl I2C_Disable_IRQ 11187 .LVL761: 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11188 .loc 1 5649 5 is_stmt 1 view .LVU3927 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11189 .loc 1 5649 25 is_stmt 0 view .LVU3928 11190 0092 1223 movs r3, #18 11191 0094 2363 str r3, [r4, #48] 11192 0096 C4E7 b .L696 11193 .L708: 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11194 .loc 1 5673 44 discriminator 1 view .LVU3929 11195 0098 15F0040F tst r5, #4 11196 009c E0D0 beq .L698 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 11197 .loc 1 5676 5 is_stmt 1 view .LVU3930 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 11198 .loc 1 5676 27 is_stmt 0 view .LVU3931 11199 009e 2368 ldr r3, [r4] 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 11200 .loc 1 5676 37 view .LVU3932 11201 00a0 5B6A ldr r3, [r3, #36] 11202 00a2 DBB2 uxtb r3, r3 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 11203 .loc 1 5676 12 view .LVU3933 11204 00a4 0193 str r3, [sp, #4] 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11205 .loc 1 5677 5 is_stmt 1 view .LVU3934 11206 00a6 019B ldr r3, [sp, #4] 11207 00a8 DAE7 b .L698 11208 .LVL762: 11209 .L700: 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11210 .loc 1 5693 8 view .LVU3935 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11211 .loc 1 5693 16 is_stmt 0 view .LVU3936 11212 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11213 00ae DBB2 uxtb r3, r3 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11214 .loc 1 5693 11 view .LVU3937 11215 00b0 212B cmp r3, #33 11216 00b2 17D0 beq .L709 5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11217 .loc 1 5728 8 is_stmt 1 view .LVU3938 5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11218 .loc 1 5728 16 is_stmt 0 view .LVU3939 ARM GAS /tmp/cczJHHnF.s page 382 11219 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11220 00b8 DBB2 uxtb r3, r3 5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11221 .loc 1 5728 11 view .LVU3940 11222 00ba 222B cmp r3, #34 11223 00bc DED1 bne .L694 5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11224 .loc 1 5730 5 is_stmt 1 view .LVU3941 5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11225 .loc 1 5730 17 is_stmt 0 view .LVU3942 11226 00be 2023 movs r3, #32 11227 00c0 84F84130 strb r3, [r4, #65] 5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11228 .loc 1 5731 5 is_stmt 1 view .LVU3943 5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11229 .loc 1 5731 25 is_stmt 0 view .LVU3944 11230 00c4 0023 movs r3, #0 11231 00c6 2363 str r3, [r4, #48] 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11232 .loc 1 5733 5 is_stmt 1 view .LVU3945 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11233 .loc 1 5733 13 is_stmt 0 view .LVU3946 11234 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 11235 00cc DBB2 uxtb r3, r3 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11236 .loc 1 5733 8 view .LVU3947 11237 00ce 402B cmp r3, #64 11238 00d0 24D0 beq .L710 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11239 .loc 1 5749 7 is_stmt 1 view .LVU3948 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11240 .loc 1 5749 18 is_stmt 0 view .LVU3949 11241 00d2 0023 movs r3, #0 11242 00d4 84F84230 strb r3, [r4, #66] 5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11243 .loc 1 5752 7 is_stmt 1 view .LVU3950 5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11244 .loc 1 5752 7 view .LVU3951 11245 00d8 84F84030 strb r3, [r4, #64] 5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11246 .loc 1 5752 7 view .LVU3952 5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11247 .loc 1 5758 7 view .LVU3953 11248 00dc 2046 mov r0, r4 11249 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 11250 .LVL763: 5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11251 .loc 1 5765 3 view .LVU3954 5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11252 .loc 1 5766 1 is_stmt 0 view .LVU3955 11253 00e2 CBE7 b .L694 11254 .LVL764: 11255 .L709: 5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11256 .loc 1 5695 5 is_stmt 1 view .LVU3956 5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11257 .loc 1 5695 17 is_stmt 0 view .LVU3957 ARM GAS /tmp/cczJHHnF.s page 383 11258 00e4 2023 movs r3, #32 11259 00e6 84F84130 strb r3, [r4, #65] 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11260 .loc 1 5696 5 is_stmt 1 view .LVU3958 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11261 .loc 1 5696 25 is_stmt 0 view .LVU3959 11262 00ea 0023 movs r3, #0 11263 00ec 2363 str r3, [r4, #48] 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11264 .loc 1 5698 5 is_stmt 1 view .LVU3960 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11265 .loc 1 5698 13 is_stmt 0 view .LVU3961 11266 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 11267 00f2 DBB2 uxtb r3, r3 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11268 .loc 1 5698 8 view .LVU3962 11269 00f4 402B cmp r3, #64 11270 00f6 08D0 beq .L711 5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11271 .loc 1 5714 7 is_stmt 1 view .LVU3963 5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11272 .loc 1 5714 18 is_stmt 0 view .LVU3964 11273 00f8 0023 movs r3, #0 11274 00fa 84F84230 strb r3, [r4, #66] 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11275 .loc 1 5717 7 is_stmt 1 view .LVU3965 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11276 .loc 1 5717 7 view .LVU3966 11277 00fe 84F84030 strb r3, [r4, #64] 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11278 .loc 1 5717 7 view .LVU3967 5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11279 .loc 1 5723 7 view .LVU3968 11280 0102 2046 mov r0, r4 11281 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 11282 .LVL765: 5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11283 .loc 1 5723 7 is_stmt 0 view .LVU3969 11284 0108 B8E7 b .L694 11285 .LVL766: 11286 .L711: 5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11287 .loc 1 5700 7 is_stmt 1 view .LVU3970 5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11288 .loc 1 5700 18 is_stmt 0 view .LVU3971 11289 010a 0023 movs r3, #0 11290 010c 84F84230 strb r3, [r4, #66] 5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11291 .loc 1 5703 7 is_stmt 1 view .LVU3972 5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11292 .loc 1 5703 7 view .LVU3973 11293 0110 84F84030 strb r3, [r4, #64] 5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11294 .loc 1 5703 7 view .LVU3974 5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11295 .loc 1 5709 7 view .LVU3975 11296 0114 2046 mov r0, r4 ARM GAS /tmp/cczJHHnF.s page 384 11297 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 11298 .LVL767: 5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11299 .loc 1 5709 7 is_stmt 0 view .LVU3976 11300 011a AFE7 b .L694 11301 .LVL768: 11302 .L710: 5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11303 .loc 1 5735 7 is_stmt 1 view .LVU3977 5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11304 .loc 1 5735 18 is_stmt 0 view .LVU3978 11305 011c 0023 movs r3, #0 11306 011e 84F84230 strb r3, [r4, #66] 5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11307 .loc 1 5738 7 is_stmt 1 view .LVU3979 5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11308 .loc 1 5738 7 view .LVU3980 11309 0122 84F84030 strb r3, [r4, #64] 5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11310 .loc 1 5738 7 view .LVU3981 5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11311 .loc 1 5744 7 view .LVU3982 11312 0126 2046 mov r0, r4 11313 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 11314 .LVL769: 5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11315 .loc 1 5744 7 is_stmt 0 view .LVU3983 11316 012c A6E7 b .L694 11317 .cfi_endproc 11318 .LFE188: 11320 .section .text.I2C_Master_ISR_IT,"ax",%progbits 11321 .align 1 11322 .syntax unified 11323 .thumb 11324 .thumb_func 11326 I2C_Master_ISR_IT: 11327 .LVL770: 11328 .LFB179: 4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 11329 .loc 1 4735 1 is_stmt 1 view -0 11330 .cfi_startproc 11331 @ args = 0, pretend = 0, frame = 0 11332 @ frame_needed = 0, uses_anonymous_args = 0 4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11333 .loc 1 4736 3 view .LVU3985 4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11334 .loc 1 4737 3 view .LVU3986 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11335 .loc 1 4740 3 view .LVU3987 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11336 .loc 1 4740 3 view .LVU3988 11337 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 11338 0004 012B cmp r3, #1 11339 0006 00F0B980 beq .L726 4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 11340 .loc 1 4735 1 is_stmt 0 discriminator 2 view .LVU3989 11341 000a 70B5 push {r4, r5, r6, lr} ARM GAS /tmp/cczJHHnF.s page 385 11342 .cfi_def_cfa_offset 16 11343 .cfi_offset 4, -16 11344 .cfi_offset 5, -12 11345 .cfi_offset 6, -8 11346 .cfi_offset 14, -4 11347 000c 82B0 sub sp, sp, #8 11348 .cfi_def_cfa_offset 24 11349 000e 0446 mov r4, r0 11350 0010 0D46 mov r5, r1 11351 0012 1646 mov r6, r2 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11352 .loc 1 4740 3 is_stmt 1 discriminator 2 view .LVU3990 11353 0014 0123 movs r3, #1 11354 0016 80F84030 strb r3, [r0, #64] 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11355 .loc 1 4740 3 discriminator 2 view .LVU3991 4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11356 .loc 1 4742 3 discriminator 2 view .LVU3992 4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11357 .loc 1 4742 6 is_stmt 0 discriminator 2 view .LVU3993 11358 001a 11F0100F tst r1, #16 11359 001e 02D0 beq .L714 4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11360 .loc 1 4742 58 discriminator 1 view .LVU3994 11361 0020 12F0100F tst r2, #16 11362 0024 22D1 bne .L731 11363 .L714: 4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11364 .loc 1 4756 8 is_stmt 1 view .LVU3995 4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11365 .loc 1 4756 11 is_stmt 0 view .LVU3996 11366 0026 15F0040F tst r5, #4 11367 002a 29D0 beq .L716 4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11368 .loc 1 4756 65 discriminator 1 view .LVU3997 11369 002c 16F0040F tst r6, #4 11370 0030 26D0 beq .L716 4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11371 .loc 1 4760 5 is_stmt 1 view .LVU3998 4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11372 .loc 1 4760 16 is_stmt 0 view .LVU3999 11373 0032 25F00405 bic r5, r5, #4 11374 .LVL771: 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11375 .loc 1 4763 5 is_stmt 1 view .LVU4000 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11376 .loc 1 4763 36 is_stmt 0 view .LVU4001 11377 0036 2368 ldr r3, [r4] 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11378 .loc 1 4763 46 view .LVU4002 11379 0038 5A6A ldr r2, [r3, #36] 11380 .LVL772: 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11381 .loc 1 4763 10 view .LVU4003 11382 003a 636A ldr r3, [r4, #36] 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11383 .loc 1 4763 21 view .LVU4004 ARM GAS /tmp/cczJHHnF.s page 386 11384 003c 1A70 strb r2, [r3] 4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11385 .loc 1 4766 5 is_stmt 1 view .LVU4005 4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11386 .loc 1 4766 9 is_stmt 0 view .LVU4006 11387 003e 636A ldr r3, [r4, #36] 4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11388 .loc 1 4766 19 view .LVU4007 11389 0040 0133 adds r3, r3, #1 11390 0042 6362 str r3, [r4, #36] 4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11391 .loc 1 4768 5 is_stmt 1 view .LVU4008 4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11392 .loc 1 4768 9 is_stmt 0 view .LVU4009 11393 0044 238D ldrh r3, [r4, #40] 4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11394 .loc 1 4768 19 view .LVU4010 11395 0046 013B subs r3, r3, #1 11396 0048 2385 strh r3, [r4, #40] @ movhi 4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11397 .loc 1 4769 5 is_stmt 1 view .LVU4011 4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11398 .loc 1 4769 9 is_stmt 0 view .LVU4012 11399 004a 638D ldrh r3, [r4, #42] 11400 004c 9BB2 uxth r3, r3 4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11401 .loc 1 4769 20 view .LVU4013 11402 004e 013B subs r3, r3, #1 11403 0050 9BB2 uxth r3, r3 11404 0052 6385 strh r3, [r4, #42] @ movhi 11405 .LVL773: 11406 .L715: 4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11407 .loc 1 4856 3 is_stmt 1 view .LVU4014 4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11408 .loc 1 4858 3 view .LVU4015 4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11409 .loc 1 4858 6 is_stmt 0 view .LVU4016 11410 0054 15F0200F tst r5, #32 11411 0058 03D0 beq .L725 4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11412 .loc 1 4858 61 discriminator 1 view .LVU4017 11413 005a 16F0200F tst r6, #32 11414 005e 40F08880 bne .L732 11415 .L725: 4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11416 .loc 1 4866 3 is_stmt 1 view .LVU4018 4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11417 .loc 1 4866 3 view .LVU4019 11418 0062 0020 movs r0, #0 11419 0064 84F84000 strb r0, [r4, #64] 4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11420 .loc 1 4866 3 view .LVU4020 4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11421 .loc 1 4868 3 view .LVU4021 4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11422 .loc 1 4869 1 is_stmt 0 view .LVU4022 ARM GAS /tmp/cczJHHnF.s page 387 11423 0068 02B0 add sp, sp, #8 11424 .cfi_remember_state 11425 .cfi_def_cfa_offset 16 11426 @ sp needed 11427 006a 70BD pop {r4, r5, r6, pc} 11428 .LVL774: 11429 .L731: 11430 .cfi_restore_state 4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11431 .loc 1 4746 5 is_stmt 1 view .LVU4023 11432 006c 0368 ldr r3, [r0] 11433 006e 1022 movs r2, #16 11434 .LVL775: 4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11435 .loc 1 4746 5 is_stmt 0 view .LVU4024 11436 0070 DA61 str r2, [r3, #28] 4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11437 .loc 1 4751 5 is_stmt 1 view .LVU4025 4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11438 .loc 1 4751 9 is_stmt 0 view .LVU4026 11439 0072 436C ldr r3, [r0, #68] 4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11440 .loc 1 4751 21 view .LVU4027 11441 0074 43F00403 orr r3, r3, #4 11442 0078 4364 str r3, [r0, #68] 4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11443 .loc 1 4754 5 is_stmt 1 view .LVU4028 11444 007a FFF7FEFF bl I2C_Flush_TXDR 11445 .LVL776: 4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11446 .loc 1 4754 5 is_stmt 0 view .LVU4029 11447 007e E9E7 b .L715 11448 .LVL777: 11449 .L716: 4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11450 .loc 1 4771 8 is_stmt 1 view .LVU4030 4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11451 .loc 1 4771 11 is_stmt 0 view .LVU4031 11452 0080 15F0020F tst r5, #2 11453 0084 12D0 beq .L717 4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11454 .loc 1 4771 65 discriminator 1 view .LVU4032 11455 0086 16F0020F tst r6, #2 11456 008a 0FD0 beq .L717 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11457 .loc 1 4775 5 is_stmt 1 view .LVU4033 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11458 .loc 1 4775 33 is_stmt 0 view .LVU4034 11459 008c 626A ldr r2, [r4, #36] 11460 .LVL778: 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11461 .loc 1 4775 9 view .LVU4035 11462 008e 2368 ldr r3, [r4] 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11463 .loc 1 4775 28 view .LVU4036 11464 0090 1278 ldrb r2, [r2] @ zero_extendqisi2 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 388 11465 .loc 1 4775 26 view .LVU4037 11466 0092 9A62 str r2, [r3, #40] 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11467 .loc 1 4778 5 is_stmt 1 view .LVU4038 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11468 .loc 1 4778 9 is_stmt 0 view .LVU4039 11469 0094 636A ldr r3, [r4, #36] 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11470 .loc 1 4778 19 view .LVU4040 11471 0096 0133 adds r3, r3, #1 11472 0098 6362 str r3, [r4, #36] 4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11473 .loc 1 4780 5 is_stmt 1 view .LVU4041 4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11474 .loc 1 4780 9 is_stmt 0 view .LVU4042 11475 009a 238D ldrh r3, [r4, #40] 4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11476 .loc 1 4780 19 view .LVU4043 11477 009c 013B subs r3, r3, #1 11478 009e 2385 strh r3, [r4, #40] @ movhi 4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11479 .loc 1 4781 5 is_stmt 1 view .LVU4044 4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11480 .loc 1 4781 9 is_stmt 0 view .LVU4045 11481 00a0 638D ldrh r3, [r4, #42] 11482 00a2 9BB2 uxth r3, r3 4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11483 .loc 1 4781 20 view .LVU4046 11484 00a4 013B subs r3, r3, #1 11485 00a6 9BB2 uxth r3, r3 11486 00a8 6385 strh r3, [r4, #42] @ movhi 11487 00aa D3E7 b .L715 11488 .LVL779: 11489 .L717: 4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11490 .loc 1 4783 8 is_stmt 1 view .LVU4047 4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11491 .loc 1 4783 11 is_stmt 0 view .LVU4048 11492 00ac 15F0800F tst r5, #128 11493 00b0 3FD0 beq .L718 4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11494 .loc 1 4783 64 discriminator 1 view .LVU4049 11495 00b2 16F0400F tst r6, #64 11496 00b6 3CD0 beq .L718 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11497 .loc 1 4786 5 is_stmt 1 view .LVU4050 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11498 .loc 1 4786 14 is_stmt 0 view .LVU4051 11499 00b8 638D ldrh r3, [r4, #42] 11500 00ba 9BB2 uxth r3, r3 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11501 .loc 1 4786 8 view .LVU4052 11502 00bc 5BB3 cbz r3, .L719 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11503 .loc 1 4786 41 discriminator 1 view .LVU4053 11504 00be 238D ldrh r3, [r4, #40] 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 389 11505 .loc 1 4786 33 discriminator 1 view .LVU4054 11506 00c0 4BBB cbnz r3, .L719 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11507 .loc 1 4788 7 is_stmt 1 view .LVU4055 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11508 .loc 1 4788 35 is_stmt 0 view .LVU4056 11509 00c2 2368 ldr r3, [r4] 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11510 .loc 1 4788 45 view .LVU4057 11511 00c4 5968 ldr r1, [r3, #4] 11512 .LVL780: 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11513 .loc 1 4788 18 view .LVU4058 11514 00c6 C1F30901 ubfx r1, r1, #0, #10 11515 .LVL781: 4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11516 .loc 1 4790 7 is_stmt 1 view .LVU4059 4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11517 .loc 1 4790 15 is_stmt 0 view .LVU4060 11518 00ca 638D ldrh r3, [r4, #42] 11519 00cc 9BB2 uxth r3, r3 4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11520 .loc 1 4790 10 view .LVU4061 11521 00ce FF2B cmp r3, #255 11522 00d0 0ED8 bhi .L733 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11523 .loc 1 4797 9 is_stmt 1 view .LVU4062 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11524 .loc 1 4797 30 is_stmt 0 view .LVU4063 11525 00d2 628D ldrh r2, [r4, #42] 11526 .LVL782: 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11527 .loc 1 4797 30 view .LVU4064 11528 00d4 92B2 uxth r2, r2 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 11529 .loc 1 4797 24 view .LVU4065 11530 00d6 2285 strh r2, [r4, #40] @ movhi 4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11531 .loc 1 4798 9 is_stmt 1 view .LVU4066 4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11532 .loc 1 4798 17 is_stmt 0 view .LVU4067 11533 00d8 E36A ldr r3, [r4, #44] 4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11534 .loc 1 4798 12 view .LVU4068 11535 00da 13F5803F cmn r3, #65536 11536 00de 11D0 beq .L721 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11537 .loc 1 4800 11 is_stmt 1 view .LVU4069 4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11538 .loc 1 4801 34 is_stmt 0 view .LVU4070 11539 00e0 E36A ldr r3, [r4, #44] 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11540 .loc 1 4800 11 view .LVU4071 11541 00e2 0020 movs r0, #0 11542 .LVL783: 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11543 .loc 1 4800 11 view .LVU4072 ARM GAS /tmp/cczJHHnF.s page 390 11544 00e4 0090 str r0, [sp] 11545 00e6 D2B2 uxtb r2, r2 11546 00e8 2046 mov r0, r4 11547 00ea FFF7FEFF bl I2C_TransferConfig 11548 .LVL784: 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 11549 .loc 1 4800 11 view .LVU4073 11550 00ee B1E7 b .L715 11551 .LVL785: 11552 .L733: 4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11553 .loc 1 4792 9 is_stmt 1 view .LVU4074 4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11554 .loc 1 4792 24 is_stmt 0 view .LVU4075 11555 00f0 FF22 movs r2, #255 11556 .LVL786: 4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 11557 .loc 1 4792 24 view .LVU4076 11558 00f2 2285 strh r2, [r4, #40] @ movhi 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11559 .loc 1 4793 9 is_stmt 1 view .LVU4077 11560 00f4 0023 movs r3, #0 11561 00f6 0093 str r3, [sp] 11562 00f8 4FF08073 mov r3, #16777216 11563 00fc 2046 mov r0, r4 11564 .LVL787: 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11565 .loc 1 4793 9 is_stmt 0 view .LVU4078 11566 00fe FFF7FEFF bl I2C_TransferConfig 11567 .LVL788: 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11568 .loc 1 4793 9 view .LVU4079 11569 0102 A7E7 b .L715 11570 .LVL789: 11571 .L721: 4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 11572 .loc 1 4805 11 is_stmt 1 view .LVU4080 11573 0104 0023 movs r3, #0 11574 0106 0093 str r3, [sp] 11575 0108 4FF00073 mov r3, #33554432 11576 010c D2B2 uxtb r2, r2 11577 010e 2046 mov r0, r4 11578 .LVL790: 4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 11579 .loc 1 4805 11 is_stmt 0 view .LVU4081 11580 0110 FFF7FEFF bl I2C_TransferConfig 11581 .LVL791: 4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 11582 .loc 1 4805 11 view .LVU4082 11583 0114 9EE7 b .L715 11584 .LVL792: 11585 .L719: 4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11586 .loc 1 4813 7 is_stmt 1 view .LVU4083 4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11587 .loc 1 4813 11 is_stmt 0 view .LVU4084 11588 0116 2368 ldr r3, [r4] ARM GAS /tmp/cczJHHnF.s page 391 11589 0118 5B68 ldr r3, [r3, #4] 4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11590 .loc 1 4813 10 view .LVU4085 11591 011a 13F0007F tst r3, #33554432 11592 011e 03D1 bne .L722 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11593 .loc 1 4816 9 is_stmt 1 view .LVU4086 11594 0120 2046 mov r0, r4 11595 .LVL793: 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11596 .loc 1 4816 9 is_stmt 0 view .LVU4087 11597 0122 FFF7FEFF bl I2C_ITMasterSeqCplt 11598 .LVL794: 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11599 .loc 1 4816 9 view .LVU4088 11600 0126 95E7 b .L715 11601 .LVL795: 11602 .L722: 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11603 .loc 1 4822 9 is_stmt 1 view .LVU4089 11604 0128 4021 movs r1, #64 11605 .LVL796: 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11606 .loc 1 4822 9 is_stmt 0 view .LVU4090 11607 012a 2046 mov r0, r4 11608 .LVL797: 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11609 .loc 1 4822 9 view .LVU4091 11610 012c FFF7FEFF bl I2C_ITError 11611 .LVL798: 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11612 .loc 1 4822 9 view .LVU4092 11613 0130 90E7 b .L715 11614 .LVL799: 11615 .L718: 4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11616 .loc 1 4826 8 is_stmt 1 view .LVU4093 4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11617 .loc 1 4826 11 is_stmt 0 view .LVU4094 11618 0132 15F0400F tst r5, #64 11619 0136 8DD0 beq .L715 4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 11620 .loc 1 4826 63 discriminator 1 view .LVU4095 11621 0138 16F0400F tst r6, #64 11622 013c 8AD0 beq .L715 4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11623 .loc 1 4829 5 is_stmt 1 view .LVU4096 4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11624 .loc 1 4829 13 is_stmt 0 view .LVU4097 11625 013e 638D ldrh r3, [r4, #42] 11626 0140 9BB2 uxth r3, r3 4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11627 .loc 1 4829 8 view .LVU4098 11628 0142 8BB9 cbnz r3, .L723 4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11629 .loc 1 4831 7 is_stmt 1 view .LVU4099 4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/cczJHHnF.s page 392 11630 .loc 1 4831 11 is_stmt 0 view .LVU4100 11631 0144 2368 ldr r3, [r4] 11632 0146 5A68 ldr r2, [r3, #4] 11633 .LVL800: 4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11634 .loc 1 4831 10 view .LVU4101 11635 0148 12F0007F tst r2, #33554432 11636 014c 82D1 bne .L715 4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11637 .loc 1 4834 9 is_stmt 1 view .LVU4102 4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11638 .loc 1 4834 17 is_stmt 0 view .LVU4103 11639 014e E26A ldr r2, [r4, #44] 4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11640 .loc 1 4834 12 view .LVU4104 11641 0150 12F5803F cmn r2, #65536 11642 0154 04D1 bne .L724 4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11643 .loc 1 4837 11 is_stmt 1 view .LVU4105 4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11644 .loc 1 4837 25 is_stmt 0 view .LVU4106 11645 0156 5A68 ldr r2, [r3, #4] 4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11646 .loc 1 4837 31 view .LVU4107 11647 0158 42F48042 orr r2, r2, #16384 11648 015c 5A60 str r2, [r3, #4] 11649 015e 79E7 b .L715 11650 .L724: 4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11651 .loc 1 4842 11 is_stmt 1 view .LVU4108 11652 0160 2046 mov r0, r4 11653 .LVL801: 4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11654 .loc 1 4842 11 is_stmt 0 view .LVU4109 11655 0162 FFF7FEFF bl I2C_ITMasterSeqCplt 11656 .LVL802: 4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11657 .loc 1 4842 11 view .LVU4110 11658 0166 75E7 b .L715 11659 .LVL803: 11660 .L723: 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11661 .loc 1 4850 7 is_stmt 1 view .LVU4111 11662 0168 4021 movs r1, #64 11663 .LVL804: 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11664 .loc 1 4850 7 is_stmt 0 view .LVU4112 11665 016a 2046 mov r0, r4 11666 .LVL805: 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11667 .loc 1 4850 7 view .LVU4113 11668 016c FFF7FEFF bl I2C_ITError 11669 .LVL806: 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11670 .loc 1 4850 7 view .LVU4114 11671 0170 70E7 b .L715 11672 .LVL807: ARM GAS /tmp/cczJHHnF.s page 393 11673 .L732: 4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11674 .loc 1 4862 5 is_stmt 1 view .LVU4115 11675 0172 2946 mov r1, r5 11676 0174 2046 mov r0, r4 11677 0176 FFF7FEFF bl I2C_ITMasterCplt 11678 .LVL808: 11679 017a 72E7 b .L725 11680 .LVL809: 11681 .L726: 11682 .cfi_def_cfa_offset 0 11683 .cfi_restore 4 11684 .cfi_restore 5 11685 .cfi_restore 6 11686 .cfi_restore 14 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11687 .loc 1 4740 3 is_stmt 0 view .LVU4116 11688 017c 0220 movs r0, #2 11689 .LVL810: 4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11690 .loc 1 4869 1 view .LVU4117 11691 017e 7047 bx lr 11692 .cfi_endproc 11693 .LFE179: 11695 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 11696 .align 1 11697 .syntax unified 11698 .thumb 11699 .thumb_func 11701 I2C_Slave_ISR_DMA: 11702 .LVL811: 11703 .LFB182: 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11704 .loc 1 5162 1 is_stmt 1 view -0 11705 .cfi_startproc 11706 @ args = 0, pretend = 0, frame = 0 11707 @ frame_needed = 0, uses_anonymous_args = 0 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11708 .loc 1 5162 1 is_stmt 0 view .LVU4119 11709 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11710 .cfi_def_cfa_offset 24 11711 .cfi_offset 3, -24 11712 .cfi_offset 4, -20 11713 .cfi_offset 5, -16 11714 .cfi_offset 6, -12 11715 .cfi_offset 7, -8 11716 .cfi_offset 14, -4 5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 11717 .loc 1 5163 3 is_stmt 1 view .LVU4120 5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 11718 .loc 1 5163 12 is_stmt 0 view .LVU4121 11719 0002 C76A ldr r7, [r0, #44] 11720 .LVL812: 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 11721 .loc 1 5164 3 is_stmt 1 view .LVU4122 5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11722 .loc 1 5165 3 view .LVU4123 ARM GAS /tmp/cczJHHnF.s page 394 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11723 .loc 1 5168 3 view .LVU4124 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11724 .loc 1 5168 3 view .LVU4125 11725 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 11726 0008 012B cmp r3, #1 11727 000a 00F08780 beq .L751 11728 000e 0446 mov r4, r0 11729 0010 0D46 mov r5, r1 11730 0012 1646 mov r6, r2 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11731 .loc 1 5168 3 discriminator 2 view .LVU4126 11732 0014 0123 movs r3, #1 11733 0016 80F84030 strb r3, [r0, #64] 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11734 .loc 1 5168 3 discriminator 2 view .LVU4127 5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11735 .loc 1 5171 3 discriminator 2 view .LVU4128 5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11736 .loc 1 5171 6 is_stmt 0 discriminator 2 view .LVU4129 11737 001a 11F0200F tst r1, #32 11738 001e 02D0 beq .L736 5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11739 .loc 1 5171 58 discriminator 1 view .LVU4130 11740 0020 12F0200F tst r2, #32 11741 0024 12D1 bne .L756 11742 .LVL813: 11743 .L736: 5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11744 .loc 1 5178 3 is_stmt 1 view .LVU4131 5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11745 .loc 1 5178 6 is_stmt 0 view .LVU4132 11746 0026 15F0100F tst r5, #16 11747 002a 68D0 beq .L737 5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11748 .loc 1 5178 55 discriminator 1 view .LVU4133 11749 002c 16F0100F tst r6, #16 11750 0030 65D0 beq .L737 5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 11751 .loc 1 5185 5 is_stmt 1 view .LVU4134 5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 11752 .loc 1 5185 8 is_stmt 0 view .LVU4135 11753 0032 16F4404F tst r6, #49152 11754 0036 5ED0 beq .L738 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11755 .loc 1 5189 7 is_stmt 1 view .LVU4136 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11756 .loc 1 5189 15 is_stmt 0 view .LVU4137 11757 0038 E36B ldr r3, [r4, #60] 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11758 .loc 1 5189 10 view .LVU4138 11759 003a 53B1 cbz r3, .L752 5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11760 .loc 1 5191 9 is_stmt 1 view .LVU4139 5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11761 .loc 1 5191 12 is_stmt 0 view .LVU4140 11762 003c 16F40042 ands r2, r6, #32768 ARM GAS /tmp/cczJHHnF.s page 395 11763 0040 08D0 beq .L739 5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11764 .loc 1 5193 11 is_stmt 1 view .LVU4141 5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11765 .loc 1 5193 15 is_stmt 0 view .LVU4142 11766 0042 1B68 ldr r3, [r3] 11767 0044 5B68 ldr r3, [r3, #4] 5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11768 .loc 1 5193 14 view .LVU4143 11769 0046 3BB3 cbz r3, .L753 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 11770 .loc 1 5164 12 view .LVU4144 11771 0048 0022 movs r2, #0 11772 004a 03E0 b .L739 11773 .LVL814: 11774 .L756: 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11775 .loc 1 5175 5 is_stmt 1 view .LVU4145 11776 004c FFF7FEFF bl I2C_ITSlaveCplt 11777 .LVL815: 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11778 .loc 1 5175 5 is_stmt 0 view .LVU4146 11779 0050 E9E7 b .L736 11780 .L752: 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 11781 .loc 1 5164 12 view .LVU4147 11782 0052 0022 movs r2, #0 11783 .L739: 11784 .LVL816: 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11785 .loc 1 5201 7 is_stmt 1 view .LVU4148 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11786 .loc 1 5201 15 is_stmt 0 view .LVU4149 11787 0054 A36B ldr r3, [r4, #56] 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11788 .loc 1 5201 10 view .LVU4150 11789 0056 2BB1 cbz r3, .L740 5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11790 .loc 1 5203 9 is_stmt 1 view .LVU4151 5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11791 .loc 1 5203 12 is_stmt 0 view .LVU4152 11792 0058 16F4804F tst r6, #16384 11793 005c 02D0 beq .L740 5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11794 .loc 1 5205 11 is_stmt 1 view .LVU4153 5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11795 .loc 1 5205 15 is_stmt 0 view .LVU4154 11796 005e 1B68 ldr r3, [r3] 11797 0060 5B68 ldr r3, [r3, #4] 5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11798 .loc 1 5205 14 view .LVU4155 11799 0062 DBB1 cbz r3, .L741 11800 .L740: 5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11801 .loc 1 5212 7 is_stmt 1 view .LVU4156 5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11802 .loc 1 5212 10 is_stmt 0 view .LVU4157 ARM GAS /tmp/cczJHHnF.s page 396 11803 0064 012A cmp r2, #1 11804 0066 19D0 beq .L741 5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11805 .loc 1 5243 9 is_stmt 1 view .LVU4158 11806 0068 2368 ldr r3, [r4] 11807 006a 1022 movs r2, #16 11808 .LVL817: 5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11809 .loc 1 5243 9 is_stmt 0 view .LVU4159 11810 006c DA61 str r2, [r3, #28] 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11811 .loc 1 5246 9 is_stmt 1 view .LVU4160 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11812 .loc 1 5246 13 is_stmt 0 view .LVU4161 11813 006e 636C ldr r3, [r4, #68] 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11814 .loc 1 5246 25 view .LVU4162 11815 0070 43F00403 orr r3, r3, #4 11816 0074 6364 str r3, [r4, #68] 5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11817 .loc 1 5249 9 is_stmt 1 view .LVU4163 5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11818 .loc 1 5249 18 is_stmt 0 view .LVU4164 11819 0076 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11820 007a DBB2 uxtb r3, r3 11821 .LVL818: 5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11822 .loc 1 5251 9 is_stmt 1 view .LVU4165 5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11823 .loc 1 5251 12 is_stmt 0 view .LVU4166 11824 007c 17B1 cbz r7, .L746 5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11825 .loc 1 5251 45 discriminator 1 view .LVU4167 11826 007e B7F1807F cmp r7, #16777216 11827 0082 42D1 bne .L744 11828 .L746: 5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11829 .loc 1 5253 11 is_stmt 1 view .LVU4168 11830 0084 213B subs r3, r3, #33 11831 .LVL819: 5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11832 .loc 1 5253 11 is_stmt 0 view .LVU4169 11833 0086 092B cmp r3, #9 11834 0088 2DD8 bhi .L747 11835 008a DFE803F0 tbb [pc, r3] 11836 .L749: 11837 008e 2A .byte (.L750-.L749)/2 11838 008f 31 .byte (.L748-.L749)/2 11839 0090 2C .byte (.L747-.L749)/2 11840 0091 2C .byte (.L747-.L749)/2 11841 0092 2C .byte (.L747-.L749)/2 11842 0093 2C .byte (.L747-.L749)/2 11843 0094 2C .byte (.L747-.L749)/2 11844 0095 2C .byte (.L747-.L749)/2 11845 0096 2A .byte (.L750-.L749)/2 11846 0097 31 .byte (.L748-.L749)/2 11847 .LVL820: ARM GAS /tmp/cczJHHnF.s page 397 11848 .p2align 1 11849 .L753: 5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11850 .loc 1 5195 26 view .LVU4170 11851 0098 0122 movs r2, #1 11852 009a DBE7 b .L739 11853 .LVL821: 11854 .L741: 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11855 .loc 1 5214 9 is_stmt 1 view .LVU4171 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11856 .loc 1 5214 18 is_stmt 0 view .LVU4172 11857 009c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11858 00a0 DBB2 uxtb r3, r3 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11859 .loc 1 5214 12 view .LVU4173 11860 00a2 282B cmp r3, #40 11861 00a4 08D0 beq .L757 11862 .L743: 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11863 .loc 1 5221 14 is_stmt 1 view .LVU4174 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11864 .loc 1 5221 23 is_stmt 0 view .LVU4175 11865 00a6 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11866 00aa DBB2 uxtb r3, r3 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11867 .loc 1 5221 17 view .LVU4176 11868 00ac 292B cmp r3, #41 11869 00ae 0BD0 beq .L758 11870 .L745: 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11871 .loc 1 5236 11 is_stmt 1 view .LVU4177 11872 00b0 2368 ldr r3, [r4] 11873 00b2 1022 movs r2, #16 11874 00b4 DA61 str r2, [r3, #28] 11875 00b6 28E0 b .L744 11876 .L757: 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11877 .loc 1 5214 51 is_stmt 0 discriminator 1 view .LVU4178 11878 00b8 B7F1007F cmp r7, #33554432 11879 00bc F3D1 bne .L743 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11880 .loc 1 5219 11 is_stmt 1 view .LVU4179 11881 00be 2946 mov r1, r5 11882 00c0 2046 mov r0, r4 11883 00c2 FFF7FEFF bl I2C_ITListenCplt 11884 .LVL822: 11885 00c6 20E0 b .L744 11886 .L758: 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11887 .loc 1 5221 64 is_stmt 0 discriminator 1 view .LVU4180 11888 00c8 17F5803F cmn r7, #65536 11889 00cc F0D0 beq .L745 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11890 .loc 1 5224 11 is_stmt 1 view .LVU4181 11891 00ce 2368 ldr r3, [r4] 11892 00d0 1022 movs r2, #16 ARM GAS /tmp/cczJHHnF.s page 398 11893 00d2 DA61 str r2, [r3, #28] 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11894 .loc 1 5227 11 view .LVU4182 11895 00d4 2046 mov r0, r4 11896 00d6 FFF7FEFF bl I2C_Flush_TXDR 11897 .LVL823: 5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11898 .loc 1 5231 11 view .LVU4183 11899 00da 2046 mov r0, r4 11900 00dc FFF7FEFF bl I2C_ITSlaveSeqCplt 11901 .LVL824: 11902 00e0 13E0 b .L744 11903 .LVL825: 11904 .L750: 5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11905 .loc 1 5255 13 view .LVU4184 5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11906 .loc 1 5255 33 is_stmt 0 view .LVU4185 11907 00e2 2123 movs r3, #33 11908 .LVL826: 5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11909 .loc 1 5255 33 view .LVU4186 11910 00e4 2363 str r3, [r4, #48] 11911 .L747: 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11912 .loc 1 5267 11 is_stmt 1 view .LVU4187 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11913 .loc 1 5267 33 is_stmt 0 view .LVU4188 11914 00e6 616C ldr r1, [r4, #68] 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11915 .loc 1 5267 11 view .LVU4189 11916 00e8 2046 mov r0, r4 11917 00ea FFF7FEFF bl I2C_ITError 11918 .LVL827: 11919 00ee 0CE0 b .L744 11920 .LVL828: 11921 .L748: 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11922 .loc 1 5259 13 is_stmt 1 view .LVU4190 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11923 .loc 1 5259 33 is_stmt 0 view .LVU4191 11924 00f0 2223 movs r3, #34 11925 .LVL829: 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11926 .loc 1 5259 33 view .LVU4192 11927 00f2 2363 str r3, [r4, #48] 11928 00f4 F7E7 b .L747 11929 .LVL830: 11930 .L738: 5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11931 .loc 1 5274 7 is_stmt 1 view .LVU4193 11932 00f6 2368 ldr r3, [r4] 11933 00f8 1022 movs r2, #16 11934 00fa DA61 str r2, [r3, #28] 11935 00fc 05E0 b .L744 11936 .L737: 5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) ARM GAS /tmp/cczJHHnF.s page 399 11937 .loc 1 5277 8 view .LVU4194 5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11938 .loc 1 5277 11 is_stmt 0 view .LVU4195 11939 00fe 15F0080F tst r5, #8 11940 0102 02D0 beq .L744 5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11941 .loc 1 5277 62 discriminator 1 view .LVU4196 11942 0104 16F0080F tst r6, #8 11943 0108 03D1 bne .L759 11944 .LVL831: 11945 .L744: 5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11946 .loc 1 5285 3 is_stmt 1 view .LVU4197 5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11947 .loc 1 5288 3 view .LVU4198 5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11948 .loc 1 5288 3 view .LVU4199 11949 010a 0020 movs r0, #0 11950 010c 84F84000 strb r0, [r4, #64] 5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11951 .loc 1 5288 3 view .LVU4200 5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11952 .loc 1 5290 3 view .LVU4201 11953 .LVL832: 11954 .L735: 5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11955 .loc 1 5291 1 is_stmt 0 view .LVU4202 11956 0110 F8BD pop {r3, r4, r5, r6, r7, pc} 11957 .LVL833: 11958 .L759: 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11959 .loc 1 5280 5 is_stmt 1 view .LVU4203 11960 0112 2946 mov r1, r5 11961 0114 2046 mov r0, r4 11962 0116 FFF7FEFF bl I2C_ITAddrCplt 11963 .LVL834: 11964 011a F6E7 b .L744 11965 .LVL835: 11966 .L751: 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11967 .loc 1 5168 3 is_stmt 0 view .LVU4204 11968 011c 0220 movs r0, #2 11969 .LVL836: 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11970 .loc 1 5168 3 view .LVU4205 11971 011e F7E7 b .L735 11972 .cfi_endproc 11973 .LFE182: 11975 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 11976 .align 1 11977 .syntax unified 11978 .thumb 11979 .thumb_func 11981 I2C_Master_ISR_DMA: 11982 .LVL837: 11983 .LFB181: 5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; ARM GAS /tmp/cczJHHnF.s page 400 11984 .loc 1 5022 1 is_stmt 1 view -0 11985 .cfi_startproc 11986 @ args = 0, pretend = 0, frame = 0 11987 @ frame_needed = 0, uses_anonymous_args = 0 5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 11988 .loc 1 5023 3 view .LVU4207 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11989 .loc 1 5024 3 view .LVU4208 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11990 .loc 1 5027 3 view .LVU4209 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11991 .loc 1 5027 3 view .LVU4210 11992 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 11993 0004 012B cmp r3, #1 11994 0006 00F09A80 beq .L773 5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 11995 .loc 1 5022 1 is_stmt 0 discriminator 2 view .LVU4211 11996 000a 10B5 push {r4, lr} 11997 .cfi_def_cfa_offset 8 11998 .cfi_offset 4, -8 11999 .cfi_offset 14, -4 12000 000c 82B0 sub sp, sp, #8 12001 .cfi_def_cfa_offset 16 12002 000e 0446 mov r4, r0 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12003 .loc 1 5027 3 is_stmt 1 discriminator 2 view .LVU4212 12004 0010 0123 movs r3, #1 12005 0012 80F84030 strb r3, [r0, #64] 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12006 .loc 1 5027 3 discriminator 2 view .LVU4213 5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12007 .loc 1 5029 3 discriminator 2 view .LVU4214 5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12008 .loc 1 5029 6 is_stmt 0 discriminator 2 view .LVU4215 12009 0016 11F0100F tst r1, #16 12010 001a 02D0 beq .L762 5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12011 .loc 1 5029 55 discriminator 1 view .LVU4216 12012 001c 12F0100F tst r2, #16 12013 0020 32D1 bne .L779 12014 .L762: 5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12015 .loc 1 5046 8 is_stmt 1 view .LVU4217 5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12016 .loc 1 5046 11 is_stmt 0 view .LVU4218 12017 0022 11F0800F tst r1, #128 12018 0026 60D0 beq .L764 5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12019 .loc 1 5046 61 discriminator 1 view .LVU4219 12020 0028 12F0400F tst r2, #64 12021 002c 5DD0 beq .L764 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12022 .loc 1 5050 5 is_stmt 1 view .LVU4220 12023 002e 2268 ldr r2, [r4] 12024 .LVL838: 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12025 .loc 1 5050 5 is_stmt 0 view .LVU4221 ARM GAS /tmp/cczJHHnF.s page 401 12026 0030 1368 ldr r3, [r2] 12027 0032 23F04003 bic r3, r3, #64 12028 0036 1360 str r3, [r2] 5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12029 .loc 1 5052 5 is_stmt 1 view .LVU4222 5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12030 .loc 1 5052 13 is_stmt 0 view .LVU4223 12031 0038 638D ldrh r3, [r4, #42] 12032 003a 9BB2 uxth r3, r3 5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12033 .loc 1 5052 8 view .LVU4224 12034 003c 002B cmp r3, #0 12035 003e 46D0 beq .L765 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12036 .loc 1 5055 7 is_stmt 1 view .LVU4225 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12037 .loc 1 5055 35 is_stmt 0 view .LVU4226 12038 0040 2368 ldr r3, [r4] 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12039 .loc 1 5055 45 view .LVU4227 12040 0042 5968 ldr r1, [r3, #4] 12041 .LVL839: 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12042 .loc 1 5055 18 view .LVU4228 12043 0044 C1F30901 ubfx r1, r1, #0, #10 12044 .LVL840: 5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12045 .loc 1 5058 7 is_stmt 1 view .LVU4229 5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12046 .loc 1 5058 15 is_stmt 0 view .LVU4230 12047 0048 638D ldrh r3, [r4, #42] 12048 004a 9BB2 uxth r3, r3 5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12049 .loc 1 5058 10 view .LVU4231 12050 004c FF2B cmp r3, #255 12051 004e 2DD9 bls .L766 5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12052 .loc 1 5060 9 is_stmt 1 view .LVU4232 5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12053 .loc 1 5060 24 is_stmt 0 view .LVU4233 12054 0050 FF23 movs r3, #255 12055 0052 2385 strh r3, [r4, #40] @ movhi 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12056 .loc 1 5061 9 is_stmt 1 view .LVU4234 12057 .LVL841: 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12058 .loc 1 5061 18 is_stmt 0 view .LVU4235 12059 0054 4FF08073 mov r3, #16777216 12060 .LVL842: 12061 .L767: 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12062 .loc 1 5077 7 is_stmt 1 view .LVU4236 12063 0058 0022 movs r2, #0 12064 005a 0092 str r2, [sp] 12065 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12066 0060 2046 mov r0, r4 12067 .LVL843: ARM GAS /tmp/cczJHHnF.s page 402 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12068 .loc 1 5077 7 is_stmt 0 view .LVU4237 12069 0062 FFF7FEFF bl I2C_TransferConfig 12070 .LVL844: 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12071 .loc 1 5080 7 is_stmt 1 view .LVU4238 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12072 .loc 1 5080 11 is_stmt 0 view .LVU4239 12073 0066 638D ldrh r3, [r4, #42] 12074 0068 9BB2 uxth r3, r3 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12075 .loc 1 5080 30 view .LVU4240 12076 006a 228D ldrh r2, [r4, #40] 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12077 .loc 1 5080 23 view .LVU4241 12078 006c 9B1A subs r3, r3, r2 12079 006e 9BB2 uxth r3, r3 12080 0070 6385 strh r3, [r4, #42] @ movhi 5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12081 .loc 1 5083 7 is_stmt 1 view .LVU4242 5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12082 .loc 1 5083 15 is_stmt 0 view .LVU4243 12083 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12084 0076 DBB2 uxtb r3, r3 5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12085 .loc 1 5083 10 view .LVU4244 12086 0078 222B cmp r3, #34 12087 007a 22D0 beq .L780 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12088 .loc 1 5089 9 is_stmt 1 view .LVU4245 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12089 .loc 1 5089 13 is_stmt 0 view .LVU4246 12090 007c 2268 ldr r2, [r4] 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12091 .loc 1 5089 23 view .LVU4247 12092 007e 1368 ldr r3, [r2] 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12093 .loc 1 5089 29 view .LVU4248 12094 0080 43F48043 orr r3, r3, #16384 12095 0084 1360 str r3, [r2] 12096 0086 0CE0 b .L763 12097 .LVL845: 12098 .L779: 5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12099 .loc 1 5033 5 is_stmt 1 view .LVU4249 12100 0088 0368 ldr r3, [r0] 12101 008a 1022 movs r2, #16 12102 .LVL846: 5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12103 .loc 1 5033 5 is_stmt 0 view .LVU4250 12104 008c DA61 str r2, [r3, #28] 5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12105 .loc 1 5036 5 is_stmt 1 view .LVU4251 5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12106 .loc 1 5036 9 is_stmt 0 view .LVU4252 12107 008e 436C ldr r3, [r0, #68] 5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/cczJHHnF.s page 403 12108 .loc 1 5036 21 view .LVU4253 12109 0090 43F00403 orr r3, r3, #4 12110 0094 4364 str r3, [r0, #68] 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12111 .loc 1 5041 5 is_stmt 1 view .LVU4254 12112 0096 2021 movs r1, #32 12113 .LVL847: 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12114 .loc 1 5041 5 is_stmt 0 view .LVU4255 12115 0098 FFF7FEFF bl I2C_Enable_IRQ 12116 .LVL848: 5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12117 .loc 1 5044 5 is_stmt 1 view .LVU4256 12118 009c 2046 mov r0, r4 12119 009e FFF7FEFF bl I2C_Flush_TXDR 12120 .LVL849: 12121 .L763: 5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12122 .loc 1 5144 3 view .LVU4257 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12123 .loc 1 5147 3 view .LVU4258 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12124 .loc 1 5147 3 view .LVU4259 12125 00a2 0020 movs r0, #0 12126 00a4 84F84000 strb r0, [r4, #64] 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12127 .loc 1 5147 3 view .LVU4260 5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12128 .loc 1 5149 3 view .LVU4261 5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12129 .loc 1 5150 1 is_stmt 0 view .LVU4262 12130 00a8 02B0 add sp, sp, #8 12131 .cfi_remember_state 12132 .cfi_def_cfa_offset 8 12133 @ sp needed 12134 00aa 10BD pop {r4, pc} 12135 .LVL850: 12136 .L766: 12137 .cfi_restore_state 5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12138 .loc 1 5065 9 is_stmt 1 view .LVU4263 5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12139 .loc 1 5065 30 is_stmt 0 view .LVU4264 12140 00ac 638D ldrh r3, [r4, #42] 5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12141 .loc 1 5065 24 view .LVU4265 12142 00ae 2385 strh r3, [r4, #40] @ movhi 5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12143 .loc 1 5066 9 is_stmt 1 view .LVU4266 5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12144 .loc 1 5066 17 is_stmt 0 view .LVU4267 12145 00b0 E36A ldr r3, [r4, #44] 5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12146 .loc 1 5066 12 view .LVU4268 12147 00b2 13F5803F cmn r3, #65536 12148 00b6 01D0 beq .L774 5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 404 12149 .loc 1 5068 11 is_stmt 1 view .LVU4269 5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12150 .loc 1 5068 20 is_stmt 0 view .LVU4270 12151 00b8 E36A ldr r3, [r4, #44] 12152 .LVL851: 5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12153 .loc 1 5068 20 view .LVU4271 12154 00ba CDE7 b .L767 12155 .LVL852: 12156 .L774: 5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12157 .loc 1 5072 20 view .LVU4272 12158 00bc 4FF00073 mov r3, #33554432 12159 00c0 CAE7 b .L767 12160 .LVL853: 12161 .L780: 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12162 .loc 1 5085 9 is_stmt 1 view .LVU4273 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12163 .loc 1 5085 13 is_stmt 0 view .LVU4274 12164 00c2 2268 ldr r2, [r4] 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12165 .loc 1 5085 23 view .LVU4275 12166 00c4 1368 ldr r3, [r2] 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12167 .loc 1 5085 29 view .LVU4276 12168 00c6 43F40043 orr r3, r3, #32768 12169 00ca 1360 str r3, [r2] 12170 00cc E9E7 b .L763 12171 .LVL854: 12172 .L765: 5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12173 .loc 1 5095 7 is_stmt 1 view .LVU4277 5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12174 .loc 1 5095 11 is_stmt 0 view .LVU4278 12175 00ce 2368 ldr r3, [r4] 12176 00d0 5B68 ldr r3, [r3, #4] 5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12177 .loc 1 5095 10 view .LVU4279 12178 00d2 13F0007F tst r3, #33554432 12179 00d6 03D1 bne .L769 5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12180 .loc 1 5098 9 is_stmt 1 view .LVU4280 12181 00d8 2046 mov r0, r4 12182 .LVL855: 5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12183 .loc 1 5098 9 is_stmt 0 view .LVU4281 12184 00da FFF7FEFF bl I2C_ITMasterSeqCplt 12185 .LVL856: 5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12186 .loc 1 5098 9 view .LVU4282 12187 00de E0E7 b .L763 12188 .LVL857: 12189 .L769: 5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12190 .loc 1 5104 9 is_stmt 1 view .LVU4283 12191 00e0 4021 movs r1, #64 ARM GAS /tmp/cczJHHnF.s page 405 12192 .LVL858: 5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12193 .loc 1 5104 9 is_stmt 0 view .LVU4284 12194 00e2 2046 mov r0, r4 12195 .LVL859: 5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12196 .loc 1 5104 9 view .LVU4285 12197 00e4 FFF7FEFF bl I2C_ITError 12198 .LVL860: 12199 00e8 DBE7 b .L763 12200 .LVL861: 12201 .L764: 5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12202 .loc 1 5108 8 is_stmt 1 view .LVU4286 5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12203 .loc 1 5108 11 is_stmt 0 view .LVU4287 12204 00ea 11F0400F tst r1, #64 12205 00ee 1CD0 beq .L770 5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12206 .loc 1 5108 60 discriminator 1 view .LVU4288 12207 00f0 12F0400F tst r2, #64 12208 00f4 19D0 beq .L770 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12209 .loc 1 5111 5 is_stmt 1 view .LVU4289 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12210 .loc 1 5111 13 is_stmt 0 view .LVU4290 12211 00f6 638D ldrh r3, [r4, #42] 12212 00f8 9BB2 uxth r3, r3 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12213 .loc 1 5111 8 view .LVU4291 12214 00fa 8BB9 cbnz r3, .L771 5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12215 .loc 1 5113 7 is_stmt 1 view .LVU4292 5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12216 .loc 1 5113 11 is_stmt 0 view .LVU4293 12217 00fc 2368 ldr r3, [r4] 12218 00fe 5A68 ldr r2, [r3, #4] 12219 .LVL862: 5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12220 .loc 1 5113 10 view .LVU4294 12221 0100 12F0007F tst r2, #33554432 12222 0104 CDD1 bne .L763 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12223 .loc 1 5116 9 is_stmt 1 view .LVU4295 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12224 .loc 1 5116 17 is_stmt 0 view .LVU4296 12225 0106 E26A ldr r2, [r4, #44] 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12226 .loc 1 5116 12 view .LVU4297 12227 0108 12F5803F cmn r2, #65536 12228 010c 04D1 bne .L772 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12229 .loc 1 5119 11 is_stmt 1 view .LVU4298 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12230 .loc 1 5119 25 is_stmt 0 view .LVU4299 12231 010e 5A68 ldr r2, [r3, #4] 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 406 12232 .loc 1 5119 31 view .LVU4300 12233 0110 42F48042 orr r2, r2, #16384 12234 0114 5A60 str r2, [r3, #4] 12235 0116 C4E7 b .L763 12236 .L772: 5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12237 .loc 1 5124 11 is_stmt 1 view .LVU4301 12238 0118 2046 mov r0, r4 12239 .LVL863: 5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12240 .loc 1 5124 11 is_stmt 0 view .LVU4302 12241 011a FFF7FEFF bl I2C_ITMasterSeqCplt 12242 .LVL864: 5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12243 .loc 1 5124 11 view .LVU4303 12244 011e C0E7 b .L763 12245 .LVL865: 12246 .L771: 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12247 .loc 1 5132 7 is_stmt 1 view .LVU4304 12248 0120 4021 movs r1, #64 12249 .LVL866: 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12250 .loc 1 5132 7 is_stmt 0 view .LVU4305 12251 0122 2046 mov r0, r4 12252 .LVL867: 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12253 .loc 1 5132 7 view .LVU4306 12254 0124 FFF7FEFF bl I2C_ITError 12255 .LVL868: 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12256 .loc 1 5132 7 view .LVU4307 12257 0128 BBE7 b .L763 12258 .LVL869: 12259 .L770: 5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12260 .loc 1 5135 8 is_stmt 1 view .LVU4308 5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12261 .loc 1 5135 11 is_stmt 0 view .LVU4309 12262 012a 11F0200F tst r1, #32 12263 012e B8D0 beq .L763 5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12264 .loc 1 5135 63 discriminator 1 view .LVU4310 12265 0130 12F0200F tst r2, #32 12266 0134 B5D0 beq .L763 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12267 .loc 1 5139 5 is_stmt 1 view .LVU4311 12268 0136 2046 mov r0, r4 12269 .LVL870: 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12270 .loc 1 5139 5 is_stmt 0 view .LVU4312 12271 0138 FFF7FEFF bl I2C_ITMasterCplt 12272 .LVL871: 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12273 .loc 1 5139 5 view .LVU4313 12274 013c B1E7 b .L763 12275 .LVL872: ARM GAS /tmp/cczJHHnF.s page 407 12276 .L773: 12277 .cfi_def_cfa_offset 0 12278 .cfi_restore 4 12279 .cfi_restore 14 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12280 .loc 1 5027 3 view .LVU4314 12281 013e 0220 movs r0, #2 12282 .LVL873: 5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12283 .loc 1 5150 1 view .LVU4315 12284 0140 7047 bx lr 12285 .cfi_endproc 12286 .LFE181: 12288 .section .text.I2C_DMAError,"ax",%progbits 12289 .align 1 12290 .syntax unified 12291 .thumb 12292 .thumb_func 12294 I2C_DMAError: 12295 .LVL874: 12296 .LFB198: 6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12297 .loc 1 6312 1 is_stmt 1 view -0 12298 .cfi_startproc 12299 @ args = 0, pretend = 0, frame = 0 12300 @ frame_needed = 0, uses_anonymous_args = 0 6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12301 .loc 1 6312 1 is_stmt 0 view .LVU4317 12302 0000 08B5 push {r3, lr} 12303 .cfi_def_cfa_offset 8 12304 .cfi_offset 3, -8 12305 .cfi_offset 14, -4 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12306 .loc 1 6314 3 is_stmt 1 view .LVU4318 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12307 .loc 1 6314 22 is_stmt 0 view .LVU4319 12308 0002 406A ldr r0, [r0, #36] 12309 .LVL875: 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12310 .loc 1 6317 3 is_stmt 1 view .LVU4320 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12311 .loc 1 6317 7 is_stmt 0 view .LVU4321 12312 0004 0268 ldr r2, [r0] 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12313 .loc 1 6317 17 view .LVU4322 12314 0006 5368 ldr r3, [r2, #4] 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12315 .loc 1 6317 23 view .LVU4323 12316 0008 43F40043 orr r3, r3, #32768 12317 000c 5360 str r3, [r2, #4] 6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12318 .loc 1 6320 3 is_stmt 1 view .LVU4324 12319 000e 1021 movs r1, #16 12320 0010 FFF7FEFF bl I2C_ITError 12321 .LVL876: 6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12322 .loc 1 6321 1 is_stmt 0 view .LVU4325 ARM GAS /tmp/cczJHHnF.s page 408 12323 0014 08BD pop {r3, pc} 12324 .cfi_endproc 12325 .LFE198: 12327 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 12328 .align 1 12329 .syntax unified 12330 .thumb 12331 .thumb_func 12333 I2C_DMAMasterTransmitCplt: 12334 .LVL877: 12335 .LFB194: 6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12336 .loc 1 6156 1 is_stmt 1 view -0 12337 .cfi_startproc 12338 @ args = 0, pretend = 0, frame = 0 12339 @ frame_needed = 0, uses_anonymous_args = 0 6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12340 .loc 1 6156 1 is_stmt 0 view .LVU4327 12341 0000 10B5 push {r4, lr} 12342 .cfi_def_cfa_offset 8 12343 .cfi_offset 4, -8 12344 .cfi_offset 14, -4 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12345 .loc 1 6158 3 is_stmt 1 view .LVU4328 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12346 .loc 1 6158 22 is_stmt 0 view .LVU4329 12347 0002 446A ldr r4, [r0, #36] 12348 .LVL878: 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12349 .loc 1 6161 3 is_stmt 1 view .LVU4330 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12350 .loc 1 6161 7 is_stmt 0 view .LVU4331 12351 0004 2268 ldr r2, [r4] 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12352 .loc 1 6161 17 view .LVU4332 12353 0006 1368 ldr r3, [r2] 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12354 .loc 1 6161 23 view .LVU4333 12355 0008 23F48043 bic r3, r3, #16384 12356 000c 1360 str r3, [r2] 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12357 .loc 1 6164 3 is_stmt 1 view .LVU4334 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12358 .loc 1 6164 11 is_stmt 0 view .LVU4335 12359 000e 638D ldrh r3, [r4, #42] 12360 0010 9BB2 uxth r3, r3 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12361 .loc 1 6164 6 view .LVU4336 12362 0012 ABB1 cbz r3, .L790 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12363 .loc 1 6173 5 is_stmt 1 view .LVU4337 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12364 .loc 1 6173 9 is_stmt 0 view .LVU4338 12365 0014 616A ldr r1, [r4, #36] 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12366 .loc 1 6173 27 view .LVU4339 12367 0016 238D ldrh r3, [r4, #40] ARM GAS /tmp/cczJHHnF.s page 409 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12368 .loc 1 6173 20 view .LVU4340 12369 0018 1944 add r1, r1, r3 12370 001a 6162 str r1, [r4, #36] 6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12371 .loc 1 6176 5 is_stmt 1 view .LVU4341 6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12372 .loc 1 6176 13 is_stmt 0 view .LVU4342 12373 001c 638D ldrh r3, [r4, #42] 12374 001e 9BB2 uxth r3, r3 6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12375 .loc 1 6176 8 view .LVU4343 12376 0020 FF2B cmp r3, #255 12377 0022 12D9 bls .L786 6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12378 .loc 1 6178 7 is_stmt 1 view .LVU4344 6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12379 .loc 1 6178 22 is_stmt 0 view .LVU4345 12380 0024 FF23 movs r3, #255 12381 0026 2385 strh r3, [r4, #40] @ movhi 12382 .L787: 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12383 .loc 1 6186 5 is_stmt 1 view .LVU4346 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12384 .loc 1 6186 81 is_stmt 0 view .LVU4347 12385 0028 2268 ldr r2, [r4] 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12386 .loc 1 6186 9 view .LVU4348 12387 002a 238D ldrh r3, [r4, #40] 12388 002c 2832 adds r2, r2, #40 12389 002e A06B ldr r0, [r4, #56] 12390 .LVL879: 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12391 .loc 1 6186 9 view .LVU4349 12392 0030 FFF7FEFF bl HAL_DMA_Start_IT 12393 .LVL880: 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12394 .loc 1 6186 8 view .LVU4350 12395 0034 60B1 cbz r0, .L788 6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12396 .loc 1 6190 7 is_stmt 1 view .LVU4351 12397 0036 1021 movs r1, #16 12398 0038 2046 mov r0, r4 12399 003a FFF7FEFF bl I2C_ITError 12400 .LVL881: 12401 .L783: 6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12402 .loc 1 6198 1 is_stmt 0 view .LVU4352 12403 003e 10BD pop {r4, pc} 12404 .LVL882: 12405 .L790: 6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12406 .loc 1 6167 5 is_stmt 1 view .LVU4353 12407 0040 2021 movs r1, #32 12408 0042 2046 mov r0, r4 12409 .LVL883: 6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/cczJHHnF.s page 410 12410 .loc 1 6167 5 is_stmt 0 view .LVU4354 12411 0044 FFF7FEFF bl I2C_Enable_IRQ 12412 .LVL884: 12413 0048 F9E7 b .L783 12414 .LVL885: 12415 .L786: 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12416 .loc 1 6182 7 is_stmt 1 view .LVU4355 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12417 .loc 1 6182 28 is_stmt 0 view .LVU4356 12418 004a 638D ldrh r3, [r4, #42] 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12419 .loc 1 6182 22 view .LVU4357 12420 004c 2385 strh r3, [r4, #40] @ movhi 12421 004e EBE7 b .L787 12422 .LVL886: 12423 .L788: 6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12424 .loc 1 6195 7 is_stmt 1 view .LVU4358 12425 0050 4021 movs r1, #64 12426 0052 2046 mov r0, r4 12427 0054 FFF7FEFF bl I2C_Enable_IRQ 12428 .LVL887: 6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12429 .loc 1 6198 1 is_stmt 0 view .LVU4359 12430 0058 F1E7 b .L783 12431 .cfi_endproc 12432 .LFE194: 12434 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 12435 .align 1 12436 .syntax unified 12437 .thumb 12438 .thumb_func 12440 I2C_DMAMasterReceiveCplt: 12441 .LVL888: 12442 .LFB196: 6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12443 .loc 1 6234 1 is_stmt 1 view -0 12444 .cfi_startproc 12445 @ args = 0, pretend = 0, frame = 0 12446 @ frame_needed = 0, uses_anonymous_args = 0 6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12447 .loc 1 6234 1 is_stmt 0 view .LVU4361 12448 0000 10B5 push {r4, lr} 12449 .cfi_def_cfa_offset 8 12450 .cfi_offset 4, -8 12451 .cfi_offset 14, -4 6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12452 .loc 1 6236 3 is_stmt 1 view .LVU4362 6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12453 .loc 1 6236 22 is_stmt 0 view .LVU4363 12454 0002 446A ldr r4, [r0, #36] 12455 .LVL889: 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12456 .loc 1 6239 3 is_stmt 1 view .LVU4364 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12457 .loc 1 6239 7 is_stmt 0 view .LVU4365 ARM GAS /tmp/cczJHHnF.s page 411 12458 0004 2268 ldr r2, [r4] 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12459 .loc 1 6239 17 view .LVU4366 12460 0006 1368 ldr r3, [r2] 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12461 .loc 1 6239 23 view .LVU4367 12462 0008 23F40043 bic r3, r3, #32768 12463 000c 1360 str r3, [r2] 6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12464 .loc 1 6242 3 is_stmt 1 view .LVU4368 6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12465 .loc 1 6242 11 is_stmt 0 view .LVU4369 12466 000e 638D ldrh r3, [r4, #42] 12467 0010 9BB2 uxth r3, r3 6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12468 .loc 1 6242 6 view .LVU4370 12469 0012 ABB1 cbz r3, .L798 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12470 .loc 1 6251 5 is_stmt 1 view .LVU4371 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12471 .loc 1 6251 9 is_stmt 0 view .LVU4372 12472 0014 626A ldr r2, [r4, #36] 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12473 .loc 1 6251 27 view .LVU4373 12474 0016 238D ldrh r3, [r4, #40] 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12475 .loc 1 6251 20 view .LVU4374 12476 0018 1A44 add r2, r2, r3 12477 001a 6262 str r2, [r4, #36] 6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12478 .loc 1 6254 5 is_stmt 1 view .LVU4375 6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12479 .loc 1 6254 13 is_stmt 0 view .LVU4376 12480 001c 638D ldrh r3, [r4, #42] 12481 001e 9BB2 uxth r3, r3 6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12482 .loc 1 6254 8 view .LVU4377 12483 0020 FF2B cmp r3, #255 12484 0022 12D9 bls .L794 6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12485 .loc 1 6256 7 is_stmt 1 view .LVU4378 6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12486 .loc 1 6256 22 is_stmt 0 view .LVU4379 12487 0024 FF23 movs r3, #255 12488 0026 2385 strh r3, [r4, #40] @ movhi 12489 .L795: 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12490 .loc 1 6264 5 is_stmt 1 view .LVU4380 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12491 .loc 1 6264 55 is_stmt 0 view .LVU4381 12492 0028 2168 ldr r1, [r4] 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12493 .loc 1 6264 9 view .LVU4382 12494 002a 238D ldrh r3, [r4, #40] 12495 002c 2431 adds r1, r1, #36 12496 002e E06B ldr r0, [r4, #60] 12497 .LVL890: ARM GAS /tmp/cczJHHnF.s page 412 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12498 .loc 1 6264 9 view .LVU4383 12499 0030 FFF7FEFF bl HAL_DMA_Start_IT 12500 .LVL891: 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 12501 .loc 1 6264 8 view .LVU4384 12502 0034 60B1 cbz r0, .L796 6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12503 .loc 1 6268 7 is_stmt 1 view .LVU4385 12504 0036 1021 movs r1, #16 12505 0038 2046 mov r0, r4 12506 003a FFF7FEFF bl I2C_ITError 12507 .LVL892: 12508 .L791: 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12509 .loc 1 6276 1 is_stmt 0 view .LVU4386 12510 003e 10BD pop {r4, pc} 12511 .LVL893: 12512 .L798: 6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12513 .loc 1 6245 5 is_stmt 1 view .LVU4387 12514 0040 2021 movs r1, #32 12515 0042 2046 mov r0, r4 12516 .LVL894: 6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12517 .loc 1 6245 5 is_stmt 0 view .LVU4388 12518 0044 FFF7FEFF bl I2C_Enable_IRQ 12519 .LVL895: 12520 0048 F9E7 b .L791 12521 .LVL896: 12522 .L794: 6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12523 .loc 1 6260 7 is_stmt 1 view .LVU4389 6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12524 .loc 1 6260 28 is_stmt 0 view .LVU4390 12525 004a 638D ldrh r3, [r4, #42] 6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12526 .loc 1 6260 22 view .LVU4391 12527 004c 2385 strh r3, [r4, #40] @ movhi 12528 004e EBE7 b .L795 12529 .LVL897: 12530 .L796: 6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12531 .loc 1 6273 7 is_stmt 1 view .LVU4392 12532 0050 4021 movs r1, #64 12533 0052 2046 mov r0, r4 12534 0054 FFF7FEFF bl I2C_Enable_IRQ 12535 .LVL898: 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12536 .loc 1 6276 1 is_stmt 0 view .LVU4393 12537 0058 F1E7 b .L791 12538 .cfi_endproc 12539 .LFE196: 12541 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 12542 .align 1 12543 .global HAL_I2C_ER_IRQHandler 12544 .syntax unified ARM GAS /tmp/cczJHHnF.s page 413 12545 .thumb 12546 .thumb_func 12548 HAL_I2C_ER_IRQHandler: 12549 .LVL899: 12550 .LFB165: 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 12551 .loc 1 4452 1 is_stmt 1 view -0 12552 .cfi_startproc 12553 @ args = 0, pretend = 0, frame = 0 12554 @ frame_needed = 0, uses_anonymous_args = 0 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 12555 .loc 1 4452 1 is_stmt 0 view .LVU4395 12556 0000 10B5 push {r4, lr} 12557 .cfi_def_cfa_offset 8 12558 .cfi_offset 4, -8 12559 .cfi_offset 14, -4 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 12560 .loc 1 4453 3 is_stmt 1 view .LVU4396 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 12561 .loc 1 4453 24 is_stmt 0 view .LVU4397 12562 0002 0268 ldr r2, [r0] 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 12563 .loc 1 4453 12 view .LVU4398 12564 0004 9369 ldr r3, [r2, #24] 12565 .LVL900: 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 12566 .loc 1 4454 3 is_stmt 1 view .LVU4399 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 12567 .loc 1 4454 12 is_stmt 0 view .LVU4400 12568 0006 1168 ldr r1, [r2] 12569 .LVL901: 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12570 .loc 1 4455 3 is_stmt 1 view .LVU4401 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12571 .loc 1 4458 3 view .LVU4402 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12572 .loc 1 4458 6 is_stmt 0 view .LVU4403 12573 0008 13F4807F tst r3, #256 12574 000c 09D0 beq .L800 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12575 .loc 1 4458 57 discriminator 1 view .LVU4404 12576 000e 11F0800F tst r1, #128 12577 0012 06D0 beq .L800 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12578 .loc 1 4461 5 is_stmt 1 view .LVU4405 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12579 .loc 1 4461 9 is_stmt 0 view .LVU4406 12580 0014 446C ldr r4, [r0, #68] 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12581 .loc 1 4461 21 view .LVU4407 12582 0016 44F00104 orr r4, r4, #1 12583 001a 4464 str r4, [r0, #68] 4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12584 .loc 1 4464 5 is_stmt 1 view .LVU4408 12585 001c 4FF48074 mov r4, #256 12586 0020 D461 str r4, [r2, #28] 12587 .L800: ARM GAS /tmp/cczJHHnF.s page 414 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12588 .loc 1 4468 3 view .LVU4409 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12589 .loc 1 4468 6 is_stmt 0 view .LVU4410 12590 0022 13F4806F tst r3, #1024 12591 0026 0AD0 beq .L801 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12592 .loc 1 4468 56 discriminator 1 view .LVU4411 12593 0028 11F0800F tst r1, #128 12594 002c 07D0 beq .L801 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12595 .loc 1 4471 5 is_stmt 1 view .LVU4412 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12596 .loc 1 4471 9 is_stmt 0 view .LVU4413 12597 002e 426C ldr r2, [r0, #68] 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12598 .loc 1 4471 21 view .LVU4414 12599 0030 42F00802 orr r2, r2, #8 12600 0034 4264 str r2, [r0, #68] 4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12601 .loc 1 4474 5 is_stmt 1 view .LVU4415 12602 0036 0268 ldr r2, [r0] 12603 0038 4FF48064 mov r4, #1024 12604 003c D461 str r4, [r2, #28] 12605 .L801: 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12606 .loc 1 4478 3 view .LVU4416 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12607 .loc 1 4478 6 is_stmt 0 view .LVU4417 12608 003e 13F4007F tst r3, #512 12609 0042 0AD0 beq .L802 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 12610 .loc 1 4478 57 discriminator 1 view .LVU4418 12611 0044 11F0800F tst r1, #128 12612 0048 07D0 beq .L802 4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12613 .loc 1 4481 5 is_stmt 1 view .LVU4419 4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12614 .loc 1 4481 9 is_stmt 0 view .LVU4420 12615 004a 436C ldr r3, [r0, #68] 12616 .LVL902: 4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12617 .loc 1 4481 21 view .LVU4421 12618 004c 43F00203 orr r3, r3, #2 12619 0050 4364 str r3, [r0, #68] 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12620 .loc 1 4484 5 is_stmt 1 view .LVU4422 12621 0052 0368 ldr r3, [r0] 12622 0054 4FF40072 mov r2, #512 12623 0058 DA61 str r2, [r3, #28] 12624 .L802: 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12625 .loc 1 4488 3 view .LVU4423 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12626 .loc 1 4488 12 is_stmt 0 view .LVU4424 12627 005a 416C ldr r1, [r0, #68] 12628 .LVL903: ARM GAS /tmp/cczJHHnF.s page 415 4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12629 .loc 1 4491 3 is_stmt 1 view .LVU4425 4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12630 .loc 1 4491 6 is_stmt 0 view .LVU4426 12631 005c 11F00B0F tst r1, #11 12632 0060 00D1 bne .L805 12633 .LVL904: 12634 .L799: 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12635 .loc 1 4495 1 view .LVU4427 12636 0062 10BD pop {r4, pc} 12637 .LVL905: 12638 .L805: 4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12639 .loc 1 4493 5 is_stmt 1 view .LVU4428 12640 0064 FFF7FEFF bl I2C_ITError 12641 .LVL906: 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12642 .loc 1 4495 1 is_stmt 0 view .LVU4429 12643 0068 FBE7 b .L799 12644 .cfi_endproc 12645 .LFE165: 12647 .section .text.I2C_DMAAbort,"ax",%progbits 12648 .align 1 12649 .syntax unified 12650 .thumb 12651 .thumb_func 12653 I2C_DMAAbort: 12654 .LVL907: 12655 .LFB199: 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12656 .loc 1 6330 1 is_stmt 1 view -0 12657 .cfi_startproc 12658 @ args = 0, pretend = 0, frame = 0 12659 @ frame_needed = 0, uses_anonymous_args = 0 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 12660 .loc 1 6330 1 is_stmt 0 view .LVU4431 12661 0000 08B5 push {r3, lr} 12662 .cfi_def_cfa_offset 8 12663 .cfi_offset 3, -8 12664 .cfi_offset 14, -4 6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12665 .loc 1 6332 3 is_stmt 1 view .LVU4432 6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12666 .loc 1 6332 22 is_stmt 0 view .LVU4433 12667 0002 406A ldr r0, [r0, #36] 12668 .LVL908: 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12669 .loc 1 6335 3 is_stmt 1 view .LVU4434 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12670 .loc 1 6335 11 is_stmt 0 view .LVU4435 12671 0004 836B ldr r3, [r0, #56] 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12672 .loc 1 6335 6 view .LVU4436 12673 0006 0BB1 cbz r3, .L807 6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12674 .loc 1 6337 5 is_stmt 1 view .LVU4437 ARM GAS /tmp/cczJHHnF.s page 416 6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12675 .loc 1 6337 37 is_stmt 0 view .LVU4438 12676 0008 0022 movs r2, #0 12677 000a 5A63 str r2, [r3, #52] 12678 .L807: 6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12679 .loc 1 6339 3 is_stmt 1 view .LVU4439 6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12680 .loc 1 6339 11 is_stmt 0 view .LVU4440 12681 000c C36B ldr r3, [r0, #60] 6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12682 .loc 1 6339 6 view .LVU4441 12683 000e 0BB1 cbz r3, .L808 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12684 .loc 1 6341 5 is_stmt 1 view .LVU4442 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12685 .loc 1 6341 37 is_stmt 0 view .LVU4443 12686 0010 0022 movs r2, #0 12687 0012 5A63 str r2, [r3, #52] 12688 .L808: 6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12689 .loc 1 6344 3 is_stmt 1 view .LVU4444 12690 0014 FFF7FEFF bl I2C_TreatErrorCallback 12691 .LVL909: 6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12692 .loc 1 6345 1 is_stmt 0 view .LVU4445 12693 0018 08BD pop {r3, pc} 12694 .cfi_endproc 12695 .LFE199: 12697 .section .text.HAL_I2C_GetState,"ax",%progbits 12698 .align 1 12699 .global HAL_I2C_GetState 12700 .syntax unified 12701 .thumb 12702 .thumb_func 12704 HAL_I2C_GetState: 12705 .LVL910: 12706 .LFB176: 4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */ 12707 .loc 1 4686 1 is_stmt 1 view -0 12708 .cfi_startproc 12709 @ args = 0, pretend = 0, frame = 0 12710 @ frame_needed = 0, uses_anonymous_args = 0 12711 @ link register save eliminated. 4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12712 .loc 1 4688 3 view .LVU4447 4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12713 .loc 1 4688 14 is_stmt 0 view .LVU4448 12714 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 12715 .LVL911: 4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12716 .loc 1 4689 1 view .LVU4449 12717 0004 7047 bx lr 12718 .cfi_endproc 12719 .LFE176: 12721 .section .text.HAL_I2C_GetMode,"ax",%progbits 12722 .align 1 ARM GAS /tmp/cczJHHnF.s page 417 12723 .global HAL_I2C_GetMode 12724 .syntax unified 12725 .thumb 12726 .thumb_func 12728 HAL_I2C_GetMode: 12729 .LVL912: 12730 .LFB177: 4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode; 12731 .loc 1 4698 1 is_stmt 1 view -0 12732 .cfi_startproc 12733 @ args = 0, pretend = 0, frame = 0 12734 @ frame_needed = 0, uses_anonymous_args = 0 12735 @ link register save eliminated. 4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12736 .loc 1 4699 3 view .LVU4451 4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12737 .loc 1 4699 14 is_stmt 0 view .LVU4452 12738 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 12739 .LVL913: 4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12740 .loc 1 4700 1 view .LVU4453 12741 0004 7047 bx lr 12742 .cfi_endproc 12743 .LFE177: 12745 .section .text.HAL_I2C_GetError,"ax",%progbits 12746 .align 1 12747 .global HAL_I2C_GetError 12748 .syntax unified 12749 .thumb 12750 .thumb_func 12752 HAL_I2C_GetError: 12753 .LVL914: 12754 .LFB178: 4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode; 12755 .loc 1 4709 1 is_stmt 1 view -0 12756 .cfi_startproc 12757 @ args = 0, pretend = 0, frame = 0 12758 @ frame_needed = 0, uses_anonymous_args = 0 12759 @ link register save eliminated. 4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12760 .loc 1 4710 3 view .LVU4455 4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12761 .loc 1 4710 14 is_stmt 0 view .LVU4456 12762 0000 406C ldr r0, [r0, #68] 12763 .LVL915: 4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12764 .loc 1 4711 1 view .LVU4457 12765 0002 7047 bx lr 12766 .cfi_endproc 12767 .LFE178: 12769 .text 12770 .Letext0: 12771 .file 2 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non 12772 .file 3 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non 12773 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 12774 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 12775 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" ARM GAS /tmp/cczJHHnF.s page 418 12776 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 12777 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h" 12778 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS /tmp/cczJHHnF.s page 419 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f3xx_hal_i2c.c /tmp/cczJHHnF.s:21 .text.I2C_Flush_TXDR:0000000000000000 $t /tmp/cczJHHnF.s:26 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR /tmp/cczJHHnF.s:64 .text.I2C_TransferConfig:0000000000000000 $t /tmp/cczJHHnF.s:69 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig /tmp/cczJHHnF.s:118 .text.I2C_Enable_IRQ:0000000000000000 $t /tmp/cczJHHnF.s:123 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ /tmp/cczJHHnF.s:246 .text.I2C_Enable_IRQ:000000000000006c $d /tmp/cczJHHnF.s:11981 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA /tmp/cczJHHnF.s:11701 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA /tmp/cczJHHnF.s:252 .text.I2C_Disable_IRQ:0000000000000000 $t /tmp/cczJHHnF.s:257 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ /tmp/cczJHHnF.s:381 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t /tmp/cczJHHnF.s:386 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions /tmp/cczJHHnF.s:427 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t /tmp/cczJHHnF.s:432 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed /tmp/cczJHHnF.s:574 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t /tmp/cczJHHnF.s:579 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/cczJHHnF.s:669 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/cczJHHnF.s:674 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout /tmp/cczJHHnF.s:759 .text.I2C_RequestMemoryWrite:0000000000000000 $t /tmp/cczJHHnF.s:764 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite /tmp/cczJHHnF.s:879 .text.I2C_RequestMemoryWrite:0000000000000078 $d /tmp/cczJHHnF.s:884 .text.I2C_RequestMemoryRead:0000000000000000 $t /tmp/cczJHHnF.s:889 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead /tmp/cczJHHnF.s:1004 .text.I2C_RequestMemoryRead:0000000000000074 $d /tmp/cczJHHnF.s:1009 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t /tmp/cczJHHnF.s:1014 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/cczJHHnF.s:1100 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t /tmp/cczJHHnF.s:1105 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/cczJHHnF.s:1240 .text.HAL_I2C_MspInit:0000000000000000 $t /tmp/cczJHHnF.s:1246 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit /tmp/cczJHHnF.s:1261 .text.HAL_I2C_Init:0000000000000000 $t /tmp/cczJHHnF.s:1267 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init /tmp/cczJHHnF.s:1457 .text.HAL_I2C_MspDeInit:0000000000000000 $t /tmp/cczJHHnF.s:1463 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit /tmp/cczJHHnF.s:1478 .text.HAL_I2C_DeInit:0000000000000000 $t /tmp/cczJHHnF.s:1484 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit /tmp/cczJHHnF.s:1547 .text.HAL_I2C_Master_Transmit:0000000000000000 $t /tmp/cczJHHnF.s:1553 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit /tmp/cczJHHnF.s:1859 .text.HAL_I2C_Master_Transmit:0000000000000178 $d /tmp/cczJHHnF.s:1864 .text.HAL_I2C_Master_Receive:0000000000000000 $t /tmp/cczJHHnF.s:1870 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive /tmp/cczJHHnF.s:2175 .text.HAL_I2C_Master_Receive:0000000000000178 $d /tmp/cczJHHnF.s:2180 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t /tmp/cczJHHnF.s:2186 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit /tmp/cczJHHnF.s:2539 .text.HAL_I2C_Slave_Receive:0000000000000000 $t /tmp/cczJHHnF.s:2545 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive /tmp/cczJHHnF.s:2872 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t /tmp/cczJHHnF.s:2878 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT /tmp/cczJHHnF.s:3027 .text.HAL_I2C_Master_Transmit_IT:000000000000008c $d /tmp/cczJHHnF.s:11326 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT /tmp/cczJHHnF.s:3034 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t /tmp/cczJHHnF.s:3040 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT /tmp/cczJHHnF.s:3189 .text.HAL_I2C_Master_Receive_IT:000000000000008c $d /tmp/cczJHHnF.s:3196 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t ARM GAS /tmp/cczJHHnF.s page 420 /tmp/cczJHHnF.s:3202 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT /tmp/cczJHHnF.s:3304 .text.HAL_I2C_Slave_Transmit_IT:000000000000005c $d /tmp/cczJHHnF.s:10758 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT /tmp/cczJHHnF.s:3310 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t /tmp/cczJHHnF.s:3316 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT /tmp/cczJHHnF.s:3418 .text.HAL_I2C_Slave_Receive_IT:000000000000005c $d /tmp/cczJHHnF.s:3424 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t /tmp/cczJHHnF.s:3430 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA /tmp/cczJHHnF.s:3728 .text.HAL_I2C_Master_Transmit_DMA:000000000000013c $d /tmp/cczJHHnF.s:12333 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt /tmp/cczJHHnF.s:12294 .text.I2C_DMAError:0000000000000000 I2C_DMAError /tmp/cczJHHnF.s:3738 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t /tmp/cczJHHnF.s:3744 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA /tmp/cczJHHnF.s:4042 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d /tmp/cczJHHnF.s:12440 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt /tmp/cczJHHnF.s:4052 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t /tmp/cczJHHnF.s:4058 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA /tmp/cczJHHnF.s:4278 .text.HAL_I2C_Slave_Transmit_DMA:00000000000000e0 $d /tmp/cczJHHnF.s:9594 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt /tmp/cczJHHnF.s:4286 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t /tmp/cczJHHnF.s:4292 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA /tmp/cczJHHnF.s:4514 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d /tmp/cczJHHnF.s:9645 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt /tmp/cczJHHnF.s:4522 .text.HAL_I2C_Mem_Write:0000000000000000 $t /tmp/cczJHHnF.s:4528 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write /tmp/cczJHHnF.s:4882 .text.HAL_I2C_Mem_Read:0000000000000000 $t /tmp/cczJHHnF.s:4888 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read /tmp/cczJHHnF.s:5242 .text.HAL_I2C_Mem_Read:00000000000001ac $d /tmp/cczJHHnF.s:5247 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t /tmp/cczJHHnF.s:5253 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT /tmp/cczJHHnF.s:5458 .text.HAL_I2C_Mem_Write_IT:00000000000000dc $d /tmp/cczJHHnF.s:5464 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t /tmp/cczJHHnF.s:5470 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT /tmp/cczJHHnF.s:5676 .text.HAL_I2C_Mem_Read_IT:00000000000000dc $d /tmp/cczJHHnF.s:5683 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t /tmp/cczJHHnF.s:5689 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA /tmp/cczJHHnF.s:6003 .text.HAL_I2C_Mem_Write_DMA:000000000000015c $d /tmp/cczJHHnF.s:6011 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t /tmp/cczJHHnF.s:6017 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA /tmp/cczJHHnF.s:6332 .text.HAL_I2C_Mem_Read_DMA:000000000000015c $d /tmp/cczJHHnF.s:6341 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t /tmp/cczJHHnF.s:6347 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady /tmp/cczJHHnF.s:6676 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t /tmp/cczJHHnF.s:6682 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/cczJHHnF.s:6869 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000000000ac $d /tmp/cczJHHnF.s:6875 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t /tmp/cczJHHnF.s:6881 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/cczJHHnF.s:7210 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000160 $d /tmp/cczJHHnF.s:7219 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t /tmp/cczJHHnF.s:7225 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT /tmp/cczJHHnF.s:7412 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000ac $d /tmp/cczJHHnF.s:7418 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t /tmp/cczJHHnF.s:7424 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/cczJHHnF.s:7753 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000160 $d /tmp/cczJHHnF.s:7762 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t /tmp/cczJHHnF.s:7768 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/cczJHHnF.s:7968 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000d0 $d ARM GAS /tmp/cczJHHnF.s page 421 /tmp/cczJHHnF.s:12653 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort /tmp/cczJHHnF.s:7974 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t /tmp/cczJHHnF.s:7980 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/cczJHHnF.s:8358 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000194 $d /tmp/cczJHHnF.s:8366 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t /tmp/cczJHHnF.s:8372 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/cczJHHnF.s:8572 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000d0 $d /tmp/cczJHHnF.s:8578 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t /tmp/cczJHHnF.s:8584 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/cczJHHnF.s:8959 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000190 $d /tmp/cczJHHnF.s:8967 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t /tmp/cczJHHnF.s:8973 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT /tmp/cczJHHnF.s:9019 .text.HAL_I2C_EnableListen_IT:0000000000000028 $d /tmp/cczJHHnF.s:9024 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t /tmp/cczJHHnF.s:9030 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT /tmp/cczJHHnF.s:9095 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t /tmp/cczJHHnF.s:9101 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT /tmp/cczJHHnF.s:9236 .text.HAL_I2C_Master_Abort_IT:0000000000000080 $d /tmp/cczJHHnF.s:9241 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t /tmp/cczJHHnF.s:9247 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler /tmp/cczJHHnF.s:9284 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:9290 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback /tmp/cczJHHnF.s:9305 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:9311 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback /tmp/cczJHHnF.s:9326 .text.I2C_ITMasterSeqCplt:0000000000000000 $t /tmp/cczJHHnF.s:9331 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt /tmp/cczJHHnF.s:9415 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:9421 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback /tmp/cczJHHnF.s:9436 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:9442 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback /tmp/cczJHHnF.s:9457 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t /tmp/cczJHHnF.s:9462 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt /tmp/cczJHHnF.s:9589 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t /tmp/cczJHHnF.s:9640 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t /tmp/cczJHHnF.s:9700 .text.HAL_I2C_AddrCallback:0000000000000000 $t /tmp/cczJHHnF.s:9706 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback /tmp/cczJHHnF.s:9723 .text.I2C_ITAddrCplt:0000000000000000 $t /tmp/cczJHHnF.s:9728 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt /tmp/cczJHHnF.s:9887 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:9893 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback /tmp/cczJHHnF.s:9908 .text.I2C_ITListenCplt:0000000000000000 $t /tmp/cczJHHnF.s:9913 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt /tmp/cczJHHnF.s:10016 .text.I2C_ITListenCplt:0000000000000064 $d /tmp/cczJHHnF.s:10021 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:10027 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback /tmp/cczJHHnF.s:10042 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:10048 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback /tmp/cczJHHnF.s:10063 .text.HAL_I2C_ErrorCallback:0000000000000000 $t /tmp/cczJHHnF.s:10069 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback /tmp/cczJHHnF.s:10084 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t /tmp/cczJHHnF.s:10090 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback /tmp/cczJHHnF.s:10105 .text.I2C_TreatErrorCallback:0000000000000000 $t /tmp/cczJHHnF.s:10110 .text.I2C_TreatErrorCallback:0000000000000000 I2C_TreatErrorCallback /tmp/cczJHHnF.s:10166 .text.I2C_ITError:0000000000000000 $t /tmp/cczJHHnF.s:10171 .text.I2C_ITError:0000000000000000 I2C_ITError /tmp/cczJHHnF.s:10417 .text.I2C_ITError:00000000000000fc $d /tmp/cczJHHnF.s:10424 .text.I2C_ITSlaveCplt:0000000000000000 $t ARM GAS /tmp/cczJHHnF.s page 422 /tmp/cczJHHnF.s:10429 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt /tmp/cczJHHnF.s:10748 .text.I2C_ITSlaveCplt:0000000000000164 $d /tmp/cczJHHnF.s:10753 .text.I2C_Slave_ISR_IT:0000000000000000 $t /tmp/cczJHHnF.s:11048 .text.I2C_ITMasterCplt:0000000000000000 $t /tmp/cczJHHnF.s:11053 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt /tmp/cczJHHnF.s:11321 .text.I2C_Master_ISR_IT:0000000000000000 $t /tmp/cczJHHnF.s:11696 .text.I2C_Slave_ISR_DMA:0000000000000000 $t /tmp/cczJHHnF.s:11837 .text.I2C_Slave_ISR_DMA:000000000000008e $d /tmp/cczJHHnF.s:11848 .text.I2C_Slave_ISR_DMA:0000000000000098 $t /tmp/cczJHHnF.s:11976 .text.I2C_Master_ISR_DMA:0000000000000000 $t /tmp/cczJHHnF.s:12289 .text.I2C_DMAError:0000000000000000 $t /tmp/cczJHHnF.s:12328 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t /tmp/cczJHHnF.s:12435 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t /tmp/cczJHHnF.s:12542 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t /tmp/cczJHHnF.s:12548 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler /tmp/cczJHHnF.s:12648 .text.I2C_DMAAbort:0000000000000000 $t /tmp/cczJHHnF.s:12698 .text.HAL_I2C_GetState:0000000000000000 $t /tmp/cczJHHnF.s:12704 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState /tmp/cczJHHnF.s:12722 .text.HAL_I2C_GetMode:0000000000000000 $t /tmp/cczJHHnF.s:12728 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode /tmp/cczJHHnF.s:12746 .text.HAL_I2C_GetError:0000000000000000 $t /tmp/cczJHHnF.s:12752 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState