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

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

314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This software component is licensed by ST under BSD 3-Clause license, 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the "License"; You may not use this file except in compliance with the 317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * License. You may obtain a copy of the License at: ARM GAS /tmp/ccRVAHyi.s page 7 318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * opensource.org/licenses/BSD-3-Clause 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ****************************************************************************** 321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #include "stm32f0xx_hal.h" 325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup STM32F0xx_HAL_Driver 327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C I2C 331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C HAL module driver 332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U 356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ 360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ 361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Default Value */ 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ 371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ 374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ ARM GAS /tmp/ccRVAHyi.s page 8 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ 377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ 380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ 383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with 387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with 389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ 392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and NACK treatment */ 395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene 396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of 397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/ 405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); 422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); ARM GAS /tmp/ccRVAHyi.s page 9 432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to treat different error callback */ 463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to flush TXDR register */ 466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Request); 471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to Convert Specific options */ 473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialization and Configuration functions 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== ARM GAS /tmp/ccRVAHyi.s page 10 489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the selected configuration: 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Clock Timing 500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 1 501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Dual Addressing mode 503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2 Mask 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) General call mode 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Nostretch mode 507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** of the selected I2Cx peripheral. 510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim 512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL) 526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccRVAHyi.s page 11 546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the I2C Callback settings */ 547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); 599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 12 603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL) 636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccRVAHyi.s page 13 660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ 667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register a User I2C Callback 707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak predefined callback 708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID ARM GAS /tmp/ccRVAHyi.s page 14 717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL) 732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; 755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : ARM GAS /tmp/ccRVAHyi.s page 15 774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ 829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; ARM GAS /tmp/ccRVAHyi.s page 16 831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Unregister an I2C Callback 835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb 871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; ARM GAS /tmp/ccRVAHyi.s page 17 888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ ARM GAS /tmp/ccRVAHyi.s page 18 945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ 949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL) 966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ 989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 19 1002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 1005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 1014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 1017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 1018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ 1021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 1023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 1029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Data transfers functions 1033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 1034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim 1035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 1036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### IO operation functions ##### 1037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 1039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transfers. 1041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) There are two modes of transfer: 1043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The status of all data processing is returned by the same function 1045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** after finishing transfer. 1046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The end of the data processing will be indicated through the 1049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** using DMA mode. 1051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Blocking mode functions are : 1053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 1054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() ARM GAS /tmp/ccRVAHyi.s page 20 1059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim 1101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 1102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD ARM GAS /tmp/ccRVAHyi.s page 21 1116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 22 1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer ARM GAS /tmp/ccRVAHyi.s page 23 1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 24 1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 1324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** ARM GAS /tmp/ccRVAHyi.s page 25 1344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout) 1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; ARM GAS /tmp/ccRVAHyi.s page 26 1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Normal use case for Transmitter mode */ 1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */ 1445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */ 1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) ARM GAS /tmp/ccRVAHyi.s page 27 1458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout) 1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccRVAHyi.s page 28 1515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 1529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */ ARM GAS /tmp/ccRVAHyi.s page 29 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */ 1580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 1621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 30 1629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT 1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccRVAHyi.s page 31 1686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 1692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 32 1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** ARM GAS /tmp/ccRVAHyi.s page 33 1800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccRVAHyi.s page 34 1857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 1902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 1909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 1912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 1913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 35 1914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 1922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 1934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 1937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 1953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 1968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ ARM GAS /tmp/ccRVAHyi.s page 36 1971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 1998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 2008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; ARM GAS /tmp/ccRVAHyi.s page 37 2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 38 2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 39 2142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ ARM GAS /tmp/ccRVAHyi.s page 40 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) ARM GAS /tmp/ccRVAHyi.s page 41 2256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 42 2313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 2361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); ARM GAS /tmp/ccRVAHyi.s page 43 2370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do 2420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 44 2427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 2468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccRVAHyi.s page 45 2484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccRVAHyi.s page 46 2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do 2560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 2571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 2572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); ARM GAS /tmp/ccRVAHyi.s page 47 2598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 2642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) ARM GAS /tmp/ccRVAHyi.s page 48 2655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 2689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; ARM GAS /tmp/ccRVAHyi.s page 49 2712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 2736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 50 2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 2782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 2790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 51 2826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 2876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 52 2883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 2889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccRVAHyi.s page 53 2940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be read 2968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ ARM GAS /tmp/ccRVAHyi.s page 54 2997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 3022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 3041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccRVAHyi.s page 55 3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE 3063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This function is used with Memory devices 3105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Trials Number of trials 3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration ARM GAS /tmp/ccRVAHyi.s page 56 3111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout) 3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 3117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp1; 3121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp2; 3122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do 3137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Start */ 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); ARM GAS /tmp/ccRVAHyi.s page 57 3168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Device is ready */ 3184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 3200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ 3207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_Trials == Trials) 3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 3211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 3219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Trials */ 3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Trials++; 3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (I2C_Trials < Trials); ARM GAS /tmp/ccRVAHyi.s page 58 3225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 59 3282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccRVAHyi.s page 60 3339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; ARM GAS /tmp/ccRVAHyi.s page 61 3396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 3414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else ARM GAS /tmp/ccRVAHyi.s page 62 3453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 3473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 3485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 3500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ ARM GAS /tmp/ccRVAHyi.s page 63 3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ ARM GAS /tmp/ccRVAHyi.s page 64 3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) ARM GAS /tmp/ccRVAHyi.s page 65 3624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 3669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 66 3681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 3728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ ARM GAS /tmp/ccRVAHyi.s page 67 3738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 3740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 3788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 68 3795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ 3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 3826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 3828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 3829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 3839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 3840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during ARM GAS /tmp/ccRVAHyi.s page 69 3852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 3860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 3861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 3886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ 3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) ARM GAS /tmp/ccRVAHyi.s page 70 3909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 3911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 3913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 3920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 3922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 3923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 3926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 3948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 3953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 3962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else ARM GAS /tmp/ccRVAHyi.s page 71 3966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */ 3986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0; 3987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 4004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 4020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; ARM GAS /tmp/ccRVAHyi.s page 72 4023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 4036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 4037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 4042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 4044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 4065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 4079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) ARM GAS /tmp/ccRVAHyi.s page 73 4080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 4096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 4103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 4132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 4133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S ARM GAS /tmp/ccRVAHyi.s page 74 4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 4138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 75 4194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ 4199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 4210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 4232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 4239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 4245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 76 4251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */ 4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0; 4264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 4268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 4281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** ARM GAS /tmp/ccRVAHyi.s page 77 4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 4328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C 4335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmp; 4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 4359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. 4364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccRVAHyi.s page 78 4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 4391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong usage of abort function */ 4413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 79 4422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 4424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) 4433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 4442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 4456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear BERR flag */ 4464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear OVR flag */ 4474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ ARM GAS /tmp/ccRVAHyi.s page 80 4479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ARLO flag */ 4484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 81 4536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Address Match callback. 4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(TransferDirection); 4573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Listen Complete callback. 4582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file ARM GAS /tmp/ccRVAHyi.s page 82 4593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C error callback. 4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C abort callback. 4646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ ARM GAS /tmp/ccRVAHyi.s page 83 4650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 4667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim 4668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 4669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 4670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 4671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 4672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and the data flow. 4674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim 4676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 4677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C handle state. 4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL state 4684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) 4686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */ 4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->State; 4689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for I2C module 4695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL mode 4696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) 4698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode; 4700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C error code. 4704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval I2C Error Code ARM GAS /tmp/ccRVAHyi.s page 84 4707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) 4709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode; 4711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 4723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 4735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 4737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 4746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ 4749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 4754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; ARM GAS /tmp/ccRVAHyi.s page 85 4764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 4767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 4769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 4770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 4778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 4779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 4781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 4782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 4789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 4802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 4807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 4813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ ARM GAS /tmp/ccRVAHyi.s page 86 4821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 4827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 4835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 4856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 4859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ 4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 4863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/ccRVAHyi.s page 87 4878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 4881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 4883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */ 4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 4890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 4891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */ 4893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 4894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */ 4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 4901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0*/ 4902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */ 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 4906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 4907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 4910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 4911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 4913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 4915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 4918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 4921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 4927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 4933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 4934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); ARM GAS /tmp/ccRVAHyi.s page 88 4935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 4943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 4956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 4958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 4959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 4963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 4969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 4970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 4972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 4977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 4978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if all Data have already been sent */ 4979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 4981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 4987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 4990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else ARM GAS /tmp/ccRVAHyi.s page 89 4992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 4994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 4996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 4998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 5024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 5025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ 5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 90 5049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC interrupt */ 5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Recover Slave address */ 5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 5083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 91 5106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 5119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ 5139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 5162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 92 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */ 5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) 5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U; 5196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U) 5206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U; 5208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (treatdmanack == 1U) 5213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); ARM GAS /tmp/ccRVAHyi.s page 93 5220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpstate = hi2c->State; 5250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 5264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 94 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 5302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 5303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */ 5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 95 5334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 5355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 5357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 5358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */ 5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */ ARM GAS /tmp/ccRVAHyi.s page 96 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TC flag is set */ 5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; 5412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t slaveaddrcode; 5413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd1code; 5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd2code; 5415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(ITFlags); 5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount++; 5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Address Event counter */ 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 5440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ 5446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); ARM GAS /tmp/ccRVAHyi.s page 97 5448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ 5464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 5472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ 5481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Else clear address flag only */ 5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 5492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 5501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) ARM GAS /tmp/ccRVAHyi.s page 98 5505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ 5507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 5510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 5511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 5554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 5558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ ARM GAS /tmp/ccRVAHyi.s page 99 5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 5578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 5581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 5583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 5601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 100 5619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master complete process. 5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 5634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t tmpreg; 5636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 5654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 5660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 5664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set acknowledge error code */ 5669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Fetch Last receive data if any */ 5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ ARM GAS /tmp/ccRVAHyi.s page 101 5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 5678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 5684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 5685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 5688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 5693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 5708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 5710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 102 5733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 5734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 5743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 5745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave complete process. 5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 5781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) ARM GAS /tmp/ccRVAHyi.s page 103 5790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 5797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 5800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 5801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 5803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 5804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 5812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmatx); 5817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 5822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmarx); 5827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 5832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 5836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 5845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) ARM GAS /tmp/ccRVAHyi.s page 104 5847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 5854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 5864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 5870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 5878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 5892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ ARM GAS /tmp/ccRVAHyi.s page 105 5904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Listen complete process. 5929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 5936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 5938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 5943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 5944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 5950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 5952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 106 5961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all Interrupts*/ 5962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 5963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 5971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 5975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C interrupts error process. 5980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 5982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 5987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmppreviousstate; 5988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 5990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; 5993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set new error code */ 5995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts */ 6012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This change will be do later */ 6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 107 6018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 6022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ 6074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) ARM GAS /tmp/ccRVAHyi.s page 108 6075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. ARM GAS /tmp/ccRVAHyi.s page 109 6132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 27 .loc 1 6135 1 view -0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 32 .loc 1 6138 3 view .LVU1 33 .loc 1 6138 7 is_stmt 0 view .LVU2 34 0000 0368 ldr r3, [r0] 35 0002 9A69 ldr r2, [r3, #24] 36 .loc 1 6138 6 view .LVU3 37 0004 9207 lsls r2, r2, #30 38 0006 01D5 bpl .L2 6139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 39 .loc 1 6140 5 is_stmt 1 view .LVU4 40 .loc 1 6140 26 is_stmt 0 view .LVU5 41 0008 0022 movs r2, #0 42 000a 9A62 str r2, [r3, #40] 43 .L2: 6141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register if not empty */ 6144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 44 .loc 1 6144 3 is_stmt 1 view .LVU6 45 .loc 1 6144 7 is_stmt 0 view .LVU7 46 000c 0368 ldr r3, [r0] 47 000e 9A69 ldr r2, [r3, #24] 48 .loc 1 6144 6 view .LVU8 49 0010 D207 lsls r2, r2, #31 50 0012 03D4 bmi .L1 6145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 51 .loc 1 6146 5 is_stmt 1 view .LVU9 52 0014 9A69 ldr r2, [r3, #24] 53 0016 0121 movs r1, #1 54 0018 0A43 orrs r2, r1 55 001a 9A61 str r2, [r3, #24] 56 .L1: 6147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 57 .loc 1 6148 1 is_stmt 0 view .LVU10 58 @ sp needed 59 001c 7047 bx lr 60 .cfi_endproc 61 .LFE103: 63 .section .text.I2C_TransferConfig,"ax",%progbits 64 .align 1 65 .syntax unified 66 .code 16 67 .thumb_func ARM GAS /tmp/ccRVAHyi.s page 110 68 .fpu softvfp 70 I2C_TransferConfig: 71 .LVL1: 72 .LFB115: 6149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */ 6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */ 6173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 6187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 6195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. ARM GAS /tmp/ccRVAHyi.s page 111 6202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */ 6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */ 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else ARM GAS /tmp/ccRVAHyi.s page 112 6259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, 6265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 6273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) && \ 6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 113 6316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Acknowledge */ 6317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle. 6327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. 6349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET). 6353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 6361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccRVAHyi.s page 114 6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 6382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 6390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 6392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */ 6394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 6420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) ARM GAS /tmp/ccRVAHyi.s page 115 6430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */ 6432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 6455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 6463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 6465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a NACK is detected */ 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 6468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an RXNE is pending */ 6476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 6478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return HAL_OK */ 6480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 6481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 6486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); ARM GAS /tmp/ccRVAHyi.s page 116 6487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication. 6519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ 6526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* In case of Soft End condition, generate the STOP condition */ 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 6531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 6534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP Flag is reset */ 6536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 6537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 117 6544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACKF Flag */ 6557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 6560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 6563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 6582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 6584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 6585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 6586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 6587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 6588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 6589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 6590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 6591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 6592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 6593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 6594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 6595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 6596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 6597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 6600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Request) ARM GAS /tmp/ccRVAHyi.s page 118 6601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 73 .loc 1 6601 1 is_stmt 1 view -0 74 .cfi_startproc 75 @ args = 4, pretend = 0, frame = 0 76 @ frame_needed = 0, uses_anonymous_args = 0 77 .loc 1 6601 1 is_stmt 0 view .LVU12 78 0000 F0B5 push {r4, r5, r6, r7, lr} 79 .LCFI0: 80 .cfi_def_cfa_offset 20 81 .cfi_offset 4, -20 82 .cfi_offset 5, -16 83 .cfi_offset 6, -12 84 .cfi_offset 7, -8 85 .cfi_offset 14, -4 86 0002 059C ldr r4, [sp, #20] 6602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 87 .loc 1 6603 3 is_stmt 1 view .LVU13 6604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 88 .loc 1 6604 3 view .LVU14 6605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 89 .loc 1 6605 3 view .LVU15 6606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* update CR2 register */ 6608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, 90 .loc 1 6608 3 view .LVU16 91 0004 0568 ldr r5, [r0] 92 0006 6868 ldr r0, [r5, #4] 93 .LVL2: 94 .loc 1 6608 3 is_stmt 0 view .LVU17 95 0008 660D lsrs r6, r4, #21 96 000a 8027 movs r7, #128 97 000c FF00 lsls r7, r7, #3 98 000e 3740 ands r7, r6 99 0010 054E ldr r6, .L5 100 0012 3E43 orrs r6, r7 101 0014 B043 bics r0, r6 102 0016 8905 lsls r1, r1, #22 103 .LVL3: 104 .loc 1 6608 3 view .LVU18 105 0018 890D lsrs r1, r1, #22 106 001a 1204 lsls r2, r2, #16 107 .LVL4: 108 .loc 1 6608 3 view .LVU19 109 001c 1143 orrs r1, r2 110 001e 1943 orrs r1, r3 111 0020 2143 orrs r1, r4 112 0022 0143 orrs r1, r0 113 0024 6960 str r1, [r5, #4] 6609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 6610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 6611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), \ 6612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 6613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 6614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request)); 6615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 114 .loc 1 6615 1 view .LVU20 ARM GAS /tmp/ccRVAHyi.s page 119 115 @ sp needed 116 0026 F0BD pop {r4, r5, r6, r7, pc} 117 .L6: 118 .align 2 119 .L5: 120 0028 FF63FF03 .word 67068927 121 .cfi_endproc 122 .LFE115: 124 .section .text.I2C_Enable_IRQ,"ax",%progbits 125 .align 1 126 .syntax unified 127 .code 16 128 .thumb_func 129 .fpu softvfp 131 I2C_Enable_IRQ: 132 .LVL5: 133 .LFB116: 6616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 6619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 134 .loc 1 6625 1 is_stmt 1 view -0 135 .cfi_startproc 136 @ args = 0, pretend = 0, frame = 0 137 @ frame_needed = 0, uses_anonymous_args = 0 138 @ link register save eliminated. 6626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U; 139 .loc 1 6626 3 view .LVU22 6627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \ 140 .loc 1 6628 3 view .LVU23 141 .loc 1 6628 12 is_stmt 0 view .LVU24 142 0000 436B ldr r3, [r0, #52] 143 .loc 1 6628 6 view .LVU25 144 0002 194A ldr r2, .L22 145 0004 9342 cmp r3, r2 146 0006 13D0 beq .L8 147 .loc 1 6628 45 discriminator 1 view .LVU26 148 0008 184A ldr r2, .L22+4 149 000a 9342 cmp r3, r2 150 000c 10D0 beq .L8 6629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 6632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 6634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 6638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 120 6639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 6644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ 6646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 6647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 6650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 6652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 151 .loc 1 6657 5 is_stmt 1 view .LVU27 152 .loc 1 6657 49 is_stmt 0 view .LVU28 153 000e 0BB2 sxth r3, r1 154 .loc 1 6657 8 view .LVU29 155 0010 002B cmp r3, #0 156 0012 27DB blt .L18 6626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 157 .loc 1 6626 12 view .LVU30 158 0014 0023 movs r3, #0 159 .L14: 160 .LVL6: 6658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */ 6660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 161 .loc 1 6663 5 is_stmt 1 view .LVU31 162 .loc 1 6663 8 is_stmt 0 view .LVU32 163 0016 CA07 lsls r2, r1, #31 164 0018 01D5 bpl .L15 6664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 6666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 165 .loc 1 6666 7 is_stmt 1 view .LVU33 166 .loc 1 6666 14 is_stmt 0 view .LVU34 167 001a F222 movs r2, #242 168 001c 1343 orrs r3, r2 169 .LVL7: 170 .L15: 6667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 171 .loc 1 6669 5 is_stmt 1 view .LVU35 172 .loc 1 6669 8 is_stmt 0 view .LVU36 173 001e 8A07 lsls r2, r1, #30 174 0020 01D5 bpl .L16 6670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 121 6671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 6672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 175 .loc 1 6672 7 is_stmt 1 view .LVU37 176 .loc 1 6672 14 is_stmt 0 view .LVU38 177 0022 F422 movs r2, #244 178 0024 1343 orrs r3, r2 179 .LVL8: 180 .L16: 6673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 181 .loc 1 6675 5 is_stmt 1 view .LVU39 182 .loc 1 6675 8 is_stmt 0 view .LVU40 183 0026 2029 cmp r1, #32 184 0028 0CD1 bne .L13 6676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ 6678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 185 .loc 1 6678 7 is_stmt 1 view .LVU41 186 .loc 1 6678 14 is_stmt 0 view .LVU42 187 002a 2022 movs r2, #32 188 002c 1343 orrs r3, r2 189 .LVL9: 190 .loc 1 6678 14 view .LVU43 191 002e 09E0 b .L13 192 .LVL10: 193 .L8: 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 194 .loc 1 6631 5 is_stmt 1 view .LVU44 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 195 .loc 1 6631 49 is_stmt 0 view .LVU45 196 0030 0BB2 sxth r3, r1 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 197 .loc 1 6631 8 view .LVU46 198 0032 002B cmp r3, #0 199 0034 0BDB blt .L17 6626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 200 .loc 1 6626 12 view .LVU47 201 0036 0023 movs r3, #0 202 .L10: 203 .LVL11: 6637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 204 .loc 1 6637 5 is_stmt 1 view .LVU48 6637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 205 .loc 1 6637 8 is_stmt 0 view .LVU49 206 0038 1029 cmp r1, #16 207 003a 0AD0 beq .L19 208 .L11: 6643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 209 .loc 1 6643 5 is_stmt 1 view .LVU50 6643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 210 .loc 1 6643 8 is_stmt 0 view .LVU51 211 003c 2029 cmp r1, #32 212 003e 0BD0 beq .L20 213 .L12: 6649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 214 .loc 1 6649 5 is_stmt 1 view .LVU52 ARM GAS /tmp/ccRVAHyi.s page 122 6649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 215 .loc 1 6649 8 is_stmt 0 view .LVU53 216 0040 4029 cmp r1, #64 217 0042 0CD0 beq .L21 218 .L13: 6679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable interrupts only at the end */ 6683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 6684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all interrupts requested done */ 6685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 219 .loc 1 6685 3 is_stmt 1 view .LVU54 220 0044 0168 ldr r1, [r0] 221 .LVL12: 222 .loc 1 6685 3 is_stmt 0 view .LVU55 223 0046 0A68 ldr r2, [r1] 224 0048 1343 orrs r3, r2 225 .LVL13: 226 .loc 1 6685 3 view .LVU56 227 004a 0B60 str r3, [r1] 6686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 228 .loc 1 6686 1 view .LVU57 229 @ sp needed 230 004c 7047 bx lr 231 .LVL14: 232 .L17: 6634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 233 .loc 1 6634 14 view .LVU58 234 004e B823 movs r3, #184 235 0050 F2E7 b .L10 236 .LVL15: 237 .L19: 6640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 238 .loc 1 6640 7 is_stmt 1 view .LVU59 6640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 239 .loc 1 6640 14 is_stmt 0 view .LVU60 240 0052 9022 movs r2, #144 241 0054 1343 orrs r3, r2 242 .LVL16: 6640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 243 .loc 1 6640 14 view .LVU61 244 0056 F1E7 b .L11 245 .L20: 6646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 246 .loc 1 6646 7 is_stmt 1 view .LVU62 6646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 247 .loc 1 6646 14 is_stmt 0 view .LVU63 248 0058 6022 movs r2, #96 249 005a 1343 orrs r3, r2 250 .LVL17: 6646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 251 .loc 1 6646 14 view .LVU64 252 005c F0E7 b .L12 253 .L21: 6652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 254 .loc 1 6652 7 is_stmt 1 view .LVU65 ARM GAS /tmp/ccRVAHyi.s page 123 6652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 255 .loc 1 6652 14 is_stmt 0 view .LVU66 256 005e 4022 movs r2, #64 257 0060 1343 orrs r3, r2 258 .LVL18: 6652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 259 .loc 1 6652 14 view .LVU67 260 0062 EFE7 b .L13 261 .LVL19: 262 .L18: 6660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 263 .loc 1 6660 14 view .LVU68 264 0064 B823 movs r3, #184 265 0066 D6E7 b .L14 266 .L23: 267 .align 2 268 .L22: 269 0068 00000000 .word I2C_Master_ISR_DMA 270 006c 00000000 .word I2C_Slave_ISR_DMA 271 .cfi_endproc 272 .LFE116: 274 .section .text.I2C_Disable_IRQ,"ax",%progbits 275 .align 1 276 .syntax unified 277 .code 16 278 .thumb_func 279 .fpu softvfp 281 I2C_Disable_IRQ: 282 .LVL20: 283 .LFB117: 6687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 6690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 6693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 6696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 284 .loc 1 6696 1 is_stmt 1 view -0 285 .cfi_startproc 286 @ args = 0, pretend = 0, frame = 0 287 @ frame_needed = 0, uses_anonymous_args = 0 288 .loc 1 6696 1 is_stmt 0 view .LVU70 289 0000 30B5 push {r4, r5, lr} 290 .LCFI1: 291 .cfi_def_cfa_offset 12 292 .cfi_offset 4, -12 293 .cfi_offset 5, -8 294 .cfi_offset 14, -4 6697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U; 295 .loc 1 6697 3 is_stmt 1 view .LVU71 296 .LVL21: 6698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 297 .loc 1 6699 3 view .LVU72 ARM GAS /tmp/ccRVAHyi.s page 124 298 .loc 1 6699 6 is_stmt 0 view .LVU73 299 0002 CB07 lsls r3, r1, #31 300 0004 09D5 bpl .L31 6700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 6702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 301 .loc 1 6702 5 is_stmt 1 view .LVU74 302 .LVL22: 6703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 303 .loc 1 6704 5 view .LVU75 304 .loc 1 6704 24 is_stmt 0 view .LVU76 305 0006 4123 movs r3, #65 306 0008 C35C ldrb r3, [r0, r3] 307 .loc 1 6704 8 view .LVU77 308 000a 2822 movs r2, #40 309 000c 1340 ands r3, r2 310 000e 282B cmp r3, #40 311 0010 01D0 beq .L34 6705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 312 .loc 1 6707 14 view .LVU78 313 0012 F223 movs r3, #242 314 0014 02E0 b .L25 315 .L34: 6702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 316 .loc 1 6702 12 view .LVU79 317 0016 1A33 adds r3, r3, #26 318 0018 00E0 b .L25 319 .LVL23: 320 .L31: 6697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 321 .loc 1 6697 12 view .LVU80 322 001a 0023 movs r3, #0 323 .LVL24: 324 .L25: 6708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 325 .loc 1 6711 3 is_stmt 1 view .LVU81 326 .loc 1 6711 6 is_stmt 0 view .LVU82 327 001c 8A07 lsls r2, r1, #30 328 001e 09D5 bpl .L26 6712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 6714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 329 .loc 1 6714 5 is_stmt 1 view .LVU83 330 .loc 1 6714 12 is_stmt 0 view .LVU84 331 0020 4424 movs r4, #68 332 0022 1C43 orrs r4, r3 333 .LVL25: 6715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 334 .loc 1 6716 5 is_stmt 1 view .LVU85 335 .loc 1 6716 24 is_stmt 0 view .LVU86 ARM GAS /tmp/ccRVAHyi.s page 125 336 0024 4122 movs r2, #65 337 0026 825C ldrb r2, [r0, r2] 338 .loc 1 6716 8 view .LVU87 339 0028 2825 movs r5, #40 340 002a 2A40 ands r2, r5 341 002c 282A cmp r2, #40 342 002e 0FD0 beq .L33 6717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 6719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 343 .loc 1 6719 7 is_stmt 1 view .LVU88 344 .loc 1 6719 14 is_stmt 0 view .LVU89 345 0030 F422 movs r2, #244 346 0032 1343 orrs r3, r2 347 .LVL26: 348 .L26: 6720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 349 .loc 1 6723 3 is_stmt 1 view .LVU90 350 .loc 1 6723 47 is_stmt 0 view .LVU91 351 0034 0AB2 sxth r2, r1 352 .loc 1 6723 6 view .LVU92 353 0036 002A cmp r2, #0 354 0038 0CDB blt .L35 355 .L27: 6724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 6726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 6727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 356 .loc 1 6729 3 is_stmt 1 view .LVU93 357 .loc 1 6729 6 is_stmt 0 view .LVU94 358 003a 1029 cmp r1, #16 359 003c 0DD0 beq .L36 360 .L28: 6730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 6732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 6733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 361 .loc 1 6735 3 is_stmt 1 view .LVU95 362 .loc 1 6735 6 is_stmt 0 view .LVU96 363 003e 2029 cmp r1, #32 364 0040 0ED0 beq .L37 365 .L29: 6736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ 6738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 6739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 366 .loc 1 6741 3 is_stmt 1 view .LVU97 367 .loc 1 6741 6 is_stmt 0 view .LVU98 ARM GAS /tmp/ccRVAHyi.s page 126 368 0042 4029 cmp r1, #64 369 0044 0FD0 beq .L38 370 .L30: 6742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 6744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 6745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable interrupts only at the end */ 6748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 6749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all disable interrupts request are not done */ 6750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 371 .loc 1 6750 3 is_stmt 1 view .LVU99 372 0046 0168 ldr r1, [r0] 373 .LVL27: 374 .loc 1 6750 3 is_stmt 0 view .LVU100 375 0048 0A68 ldr r2, [r1] 376 004a 9A43 bics r2, r3 377 004c 0A60 str r2, [r1] 6751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 378 .loc 1 6751 1 view .LVU101 379 @ sp needed 380 004e 30BD pop {r4, r5, pc} 381 .LVL28: 382 .L33: 6714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 383 .loc 1 6714 12 view .LVU102 384 0050 2300 movs r3, r4 385 0052 EFE7 b .L26 386 .LVL29: 387 .L35: 6726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 388 .loc 1 6726 5 is_stmt 1 view .LVU103 6726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 389 .loc 1 6726 12 is_stmt 0 view .LVU104 390 0054 B822 movs r2, #184 391 0056 1343 orrs r3, r2 392 .LVL30: 6726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 393 .loc 1 6726 12 view .LVU105 394 0058 EFE7 b .L27 395 .L36: 6732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 396 .loc 1 6732 5 is_stmt 1 view .LVU106 6732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 397 .loc 1 6732 12 is_stmt 0 view .LVU107 398 005a 9022 movs r2, #144 399 005c 1343 orrs r3, r2 400 .LVL31: 6732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 401 .loc 1 6732 12 view .LVU108 402 005e EEE7 b .L28 403 .L37: 6738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 404 .loc 1 6738 5 is_stmt 1 view .LVU109 6738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 405 .loc 1 6738 12 is_stmt 0 view .LVU110 ARM GAS /tmp/ccRVAHyi.s page 127 406 0060 2022 movs r2, #32 407 0062 1343 orrs r3, r2 408 .LVL32: 6738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 409 .loc 1 6738 12 view .LVU111 410 0064 EDE7 b .L29 411 .L38: 6744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 412 .loc 1 6744 5 is_stmt 1 view .LVU112 6744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 413 .loc 1 6744 12 is_stmt 0 view .LVU113 414 0066 4022 movs r2, #64 415 0068 1343 orrs r3, r2 416 .LVL33: 6744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 417 .loc 1 6744 12 view .LVU114 418 006a ECE7 b .L30 419 .cfi_endproc 420 .LFE117: 422 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 423 .align 1 424 .syntax unified 425 .code 16 426 .thumb_func 427 .fpu softvfp 429 I2C_ConvertOtherXferOptions: 430 .LVL34: 431 .LFB118: 6752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 6755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 6759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 432 .loc 1 6759 1 is_stmt 1 view -0 433 .cfi_startproc 434 @ args = 0, pretend = 0, frame = 0 435 @ frame_needed = 0, uses_anonymous_args = 0 436 @ link register save eliminated. 6760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 6761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 6763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 437 .loc 1 6763 3 view .LVU116 438 .loc 1 6763 11 is_stmt 0 view .LVU117 439 0000 C36A ldr r3, [r0, #44] 440 .loc 1 6763 6 view .LVU118 441 0002 AA2B cmp r3, #170 442 0004 05D0 beq .L42 6764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 6766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 6768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 6769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ ARM GAS /tmp/ccRVAHyi.s page 128 6770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 6771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 443 .loc 1 6771 8 is_stmt 1 view .LVU119 444 .loc 1 6771 16 is_stmt 0 view .LVU120 445 0006 C26A ldr r2, [r0, #44] 446 .loc 1 6771 11 view .LVU121 447 0008 AA23 movs r3, #170 448 000a 1B02 lsls r3, r3, #8 449 000c 9A42 cmp r2, r3 450 000e 03D0 beq .L43 451 .L39: 6772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 6774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 6778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 452 .loc 1 6779 1 view .LVU122 453 @ sp needed 454 0010 7047 bx lr 455 .L42: 6765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 456 .loc 1 6765 5 is_stmt 1 view .LVU123 6765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 457 .loc 1 6765 23 is_stmt 0 view .LVU124 458 0012 0023 movs r3, #0 459 0014 C362 str r3, [r0, #44] 460 0016 FBE7 b .L39 461 .L43: 6773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 462 .loc 1 6773 5 is_stmt 1 view .LVU125 6773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 463 .loc 1 6773 23 is_stmt 0 view .LVU126 464 0018 8023 movs r3, #128 465 001a 9B04 lsls r3, r3, #18 466 001c C362 str r3, [r0, #44] 6778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 467 .loc 1 6778 3 is_stmt 1 view .LVU127 468 .loc 1 6779 1 is_stmt 0 view .LVU128 469 001e F7E7 b .L39 470 .cfi_endproc 471 .LFE118: 473 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits 474 .align 1 475 .syntax unified 476 .code 16 477 .thumb_func 478 .fpu softvfp 480 I2C_IsAcknowledgeFailed: 481 .LVL35: 482 .LFB114: 6526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 483 .loc 1 6526 1 is_stmt 1 view -0 484 .cfi_startproc 485 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccRVAHyi.s page 129 486 @ frame_needed = 0, uses_anonymous_args = 0 6526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 487 .loc 1 6526 1 is_stmt 0 view .LVU130 488 0000 70B5 push {r4, r5, r6, lr} 489 .LCFI2: 490 .cfi_def_cfa_offset 16 491 .cfi_offset 4, -16 492 .cfi_offset 5, -12 493 .cfi_offset 6, -8 494 .cfi_offset 14, -4 495 0002 0400 movs r4, r0 496 0004 0E00 movs r6, r1 497 0006 1500 movs r5, r2 6527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 498 .loc 1 6527 3 is_stmt 1 view .LVU131 6527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 499 .loc 1 6527 7 is_stmt 0 view .LVU132 500 0008 0368 ldr r3, [r0] 501 000a 9A69 ldr r2, [r3, #24] 502 .LVL36: 6527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 503 .loc 1 6527 6 view .LVU133 504 000c D206 lsls r2, r2, #27 505 000e 3BD5 bpl .L51 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 506 .loc 1 6530 5 is_stmt 1 view .LVU134 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 507 .loc 1 6530 9 is_stmt 0 view .LVU135 508 0010 5A68 ldr r2, [r3, #4] 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 509 .loc 1 6530 8 view .LVU136 510 0012 9201 lsls r2, r2, #6 511 0014 04D4 bmi .L47 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 512 .loc 1 6533 7 is_stmt 1 view .LVU137 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 513 .loc 1 6533 27 is_stmt 0 view .LVU138 514 0016 5968 ldr r1, [r3, #4] 515 .LVL37: 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 516 .loc 1 6533 27 view .LVU139 517 0018 8022 movs r2, #128 518 001a D201 lsls r2, r2, #7 519 001c 0A43 orrs r2, r1 520 001e 5A60 str r2, [r3, #4] 521 .LVL38: 522 .L47: 6537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 523 .loc 1 6537 12 view .LVU140 524 0020 2368 ldr r3, [r4] 525 0022 9A69 ldr r2, [r3, #24] 6537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 526 .loc 1 6537 11 view .LVU141 527 0024 9206 lsls r2, r2, #26 528 0026 15D4 bmi .L52 6540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 529 .loc 1 6540 7 is_stmt 1 view .LVU142 ARM GAS /tmp/ccRVAHyi.s page 130 6540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 530 .loc 1 6540 10 is_stmt 0 view .LVU143 531 0028 731C adds r3, r6, #1 532 002a F9D0 beq .L47 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 533 .loc 1 6542 9 is_stmt 1 view .LVU144 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 534 .loc 1 6542 15 is_stmt 0 view .LVU145 535 002c FFF7FEFF bl HAL_GetTick 536 .LVL39: 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 537 .loc 1 6542 29 view .LVU146 538 0030 401B subs r0, r0, r5 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 539 .loc 1 6542 12 view .LVU147 540 0032 B042 cmp r0, r6 541 0034 01D8 bhi .L48 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 542 .loc 1 6542 53 discriminator 1 view .LVU148 543 0036 002E cmp r6, #0 544 0038 F2D1 bne .L47 545 .L48: 6544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 546 .loc 1 6544 11 is_stmt 1 view .LVU149 6544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 547 .loc 1 6544 27 is_stmt 0 view .LVU150 548 003a 636C ldr r3, [r4, #68] 549 003c 2022 movs r2, #32 550 003e 1343 orrs r3, r2 551 0040 6364 str r3, [r4, #68] 6545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 552 .loc 1 6545 11 is_stmt 1 view .LVU151 6545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 553 .loc 1 6545 23 is_stmt 0 view .LVU152 554 0042 4123 movs r3, #65 555 0044 E254 strb r2, [r4, r3] 6546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 556 .loc 1 6546 11 is_stmt 1 view .LVU153 6546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 557 .loc 1 6546 22 is_stmt 0 view .LVU154 558 0046 0023 movs r3, #0 559 0048 2232 adds r2, r2, #34 560 004a A354 strb r3, [r4, r2] 6549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 561 .loc 1 6549 11 is_stmt 1 view .LVU155 6549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 562 .loc 1 6549 11 view .LVU156 563 004c 023A subs r2, r2, #2 564 004e A354 strb r3, [r4, r2] 6551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 565 .loc 1 6551 11 view .LVU157 6551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 566 .loc 1 6551 18 is_stmt 0 view .LVU158 567 0050 0120 movs r0, #1 568 0052 1AE0 b .L45 569 .L52: 6557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 131 570 .loc 1 6557 5 is_stmt 1 view .LVU159 571 0054 1022 movs r2, #16 572 0056 DA61 str r2, [r3, #28] 6560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 573 .loc 1 6560 5 view .LVU160 574 0058 2368 ldr r3, [r4] 575 005a 2025 movs r5, #32 576 .LVL40: 6560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 577 .loc 1 6560 5 is_stmt 0 view .LVU161 578 005c DD61 str r5, [r3, #28] 6563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 579 .loc 1 6563 5 is_stmt 1 view .LVU162 580 005e 2000 movs r0, r4 581 0060 FFF7FEFF bl I2C_Flush_TXDR 582 .LVL41: 6566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 583 .loc 1 6566 5 view .LVU163 584 0064 2268 ldr r2, [r4] 585 0066 5368 ldr r3, [r2, #4] 586 0068 0849 ldr r1, .L53 587 006a 0B40 ands r3, r1 588 006c 5360 str r3, [r2, #4] 6568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 589 .loc 1 6568 5 view .LVU164 6568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 590 .loc 1 6568 21 is_stmt 0 view .LVU165 591 006e 636C ldr r3, [r4, #68] 592 0070 0422 movs r2, #4 593 0072 1343 orrs r3, r2 594 0074 6364 str r3, [r4, #68] 6569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 595 .loc 1 6569 5 is_stmt 1 view .LVU166 6569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 596 .loc 1 6569 17 is_stmt 0 view .LVU167 597 0076 4123 movs r3, #65 598 0078 E554 strb r5, [r4, r3] 6570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 599 .loc 1 6570 5 is_stmt 1 view .LVU168 6570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 600 .loc 1 6570 16 is_stmt 0 view .LVU169 601 007a 0023 movs r3, #0 602 007c 3E32 adds r2, r2, #62 603 007e A354 strb r3, [r4, r2] 6573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 604 .loc 1 6573 5 is_stmt 1 view .LVU170 6573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 605 .loc 1 6573 5 view .LVU171 606 0080 023A subs r2, r2, #2 607 0082 A354 strb r3, [r4, r2] 6575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 608 .loc 1 6575 5 view .LVU172 6575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 609 .loc 1 6575 12 is_stmt 0 view .LVU173 610 0084 0120 movs r0, #1 611 0086 00E0 b .L45 612 .LVL42: ARM GAS /tmp/ccRVAHyi.s page 132 613 .L51: 6577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 614 .loc 1 6577 10 view .LVU174 615 0088 0020 movs r0, #0 616 .LVL43: 617 .L45: 6578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 618 .loc 1 6578 1 view .LVU175 619 @ sp needed 620 .LVL44: 621 .LVL45: 6578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 622 .loc 1 6578 1 view .LVU176 623 008a 70BD pop {r4, r5, r6, pc} 624 .L54: 625 .align 2 626 .L53: 627 008c 00E800FE .word -33495040 628 .cfi_endproc 629 .LFE114: 631 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 632 .align 1 633 .syntax unified 634 .code 16 635 .thumb_func 636 .fpu softvfp 638 I2C_WaitOnTXISFlagUntilTimeout: 639 .LVL46: 640 .LFB111: 6390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 641 .loc 1 6390 1 is_stmt 1 view -0 642 .cfi_startproc 643 @ args = 0, pretend = 0, frame = 0 644 @ frame_needed = 0, uses_anonymous_args = 0 6390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 645 .loc 1 6390 1 is_stmt 0 view .LVU178 646 0000 70B5 push {r4, r5, r6, lr} 647 .LCFI3: 648 .cfi_def_cfa_offset 16 649 .cfi_offset 4, -16 650 .cfi_offset 5, -12 651 .cfi_offset 6, -8 652 .cfi_offset 14, -4 653 0002 0400 movs r4, r0 654 0004 0D00 movs r5, r1 655 0006 1600 movs r6, r2 6391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 656 .loc 1 6391 3 is_stmt 1 view .LVU179 657 .LVL47: 658 .L58: 6391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 659 .loc 1 6391 10 is_stmt 0 view .LVU180 660 0008 2368 ldr r3, [r4] 661 000a 9B69 ldr r3, [r3, #24] 6391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 662 .loc 1 6391 9 view .LVU181 663 000c 9B07 lsls r3, r3, #30 ARM GAS /tmp/ccRVAHyi.s page 133 664 000e 1CD4 bmi .L62 6394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 665 .loc 1 6394 5 is_stmt 1 view .LVU182 6394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 666 .loc 1 6394 9 is_stmt 0 view .LVU183 667 0010 3200 movs r2, r6 668 0012 2900 movs r1, r5 669 0014 2000 movs r0, r4 670 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed 671 .LVL48: 6394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 672 .loc 1 6394 8 view .LVU184 673 001a 0028 cmp r0, #0 674 001c 17D1 bne .L61 6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 675 .loc 1 6400 5 is_stmt 1 view .LVU185 6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 676 .loc 1 6400 8 is_stmt 0 view .LVU186 677 001e 6B1C adds r3, r5, #1 678 0020 F2D0 beq .L58 6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 679 .loc 1 6402 7 is_stmt 1 view .LVU187 6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 680 .loc 1 6402 13 is_stmt 0 view .LVU188 681 0022 FFF7FEFF bl HAL_GetTick 682 .LVL49: 6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 683 .loc 1 6402 27 view .LVU189 684 0026 801B subs r0, r0, r6 6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 685 .loc 1 6402 10 view .LVU190 686 0028 A842 cmp r0, r5 687 002a 01D8 bhi .L59 6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 688 .loc 1 6402 51 discriminator 1 view .LVU191 689 002c 002D cmp r5, #0 690 002e EBD1 bne .L58 691 .L59: 6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 692 .loc 1 6404 9 is_stmt 1 view .LVU192 6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 693 .loc 1 6404 25 is_stmt 0 view .LVU193 694 0030 636C ldr r3, [r4, #68] 695 0032 2022 movs r2, #32 696 0034 1343 orrs r3, r2 697 0036 6364 str r3, [r4, #68] 6405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 698 .loc 1 6405 9 is_stmt 1 view .LVU194 6405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 699 .loc 1 6405 21 is_stmt 0 view .LVU195 700 0038 4123 movs r3, #65 701 003a E254 strb r2, [r4, r3] 6406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 702 .loc 1 6406 9 is_stmt 1 view .LVU196 6406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 703 .loc 1 6406 20 is_stmt 0 view .LVU197 704 003c 0023 movs r3, #0 ARM GAS /tmp/ccRVAHyi.s page 134 705 003e 2232 adds r2, r2, #34 706 0040 A354 strb r3, [r4, r2] 6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 707 .loc 1 6409 9 is_stmt 1 view .LVU198 6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 708 .loc 1 6409 9 view .LVU199 709 0042 023A subs r2, r2, #2 710 0044 A354 strb r3, [r4, r2] 6411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 711 .loc 1 6411 9 view .LVU200 6411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 712 .loc 1 6411 16 is_stmt 0 view .LVU201 713 0046 0120 movs r0, #1 714 0048 00E0 b .L57 715 .L62: 6415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 716 .loc 1 6415 10 view .LVU202 717 004a 0020 movs r0, #0 718 .L57: 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 719 .loc 1 6416 1 view .LVU203 720 @ sp needed 721 .LVL50: 722 .LVL51: 723 .LVL52: 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 724 .loc 1 6416 1 view .LVU204 725 004c 70BD pop {r4, r5, r6, pc} 726 .LVL53: 727 .L61: 6396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 728 .loc 1 6396 14 view .LVU205 729 004e 0120 movs r0, #1 730 0050 FCE7 b .L57 731 .cfi_endproc 732 .LFE111: 734 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 735 .align 1 736 .syntax unified 737 .code 16 738 .thumb_func 739 .fpu softvfp 741 I2C_WaitOnFlagUntilTimeout: 742 .LVL54: 743 .LFB110: 6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 744 .loc 1 6359 1 is_stmt 1 view -0 745 .cfi_startproc 746 @ args = 4, pretend = 0, frame = 0 747 @ frame_needed = 0, uses_anonymous_args = 0 6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 748 .loc 1 6359 1 is_stmt 0 view .LVU207 749 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 750 .LCFI4: 751 .cfi_def_cfa_offset 24 752 .cfi_offset 3, -24 753 .cfi_offset 4, -20 ARM GAS /tmp/ccRVAHyi.s page 135 754 .cfi_offset 5, -16 755 .cfi_offset 6, -12 756 .cfi_offset 7, -8 757 .cfi_offset 14, -4 758 0002 0600 movs r6, r0 759 0004 0C00 movs r4, r1 760 0006 1700 movs r7, r2 761 0008 1D00 movs r5, r3 6360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 762 .loc 1 6360 3 is_stmt 1 view .LVU208 763 .LVL55: 764 .L65: 6360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 765 .loc 1 6360 10 is_stmt 0 view .LVU209 766 000a 3368 ldr r3, [r6] 767 000c 9B69 ldr r3, [r3, #24] 768 000e 2340 ands r3, r4 769 0010 1B1B subs r3, r3, r4 770 0012 5A42 rsbs r2, r3, #0 771 0014 5341 adcs r3, r3, r2 6360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 772 .loc 1 6360 9 view .LVU210 773 0016 BB42 cmp r3, r7 774 0018 16D1 bne .L69 6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 775 .loc 1 6363 5 is_stmt 1 view .LVU211 6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 776 .loc 1 6363 8 is_stmt 0 view .LVU212 777 001a 6B1C adds r3, r5, #1 778 001c F5D0 beq .L65 6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 779 .loc 1 6365 7 is_stmt 1 view .LVU213 6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 780 .loc 1 6365 13 is_stmt 0 view .LVU214 781 001e FFF7FEFF bl HAL_GetTick 782 .LVL56: 6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 783 .loc 1 6365 27 view .LVU215 784 0022 069B ldr r3, [sp, #24] 785 0024 C01A subs r0, r0, r3 6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 786 .loc 1 6365 10 view .LVU216 787 0026 A842 cmp r0, r5 788 0028 01D8 bhi .L66 6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 789 .loc 1 6365 51 discriminator 1 view .LVU217 790 002a 002D cmp r5, #0 791 002c EDD1 bne .L65 792 .L66: 6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 793 .loc 1 6367 9 is_stmt 1 view .LVU218 6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 794 .loc 1 6367 25 is_stmt 0 view .LVU219 795 002e 736C ldr r3, [r6, #68] 796 0030 2022 movs r2, #32 797 0032 1343 orrs r3, r2 798 0034 7364 str r3, [r6, #68] ARM GAS /tmp/ccRVAHyi.s page 136 6368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 799 .loc 1 6368 9 is_stmt 1 view .LVU220 6368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 800 .loc 1 6368 21 is_stmt 0 view .LVU221 801 0036 4123 movs r3, #65 802 0038 F254 strb r2, [r6, r3] 6369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 803 .loc 1 6369 9 is_stmt 1 view .LVU222 6369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 804 .loc 1 6369 20 is_stmt 0 view .LVU223 805 003a 0023 movs r3, #0 806 003c 2232 adds r2, r2, #34 807 003e B354 strb r3, [r6, r2] 6372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 808 .loc 1 6372 9 is_stmt 1 view .LVU224 6372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 809 .loc 1 6372 9 view .LVU225 810 0040 023A subs r2, r2, #2 811 0042 B354 strb r3, [r6, r2] 6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 812 .loc 1 6373 9 view .LVU226 6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 813 .loc 1 6373 16 is_stmt 0 view .LVU227 814 0044 0120 movs r0, #1 815 0046 00E0 b .L67 816 .L69: 6377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 817 .loc 1 6377 10 view .LVU228 818 0048 0020 movs r0, #0 819 .L67: 6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 820 .loc 1 6378 1 view .LVU229 821 @ sp needed 822 .LVL57: 823 .LVL58: 824 .LVL59: 6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 825 .loc 1 6378 1 view .LVU230 826 004a F8BD pop {r3, r4, r5, r6, r7, pc} 827 .cfi_endproc 828 .LFE110: 830 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 831 .align 1 832 .syntax unified 833 .code 16 834 .thumb_func 835 .fpu softvfp 837 I2C_RequestMemoryWrite: 838 .LVL60: 839 .LFB93: 5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 840 .loc 1 5308 1 is_stmt 1 view -0 841 .cfi_startproc 842 @ args = 8, pretend = 0, frame = 0 843 @ frame_needed = 0, uses_anonymous_args = 0 5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 844 .loc 1 5308 1 is_stmt 0 view .LVU232 ARM GAS /tmp/ccRVAHyi.s page 137 845 0000 70B5 push {r4, r5, r6, lr} 846 .LCFI5: 847 .cfi_def_cfa_offset 16 848 .cfi_offset 4, -16 849 .cfi_offset 5, -12 850 .cfi_offset 6, -8 851 .cfi_offset 14, -4 852 0002 82B0 sub sp, sp, #8 853 .LCFI6: 854 .cfi_def_cfa_offset 24 855 0004 0400 movs r4, r0 856 0006 1500 movs r5, r2 857 0008 1E00 movs r6, r3 5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 858 .loc 1 5309 3 is_stmt 1 view .LVU233 859 000a 8023 movs r3, #128 860 .LVL61: 5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 861 .loc 1 5309 3 is_stmt 0 view .LVU234 862 000c F2B2 uxtb r2, r6 863 .LVL62: 5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 864 .loc 1 5309 3 view .LVU235 865 000e 1948 ldr r0, .L78 866 .LVL63: 5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 867 .loc 1 5309 3 view .LVU236 868 0010 0090 str r0, [sp] 869 0012 5B04 lsls r3, r3, #17 870 0014 2000 movs r0, r4 871 0016 FFF7FEFF bl I2C_TransferConfig 872 .LVL64: 5312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 873 .loc 1 5312 3 is_stmt 1 view .LVU237 5312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 874 .loc 1 5312 7 is_stmt 0 view .LVU238 875 001a 079A ldr r2, [sp, #28] 876 001c 0699 ldr r1, [sp, #24] 877 001e 2000 movs r0, r4 878 0020 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 879 .LVL65: 5312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 880 .loc 1 5312 6 view .LVU239 881 0024 0028 cmp r0, #0 882 0026 1ED1 bne .L74 5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 883 .loc 1 5318 3 is_stmt 1 view .LVU240 5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 884 .loc 1 5318 6 is_stmt 0 view .LVU241 885 0028 012E cmp r6, #1 886 002a 0ED1 bne .L72 5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 887 .loc 1 5321 5 is_stmt 1 view .LVU242 5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 888 .loc 1 5321 9 is_stmt 0 view .LVU243 889 002c 2368 ldr r3, [r4] 5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 138 890 .loc 1 5321 28 view .LVU244 891 002e EDB2 uxtb r5, r5 5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 892 .loc 1 5321 26 view .LVU245 893 0030 9D62 str r5, [r3, #40] 894 .L73: 5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 895 .loc 1 5340 3 is_stmt 1 view .LVU246 5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 896 .loc 1 5340 7 is_stmt 0 view .LVU247 897 0032 079B ldr r3, [sp, #28] 898 0034 0093 str r3, [sp] 899 0036 069B ldr r3, [sp, #24] 900 0038 0022 movs r2, #0 901 003a 8021 movs r1, #128 902 003c 2000 movs r0, r4 903 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 904 .LVL66: 5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 905 .loc 1 5340 6 view .LVU248 906 0042 0028 cmp r0, #0 907 0044 13D1 bne .L77 908 .L71: 5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 909 .loc 1 5346 1 view .LVU249 910 0046 02B0 add sp, sp, #8 911 @ sp needed 912 .LVL67: 5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 913 .loc 1 5346 1 view .LVU250 914 0048 70BD pop {r4, r5, r6, pc} 915 .LVL68: 916 .L72: 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 917 .loc 1 5327 5 is_stmt 1 view .LVU251 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 918 .loc 1 5327 9 is_stmt 0 view .LVU252 919 004a 2368 ldr r3, [r4] 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 920 .loc 1 5327 28 view .LVU253 921 004c 2A0A lsrs r2, r5, #8 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 922 .loc 1 5327 26 view .LVU254 923 004e 9A62 str r2, [r3, #40] 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 924 .loc 1 5330 5 is_stmt 1 view .LVU255 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 925 .loc 1 5330 9 is_stmt 0 view .LVU256 926 0050 079A ldr r2, [sp, #28] 927 0052 0699 ldr r1, [sp, #24] 928 0054 2000 movs r0, r4 929 0056 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 930 .LVL69: 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 931 .loc 1 5330 8 view .LVU257 932 005a 0028 cmp r0, #0 933 005c 05D1 bne .L75 ARM GAS /tmp/ccRVAHyi.s page 139 5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 934 .loc 1 5336 5 is_stmt 1 view .LVU258 5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 935 .loc 1 5336 9 is_stmt 0 view .LVU259 936 005e 2368 ldr r3, [r4] 5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 937 .loc 1 5336 28 view .LVU260 938 0060 EDB2 uxtb r5, r5 5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 939 .loc 1 5336 26 view .LVU261 940 0062 9D62 str r5, [r3, #40] 941 0064 E5E7 b .L73 942 .L74: 5314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 943 .loc 1 5314 12 view .LVU262 944 0066 0120 movs r0, #1 945 0068 EDE7 b .L71 946 .L75: 5332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 947 .loc 1 5332 14 view .LVU263 948 006a 0120 movs r0, #1 949 006c EBE7 b .L71 950 .L77: 5342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 951 .loc 1 5342 12 view .LVU264 952 006e 0120 movs r0, #1 953 0070 E9E7 b .L71 954 .L79: 955 0072 C046 .align 2 956 .L78: 957 0074 00200080 .word -2147475456 958 .cfi_endproc 959 .LFE93: 961 .section .text.I2C_RequestMemoryRead,"ax",%progbits 962 .align 1 963 .syntax unified 964 .code 16 965 .thumb_func 966 .fpu softvfp 968 I2C_RequestMemoryRead: 969 .LVL70: 970 .LFB94: 5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 971 .loc 1 5363 1 is_stmt 1 view -0 972 .cfi_startproc 973 @ args = 8, pretend = 0, frame = 0 974 @ frame_needed = 0, uses_anonymous_args = 0 5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 975 .loc 1 5363 1 is_stmt 0 view .LVU266 976 0000 70B5 push {r4, r5, r6, lr} 977 .LCFI7: 978 .cfi_def_cfa_offset 16 979 .cfi_offset 4, -16 980 .cfi_offset 5, -12 981 .cfi_offset 6, -8 982 .cfi_offset 14, -4 983 0002 82B0 sub sp, sp, #8 ARM GAS /tmp/ccRVAHyi.s page 140 984 .LCFI8: 985 .cfi_def_cfa_offset 24 986 0004 0400 movs r4, r0 987 0006 1500 movs r5, r2 988 0008 1E00 movs r6, r3 5364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 989 .loc 1 5364 3 is_stmt 1 view .LVU267 990 000a DAB2 uxtb r2, r3 991 .LVL71: 5364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 992 .loc 1 5364 3 is_stmt 0 view .LVU268 993 000c 184B ldr r3, .L88 994 .LVL72: 5364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 995 .loc 1 5364 3 view .LVU269 996 000e 0093 str r3, [sp] 997 0010 0023 movs r3, #0 998 0012 FFF7FEFF bl I2C_TransferConfig 999 .LVL73: 5367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1000 .loc 1 5367 3 is_stmt 1 view .LVU270 5367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1001 .loc 1 5367 7 is_stmt 0 view .LVU271 1002 0016 079A ldr r2, [sp, #28] 1003 0018 0699 ldr r1, [sp, #24] 1004 001a 2000 movs r0, r4 1005 001c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1006 .LVL74: 5367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1007 .loc 1 5367 6 view .LVU272 1008 0020 0028 cmp r0, #0 1009 0022 1ED1 bne .L84 5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1010 .loc 1 5373 3 is_stmt 1 view .LVU273 5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1011 .loc 1 5373 6 is_stmt 0 view .LVU274 1012 0024 012E cmp r6, #1 1013 0026 0ED1 bne .L82 5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1014 .loc 1 5376 5 is_stmt 1 view .LVU275 5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1015 .loc 1 5376 9 is_stmt 0 view .LVU276 1016 0028 2368 ldr r3, [r4] 5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1017 .loc 1 5376 28 view .LVU277 1018 002a EDB2 uxtb r5, r5 5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1019 .loc 1 5376 26 view .LVU278 1020 002c 9D62 str r5, [r3, #40] 1021 .L83: 5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1022 .loc 1 5395 3 is_stmt 1 view .LVU279 5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1023 .loc 1 5395 7 is_stmt 0 view .LVU280 1024 002e 079B ldr r3, [sp, #28] 1025 0030 0093 str r3, [sp] 1026 0032 069B ldr r3, [sp, #24] ARM GAS /tmp/ccRVAHyi.s page 141 1027 0034 0022 movs r2, #0 1028 0036 4021 movs r1, #64 1029 0038 2000 movs r0, r4 1030 003a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1031 .LVL75: 5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1032 .loc 1 5395 6 view .LVU281 1033 003e 0028 cmp r0, #0 1034 0040 13D1 bne .L87 1035 .L81: 5401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1036 .loc 1 5401 1 view .LVU282 1037 0042 02B0 add sp, sp, #8 1038 @ sp needed 1039 .LVL76: 5401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1040 .loc 1 5401 1 view .LVU283 1041 0044 70BD pop {r4, r5, r6, pc} 1042 .LVL77: 1043 .L82: 5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1044 .loc 1 5382 5 is_stmt 1 view .LVU284 5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1045 .loc 1 5382 9 is_stmt 0 view .LVU285 1046 0046 2368 ldr r3, [r4] 5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1047 .loc 1 5382 28 view .LVU286 1048 0048 2A0A lsrs r2, r5, #8 5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1049 .loc 1 5382 26 view .LVU287 1050 004a 9A62 str r2, [r3, #40] 5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1051 .loc 1 5385 5 is_stmt 1 view .LVU288 5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1052 .loc 1 5385 9 is_stmt 0 view .LVU289 1053 004c 079A ldr r2, [sp, #28] 1054 004e 0699 ldr r1, [sp, #24] 1055 0050 2000 movs r0, r4 1056 0052 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1057 .LVL78: 5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1058 .loc 1 5385 8 view .LVU290 1059 0056 0028 cmp r0, #0 1060 0058 05D1 bne .L85 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1061 .loc 1 5391 5 is_stmt 1 view .LVU291 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1062 .loc 1 5391 9 is_stmt 0 view .LVU292 1063 005a 2368 ldr r3, [r4] 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1064 .loc 1 5391 28 view .LVU293 1065 005c EDB2 uxtb r5, r5 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1066 .loc 1 5391 26 view .LVU294 1067 005e 9D62 str r5, [r3, #40] 1068 0060 E5E7 b .L83 1069 .L84: ARM GAS /tmp/ccRVAHyi.s page 142 5369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1070 .loc 1 5369 12 view .LVU295 1071 0062 0120 movs r0, #1 1072 0064 EDE7 b .L81 1073 .L85: 5387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1074 .loc 1 5387 14 view .LVU296 1075 0066 0120 movs r0, #1 1076 0068 EBE7 b .L81 1077 .L87: 5397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1078 .loc 1 5397 12 view .LVU297 1079 006a 0120 movs r0, #1 1080 006c E9E7 b .L81 1081 .L89: 1082 006e C046 .align 2 1083 .L88: 1084 0070 00200080 .word -2147475456 1085 .cfi_endproc 1086 .LFE94: 1088 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1089 .align 1 1090 .syntax unified 1091 .code 16 1092 .thumb_func 1093 .fpu softvfp 1095 I2C_WaitOnSTOPFlagUntilTimeout: 1096 .LVL79: 1097 .LFB112: 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1098 .loc 1 6428 1 is_stmt 1 view -0 1099 .cfi_startproc 1100 @ args = 0, pretend = 0, frame = 0 1101 @ frame_needed = 0, uses_anonymous_args = 0 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1102 .loc 1 6428 1 is_stmt 0 view .LVU299 1103 0000 70B5 push {r4, r5, r6, lr} 1104 .LCFI9: 1105 .cfi_def_cfa_offset 16 1106 .cfi_offset 4, -16 1107 .cfi_offset 5, -12 1108 .cfi_offset 6, -8 1109 .cfi_offset 14, -4 1110 0002 0500 movs r5, r0 1111 0004 0C00 movs r4, r1 1112 0006 1600 movs r6, r2 6429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1113 .loc 1 6429 3 is_stmt 1 view .LVU300 1114 .LVL80: 1115 .L91: 6429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1116 .loc 1 6429 10 is_stmt 0 view .LVU301 1117 0008 2B68 ldr r3, [r5] 1118 000a 9B69 ldr r3, [r3, #24] 6429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1119 .loc 1 6429 9 view .LVU302 1120 000c 9B06 lsls r3, r3, #26 ARM GAS /tmp/ccRVAHyi.s page 143 1121 000e 1AD4 bmi .L96 6432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1122 .loc 1 6432 5 is_stmt 1 view .LVU303 6432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1123 .loc 1 6432 9 is_stmt 0 view .LVU304 1124 0010 3200 movs r2, r6 1125 0012 2100 movs r1, r4 1126 0014 2800 movs r0, r5 1127 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed 1128 .LVL81: 6432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1129 .loc 1 6432 8 view .LVU305 1130 001a 0028 cmp r0, #0 1131 001c 15D1 bne .L95 6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1132 .loc 1 6438 5 is_stmt 1 view .LVU306 6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1133 .loc 1 6438 11 is_stmt 0 view .LVU307 1134 001e FFF7FEFF bl HAL_GetTick 1135 .LVL82: 6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1136 .loc 1 6438 25 view .LVU308 1137 0022 801B subs r0, r0, r6 6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1138 .loc 1 6438 8 view .LVU309 1139 0024 A042 cmp r0, r4 1140 0026 01D8 bhi .L93 6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1141 .loc 1 6438 49 discriminator 1 view .LVU310 1142 0028 002C cmp r4, #0 1143 002a EDD1 bne .L91 1144 .L93: 6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1145 .loc 1 6440 7 is_stmt 1 view .LVU311 6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1146 .loc 1 6440 23 is_stmt 0 view .LVU312 1147 002c 6B6C ldr r3, [r5, #68] 1148 002e 2022 movs r2, #32 1149 0030 1343 orrs r3, r2 1150 0032 6B64 str r3, [r5, #68] 6441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1151 .loc 1 6441 7 is_stmt 1 view .LVU313 6441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1152 .loc 1 6441 19 is_stmt 0 view .LVU314 1153 0034 4123 movs r3, #65 1154 0036 EA54 strb r2, [r5, r3] 6442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1155 .loc 1 6442 7 is_stmt 1 view .LVU315 6442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1156 .loc 1 6442 18 is_stmt 0 view .LVU316 1157 0038 0023 movs r3, #0 1158 003a 2232 adds r2, r2, #34 1159 003c AB54 strb r3, [r5, r2] 6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1160 .loc 1 6445 7 is_stmt 1 view .LVU317 6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1161 .loc 1 6445 7 view .LVU318 ARM GAS /tmp/ccRVAHyi.s page 144 1162 003e 023A subs r2, r2, #2 1163 0040 AB54 strb r3, [r5, r2] 6447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1164 .loc 1 6447 7 view .LVU319 6447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1165 .loc 1 6447 14 is_stmt 0 view .LVU320 1166 0042 0120 movs r0, #1 1167 .L92: 6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1168 .loc 1 6451 1 view .LVU321 1169 @ sp needed 1170 .LVL83: 1171 .LVL84: 1172 .LVL85: 6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1173 .loc 1 6451 1 view .LVU322 1174 0044 70BD pop {r4, r5, r6, pc} 1175 .LVL86: 1176 .L96: 6450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1177 .loc 1 6450 10 view .LVU323 1178 0046 0020 movs r0, #0 1179 0048 FCE7 b .L92 1180 .L95: 6434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1181 .loc 1 6434 14 view .LVU324 1182 004a 0120 movs r0, #1 1183 004c FAE7 b .L92 1184 .cfi_endproc 1185 .LFE112: 1187 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1188 .align 1 1189 .syntax unified 1190 .code 16 1191 .thumb_func 1192 .fpu softvfp 1194 I2C_WaitOnRXNEFlagUntilTimeout: 1195 .LVL87: 1196 .LFB113: 6463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1197 .loc 1 6463 1 is_stmt 1 view -0 1198 .cfi_startproc 1199 @ args = 0, pretend = 0, frame = 0 1200 @ frame_needed = 0, uses_anonymous_args = 0 6463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1201 .loc 1 6463 1 is_stmt 0 view .LVU326 1202 0000 70B5 push {r4, r5, r6, lr} 1203 .LCFI10: 1204 .cfi_def_cfa_offset 16 1205 .cfi_offset 4, -16 1206 .cfi_offset 5, -12 1207 .cfi_offset 6, -8 1208 .cfi_offset 14, -4 1209 0002 0400 movs r4, r0 1210 0004 0D00 movs r5, r1 1211 0006 1600 movs r6, r2 6464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 145 1212 .loc 1 6464 3 is_stmt 1 view .LVU327 1213 .LVL88: 1214 .L98: 6464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1215 .loc 1 6464 10 is_stmt 0 view .LVU328 1216 0008 2368 ldr r3, [r4] 1217 000a 9B69 ldr r3, [r3, #24] 6464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1218 .loc 1 6464 9 view .LVU329 1219 000c 5B07 lsls r3, r3, #29 1220 000e 33D4 bmi .L105 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1221 .loc 1 6467 5 is_stmt 1 view .LVU330 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1222 .loc 1 6467 9 is_stmt 0 view .LVU331 1223 0010 3200 movs r2, r6 1224 0012 2900 movs r1, r5 1225 0014 2000 movs r0, r4 1226 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed 1227 .LVL89: 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1228 .loc 1 6467 8 view .LVU332 1229 001a 0028 cmp r0, #0 1230 001c 2ED1 bne .L104 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1231 .loc 1 6473 5 is_stmt 1 view .LVU333 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1232 .loc 1 6473 9 is_stmt 0 view .LVU334 1233 001e 2368 ldr r3, [r4] 1234 0020 9A69 ldr r2, [r3, #24] 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1235 .loc 1 6473 8 view .LVU335 1236 0022 9206 lsls r2, r2, #26 1237 0024 11D4 bmi .L106 6503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1238 .loc 1 6503 5 is_stmt 1 view .LVU336 6503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1239 .loc 1 6503 11 is_stmt 0 view .LVU337 1240 0026 FFF7FEFF bl HAL_GetTick 1241 .LVL90: 6503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1242 .loc 1 6503 25 view .LVU338 1243 002a 801B subs r0, r0, r6 6503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1244 .loc 1 6503 8 view .LVU339 1245 002c A842 cmp r0, r5 1246 002e 01D8 bhi .L102 6503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1247 .loc 1 6503 49 discriminator 1 view .LVU340 1248 0030 002D cmp r5, #0 1249 0032 E9D1 bne .L98 1250 .L102: 6505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1251 .loc 1 6505 7 is_stmt 1 view .LVU341 6505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1252 .loc 1 6505 23 is_stmt 0 view .LVU342 1253 0034 636C ldr r3, [r4, #68] ARM GAS /tmp/ccRVAHyi.s page 146 1254 0036 2022 movs r2, #32 1255 0038 1343 orrs r3, r2 1256 003a 6364 str r3, [r4, #68] 6506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1257 .loc 1 6506 7 is_stmt 1 view .LVU343 6506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1258 .loc 1 6506 19 is_stmt 0 view .LVU344 1259 003c 4123 movs r3, #65 1260 003e E254 strb r2, [r4, r3] 6509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1261 .loc 1 6509 7 is_stmt 1 view .LVU345 6509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1262 .loc 1 6509 7 view .LVU346 1263 0040 013B subs r3, r3, #1 1264 0042 0022 movs r2, #0 1265 0044 E254 strb r2, [r4, r3] 6511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1266 .loc 1 6511 7 view .LVU347 6511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1267 .loc 1 6511 14 is_stmt 0 view .LVU348 1268 0046 0120 movs r0, #1 1269 .L99: 6515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1270 .loc 1 6515 1 view .LVU349 1271 @ sp needed 1272 .LVL91: 1273 .LVL92: 1274 .LVL93: 6515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1275 .loc 1 6515 1 view .LVU350 1276 0048 70BD pop {r4, r5, r6, pc} 1277 .LVL94: 1278 .L106: 6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1279 .loc 1 6477 7 is_stmt 1 view .LVU351 6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1280 .loc 1 6477 12 is_stmt 0 view .LVU352 1281 004a 9A69 ldr r2, [r3, #24] 6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1282 .loc 1 6477 10 view .LVU353 1283 004c 5207 lsls r2, r2, #29 1284 004e 02D5 bpl .L101 6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1285 .loc 1 6477 68 discriminator 1 view .LVU354 1286 0050 228D ldrh r2, [r4, #40] 6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1287 .loc 1 6477 60 discriminator 1 view .LVU355 1288 0052 002A cmp r2, #0 1289 0054 F8D1 bne .L99 1290 .L101: 6486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1291 .loc 1 6486 9 is_stmt 1 view .LVU356 1292 0056 2022 movs r2, #32 1293 0058 DA61 str r2, [r3, #28] 6489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1294 .loc 1 6489 9 view .LVU357 1295 005a 2168 ldr r1, [r4] ARM GAS /tmp/ccRVAHyi.s page 147 1296 005c 4B68 ldr r3, [r1, #4] 1297 005e 0848 ldr r0, .L107 1298 0060 0340 ands r3, r0 1299 0062 4B60 str r3, [r1, #4] 6491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1300 .loc 1 6491 9 view .LVU358 6491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1301 .loc 1 6491 25 is_stmt 0 view .LVU359 1302 0064 0023 movs r3, #0 1303 0066 6364 str r3, [r4, #68] 6492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1304 .loc 1 6492 9 is_stmt 1 view .LVU360 6492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1305 .loc 1 6492 21 is_stmt 0 view .LVU361 1306 0068 4121 movs r1, #65 1307 006a 6254 strb r2, [r4, r1] 6493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1308 .loc 1 6493 9 is_stmt 1 view .LVU362 6493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1309 .loc 1 6493 20 is_stmt 0 view .LVU363 1310 006c 2232 adds r2, r2, #34 1311 006e A354 strb r3, [r4, r2] 6496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1312 .loc 1 6496 9 is_stmt 1 view .LVU364 6496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1313 .loc 1 6496 9 view .LVU365 1314 0070 023A subs r2, r2, #2 1315 0072 A354 strb r3, [r4, r2] 6498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1316 .loc 1 6498 9 view .LVU366 6498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1317 .loc 1 6498 16 is_stmt 0 view .LVU367 1318 0074 0120 movs r0, #1 1319 0076 E7E7 b .L99 1320 .L105: 6514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1321 .loc 1 6514 10 view .LVU368 1322 0078 0020 movs r0, #0 1323 007a E5E7 b .L99 1324 .L104: 6469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1325 .loc 1 6469 14 view .LVU369 1326 007c 0120 movs r0, #1 1327 007e E3E7 b .L99 1328 .L108: 1329 .align 2 1330 .L107: 1331 0080 00E800FE .word -33495040 1332 .cfi_endproc 1333 .LFE113: 1335 .section .text.HAL_I2C_MspInit,"ax",%progbits 1336 .align 1 1337 .weak HAL_I2C_MspInit 1338 .syntax unified 1339 .code 16 1340 .thumb_func 1341 .fpu softvfp ARM GAS /tmp/ccRVAHyi.s page 148 1343 HAL_I2C_MspInit: 1344 .LVL95: 1345 .LFB42: 679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1346 .loc 1 679 1 is_stmt 1 view -0 1347 .cfi_startproc 1348 @ args = 0, pretend = 0, frame = 0 1349 @ frame_needed = 0, uses_anonymous_args = 0 1350 @ link register save eliminated. 681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1351 .loc 1 681 3 view .LVU371 686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1352 .loc 1 686 1 is_stmt 0 view .LVU372 1353 @ sp needed 1354 0000 7047 bx lr 1355 .cfi_endproc 1356 .LFE42: 1358 .section .text.HAL_I2C_Init,"ax",%progbits 1359 .align 1 1360 .global HAL_I2C_Init 1361 .syntax unified 1362 .code 16 1363 .thumb_func 1364 .fpu softvfp 1366 HAL_I2C_Init: 1367 .LVL96: 1368 .LFB40: 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1369 .loc 1 523 1 is_stmt 1 view -0 1370 .cfi_startproc 1371 @ args = 0, pretend = 0, frame = 0 1372 @ frame_needed = 0, uses_anonymous_args = 0 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1373 .loc 1 523 1 is_stmt 0 view .LVU374 1374 0000 10B5 push {r4, lr} 1375 .LCFI11: 1376 .cfi_def_cfa_offset 8 1377 .cfi_offset 4, -8 1378 .cfi_offset 14, -4 1379 0002 041E subs r4, r0, #0 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1380 .loc 1 525 3 is_stmt 1 view .LVU375 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1381 .loc 1 525 6 is_stmt 0 view .LVU376 1382 0004 59D0 beq .L116 531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1383 .loc 1 531 3 is_stmt 1 view .LVU377 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1384 .loc 1 532 3 view .LVU378 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1385 .loc 1 533 3 view .LVU379 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1386 .loc 1 534 3 view .LVU380 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1387 .loc 1 535 3 view .LVU381 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1388 .loc 1 536 3 view .LVU382 ARM GAS /tmp/ccRVAHyi.s page 149 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1389 .loc 1 537 3 view .LVU383 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1390 .loc 1 538 3 view .LVU384 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1391 .loc 1 540 3 view .LVU385 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1392 .loc 1 540 11 is_stmt 0 view .LVU386 1393 0006 4123 movs r3, #65 1394 0008 C35C ldrb r3, [r0, r3] 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1395 .loc 1 540 6 view .LVU387 1396 000a 002B cmp r3, #0 1397 000c 43D0 beq .L117 1398 .LVL97: 1399 .L112: 571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1400 .loc 1 571 3 is_stmt 1 view .LVU388 571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1401 .loc 1 571 15 is_stmt 0 view .LVU389 1402 000e 4123 movs r3, #65 1403 0010 2422 movs r2, #36 1404 0012 E254 strb r2, [r4, r3] 574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1405 .loc 1 574 3 is_stmt 1 view .LVU390 1406 0014 2268 ldr r2, [r4] 1407 0016 1368 ldr r3, [r2] 1408 0018 0121 movs r1, #1 1409 001a 8B43 bics r3, r1 1410 001c 1360 str r3, [r2] 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1411 .loc 1 578 3 view .LVU391 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1412 .loc 1 578 7 is_stmt 0 view .LVU392 1413 001e 2268 ldr r2, [r4] 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1414 .loc 1 578 47 view .LVU393 1415 0020 274B ldr r3, .L120 1416 0022 6168 ldr r1, [r4, #4] 1417 0024 0B40 ands r3, r1 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1418 .loc 1 578 27 view .LVU394 1419 0026 1361 str r3, [r2, #16] 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1420 .loc 1 582 3 is_stmt 1 view .LVU395 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1421 .loc 1 582 7 is_stmt 0 view .LVU396 1422 0028 2268 ldr r2, [r4] 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1423 .loc 1 582 24 view .LVU397 1424 002a 9368 ldr r3, [r2, #8] 1425 002c 2549 ldr r1, .L120+4 1426 002e 0B40 ands r3, r1 1427 0030 9360 str r3, [r2, #8] 585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1428 .loc 1 585 3 is_stmt 1 view .LVU398 585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 150 1429 .loc 1 585 6 is_stmt 0 view .LVU399 1430 0032 E368 ldr r3, [r4, #12] 1431 0034 012B cmp r3, #1 1432 0036 34D0 beq .L118 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1433 .loc 1 591 5 is_stmt 1 view .LVU400 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1434 .loc 1 591 9 is_stmt 0 view .LVU401 1435 0038 2268 ldr r2, [r4] 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1436 .loc 1 591 63 view .LVU402 1437 003a 8423 movs r3, #132 1438 003c 1B02 lsls r3, r3, #8 1439 003e A168 ldr r1, [r4, #8] 1440 0040 0B43 orrs r3, r1 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1441 .loc 1 591 26 view .LVU403 1442 0042 9360 str r3, [r2, #8] 1443 .L114: 596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1444 .loc 1 596 3 is_stmt 1 view .LVU404 596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1445 .loc 1 596 6 is_stmt 0 view .LVU405 1446 0044 E368 ldr r3, [r4, #12] 1447 0046 022B cmp r3, #2 1448 0048 32D0 beq .L119 1449 .L115: 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1450 .loc 1 601 3 is_stmt 1 view .LVU406 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1451 .loc 1 601 7 is_stmt 0 view .LVU407 1452 004a 2268 ldr r2, [r4] 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1453 .loc 1 601 23 view .LVU408 1454 004c 5168 ldr r1, [r2, #4] 1455 004e 1E4B ldr r3, .L120+8 1456 0050 0B43 orrs r3, r1 1457 0052 5360 str r3, [r2, #4] 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1458 .loc 1 605 3 is_stmt 1 view .LVU409 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1459 .loc 1 605 7 is_stmt 0 view .LVU410 1460 0054 2268 ldr r2, [r4] 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1461 .loc 1 605 24 view .LVU411 1462 0056 D368 ldr r3, [r2, #12] 1463 0058 1A49 ldr r1, .L120+4 1464 005a 0B40 ands r3, r1 1465 005c D360 str r3, [r2, #12] 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1466 .loc 1 608 3 is_stmt 1 view .LVU412 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1467 .loc 1 608 54 is_stmt 0 view .LVU413 1468 005e 2369 ldr r3, [r4, #16] 1469 0060 6269 ldr r2, [r4, #20] 1470 0062 1343 orrs r3, r2 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 151 1471 .loc 1 609 56 view .LVU414 1472 0064 A269 ldr r2, [r4, #24] 1473 0066 1202 lsls r2, r2, #8 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1474 .loc 1 608 7 view .LVU415 1475 0068 2168 ldr r1, [r4] 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1476 .loc 1 608 79 view .LVU416 1477 006a 1343 orrs r3, r2 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1478 .loc 1 608 24 view .LVU417 1479 006c CB60 str r3, [r1, #12] 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1480 .loc 1 613 3 is_stmt 1 view .LVU418 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1481 .loc 1 613 7 is_stmt 0 view .LVU419 1482 006e 2268 ldr r2, [r4] 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1483 .loc 1 613 53 view .LVU420 1484 0070 E369 ldr r3, [r4, #28] 1485 0072 216A ldr r1, [r4, #32] 1486 0074 0B43 orrs r3, r1 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1487 .loc 1 613 23 view .LVU421 1488 0076 1360 str r3, [r2] 616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1489 .loc 1 616 3 is_stmt 1 view .LVU422 1490 0078 2268 ldr r2, [r4] 1491 007a 1368 ldr r3, [r2] 1492 007c 0121 movs r1, #1 1493 007e 0B43 orrs r3, r1 1494 0080 1360 str r3, [r2] 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1495 .loc 1 618 3 view .LVU423 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1496 .loc 1 618 19 is_stmt 0 view .LVU424 1497 0082 0023 movs r3, #0 1498 0084 6364 str r3, [r4, #68] 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1499 .loc 1 619 3 is_stmt 1 view .LVU425 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1500 .loc 1 619 15 is_stmt 0 view .LVU426 1501 0086 4122 movs r2, #65 1502 0088 1F31 adds r1, r1, #31 1503 008a A154 strb r1, [r4, r2] 620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1504 .loc 1 620 3 is_stmt 1 view .LVU427 620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1505 .loc 1 620 23 is_stmt 0 view .LVU428 1506 008c 2363 str r3, [r4, #48] 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1507 .loc 1 621 3 is_stmt 1 view .LVU429 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1508 .loc 1 621 14 is_stmt 0 view .LVU430 1509 008e 0132 adds r2, r2, #1 1510 0090 A354 strb r3, [r4, r2] 623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 152 1511 .loc 1 623 3 is_stmt 1 view .LVU431 623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1512 .loc 1 623 10 is_stmt 0 view .LVU432 1513 0092 0020 movs r0, #0 1514 .L111: 624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1515 .loc 1 624 1 view .LVU433 1516 @ sp needed 1517 .LVL98: 624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1518 .loc 1 624 1 view .LVU434 1519 0094 10BD pop {r4, pc} 1520 .LVL99: 1521 .L117: 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1522 .loc 1 543 5 is_stmt 1 view .LVU435 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1523 .loc 1 543 16 is_stmt 0 view .LVU436 1524 0096 4033 adds r3, r3, #64 1525 0098 0022 movs r2, #0 1526 009a C254 strb r2, [r0, r3] 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1527 .loc 1 567 5 is_stmt 1 view .LVU437 1528 009c FFF7FEFF bl HAL_I2C_MspInit 1529 .LVL100: 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1530 .loc 1 567 5 is_stmt 0 view .LVU438 1531 00a0 B5E7 b .L112 1532 .L118: 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1533 .loc 1 587 5 is_stmt 1 view .LVU439 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1534 .loc 1 587 9 is_stmt 0 view .LVU440 1535 00a2 2268 ldr r2, [r4] 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1536 .loc 1 587 44 view .LVU441 1537 00a4 8023 movs r3, #128 1538 00a6 1B02 lsls r3, r3, #8 1539 00a8 A168 ldr r1, [r4, #8] 1540 00aa 0B43 orrs r3, r1 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1541 .loc 1 587 26 view .LVU442 1542 00ac 9360 str r3, [r2, #8] 1543 00ae C9E7 b .L114 1544 .L119: 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1545 .loc 1 598 5 is_stmt 1 view .LVU443 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1546 .loc 1 598 9 is_stmt 0 view .LVU444 1547 00b0 2368 ldr r3, [r4] 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1548 .loc 1 598 25 view .LVU445 1549 00b2 8022 movs r2, #128 1550 00b4 1201 lsls r2, r2, #4 1551 00b6 5A60 str r2, [r3, #4] 1552 00b8 C7E7 b .L115 1553 .LVL101: ARM GAS /tmp/ccRVAHyi.s page 153 1554 .L116: 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1555 .loc 1 527 12 view .LVU446 1556 00ba 0120 movs r0, #1 1557 .LVL102: 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1558 .loc 1 527 12 view .LVU447 1559 00bc EAE7 b .L111 1560 .L121: 1561 00be C046 .align 2 1562 .L120: 1563 00c0 FFFFFFF0 .word -251658241 1564 00c4 FF7FFFFF .word -32769 1565 00c8 00800002 .word 33587200 1566 .cfi_endproc 1567 .LFE40: 1569 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1570 .align 1 1571 .weak HAL_I2C_MspDeInit 1572 .syntax unified 1573 .code 16 1574 .thumb_func 1575 .fpu softvfp 1577 HAL_I2C_MspDeInit: 1578 .LVL103: 1579 .LFB43: 695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1580 .loc 1 695 1 is_stmt 1 view -0 1581 .cfi_startproc 1582 @ args = 0, pretend = 0, frame = 0 1583 @ frame_needed = 0, uses_anonymous_args = 0 1584 @ link register save eliminated. 697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1585 .loc 1 697 3 view .LVU449 702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1586 .loc 1 702 1 is_stmt 0 view .LVU450 1587 @ sp needed 1588 0000 7047 bx lr 1589 .cfi_endproc 1590 .LFE43: 1592 .section .text.HAL_I2C_DeInit,"ax",%progbits 1593 .align 1 1594 .global HAL_I2C_DeInit 1595 .syntax unified 1596 .code 16 1597 .thumb_func 1598 .fpu softvfp 1600 HAL_I2C_DeInit: 1601 .LVL104: 1602 .LFB41: 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1603 .loc 1 633 1 is_stmt 1 view -0 1604 .cfi_startproc 1605 @ args = 0, pretend = 0, frame = 0 1606 @ frame_needed = 0, uses_anonymous_args = 0 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1607 .loc 1 633 1 is_stmt 0 view .LVU452 ARM GAS /tmp/ccRVAHyi.s page 154 1608 0000 70B5 push {r4, r5, r6, lr} 1609 .LCFI12: 1610 .cfi_def_cfa_offset 16 1611 .cfi_offset 4, -16 1612 .cfi_offset 5, -12 1613 .cfi_offset 6, -8 1614 .cfi_offset 14, -4 1615 0002 041E subs r4, r0, #0 635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1616 .loc 1 635 3 is_stmt 1 view .LVU453 635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1617 .loc 1 635 6 is_stmt 0 view .LVU454 1618 0004 13D0 beq .L125 641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1619 .loc 1 641 3 is_stmt 1 view .LVU455 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1620 .loc 1 643 3 view .LVU456 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1621 .loc 1 643 15 is_stmt 0 view .LVU457 1622 0006 4125 movs r5, #65 1623 0008 2423 movs r3, #36 1624 000a 4355 strb r3, [r0, r5] 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1625 .loc 1 646 3 is_stmt 1 view .LVU458 1626 000c 0268 ldr r2, [r0] 1627 000e 1368 ldr r3, [r2] 1628 0010 0121 movs r1, #1 1629 0012 8B43 bics r3, r1 1630 0014 1360 str r3, [r2] 658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1631 .loc 1 658 3 view .LVU459 1632 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1633 .LVL105: 661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1634 .loc 1 661 3 view .LVU460 661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1635 .loc 1 661 19 is_stmt 0 view .LVU461 1636 001a 0023 movs r3, #0 1637 001c 6364 str r3, [r4, #68] 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1638 .loc 1 662 3 is_stmt 1 view .LVU462 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1639 .loc 1 662 15 is_stmt 0 view .LVU463 1640 001e 6355 strb r3, [r4, r5] 663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1641 .loc 1 663 3 is_stmt 1 view .LVU464 663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1642 .loc 1 663 23 is_stmt 0 view .LVU465 1643 0020 2363 str r3, [r4, #48] 664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1644 .loc 1 664 3 is_stmt 1 view .LVU466 664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1645 .loc 1 664 14 is_stmt 0 view .LVU467 1646 0022 4222 movs r2, #66 1647 0024 A354 strb r3, [r4, r2] 667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1648 .loc 1 667 3 is_stmt 1 view .LVU468 ARM GAS /tmp/ccRVAHyi.s page 155 667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1649 .loc 1 667 3 view .LVU469 1650 0026 023A subs r2, r2, #2 1651 0028 A354 strb r3, [r4, r2] 669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1652 .loc 1 669 3 view .LVU470 669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1653 .loc 1 669 10 is_stmt 0 view .LVU471 1654 002a 0020 movs r0, #0 1655 .L124: 670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1656 .loc 1 670 1 view .LVU472 1657 @ sp needed 1658 .LVL106: 670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1659 .loc 1 670 1 view .LVU473 1660 002c 70BD pop {r4, r5, r6, pc} 1661 .LVL107: 1662 .L125: 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1663 .loc 1 637 12 view .LVU474 1664 002e 0120 movs r0, #1 1665 .LVL108: 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1666 .loc 1 637 12 view .LVU475 1667 0030 FCE7 b .L124 1668 .cfi_endproc 1669 .LFE41: 1671 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1672 .align 1 1673 .global HAL_I2C_Master_Transmit 1674 .syntax unified 1675 .code 16 1676 .thumb_func 1677 .fpu softvfp 1679 HAL_I2C_Master_Transmit: 1680 .LVL109: 1681 .LFB44: 1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1682 .loc 1 1117 1 is_stmt 1 view -0 1683 .cfi_startproc 1684 @ args = 4, pretend = 0, frame = 8 1685 @ frame_needed = 0, uses_anonymous_args = 0 1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1686 .loc 1 1117 1 is_stmt 0 view .LVU477 1687 0000 F0B5 push {r4, r5, r6, r7, lr} 1688 .LCFI13: 1689 .cfi_def_cfa_offset 20 1690 .cfi_offset 4, -20 1691 .cfi_offset 5, -16 1692 .cfi_offset 6, -12 1693 .cfi_offset 7, -8 1694 .cfi_offset 14, -4 1695 0002 85B0 sub sp, sp, #20 1696 .LCFI14: 1697 .cfi_def_cfa_offset 40 1698 0004 0500 movs r5, r0 ARM GAS /tmp/ccRVAHyi.s page 156 1699 0006 0391 str r1, [sp, #12] 1700 0008 1700 movs r7, r2 1701 000a 1E00 movs r6, r3 1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1702 .loc 1 1118 3 is_stmt 1 view .LVU478 1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1703 .loc 1 1120 3 view .LVU479 1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1704 .loc 1 1120 11 is_stmt 0 view .LVU480 1705 000c 4123 movs r3, #65 1706 .LVL110: 1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1707 .loc 1 1120 11 view .LVU481 1708 000e C35C ldrb r3, [r0, r3] 1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1709 .loc 1 1120 6 view .LVU482 1710 0010 202B cmp r3, #32 1711 0012 00D0 beq .LCB1585 1712 0014 99E0 b .L134 @long jump 1713 .LCB1585: 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1714 .loc 1 1123 5 is_stmt 1 view .LVU483 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1715 .loc 1 1123 5 view .LVU484 1716 0016 2033 adds r3, r3, #32 1717 0018 C35C ldrb r3, [r0, r3] 1718 001a 012B cmp r3, #1 1719 001c 00D1 bne .LCB1591 1720 001e 97E0 b .L135 @long jump 1721 .LCB1591: 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1722 .loc 1 1123 5 discriminator 2 view .LVU485 1723 0020 4023 movs r3, #64 1724 0022 0122 movs r2, #1 1725 .LVL111: 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1726 .loc 1 1123 5 is_stmt 0 discriminator 2 view .LVU486 1727 0024 C254 strb r2, [r0, r3] 1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1728 .loc 1 1126 5 is_stmt 1 discriminator 2 view .LVU487 1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1729 .loc 1 1126 17 is_stmt 0 discriminator 2 view .LVU488 1730 0026 FFF7FEFF bl HAL_GetTick 1731 .LVL112: 1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1732 .loc 1 1126 17 discriminator 2 view .LVU489 1733 002a 0400 movs r4, r0 1734 .LVL113: 1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1735 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU490 1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1736 .loc 1 1128 9 is_stmt 0 discriminator 2 view .LVU491 1737 002c 8021 movs r1, #128 1738 002e 0090 str r0, [sp] 1739 0030 1923 movs r3, #25 1740 0032 0122 movs r2, #1 1741 0034 0902 lsls r1, r1, #8 ARM GAS /tmp/ccRVAHyi.s page 157 1742 0036 2800 movs r0, r5 1743 .LVL114: 1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1744 .loc 1 1128 9 discriminator 2 view .LVU492 1745 0038 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1746 .LVL115: 1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1747 .loc 1 1128 8 discriminator 2 view .LVU493 1748 003c 0028 cmp r0, #0 1749 003e 00D0 beq .LCB1613 1750 0040 88E0 b .L136 @long jump 1751 .LCB1613: 1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1752 .loc 1 1133 5 is_stmt 1 view .LVU494 1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1753 .loc 1 1133 21 is_stmt 0 view .LVU495 1754 0042 4123 movs r3, #65 1755 0044 2122 movs r2, #33 1756 0046 EA54 strb r2, [r5, r3] 1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1757 .loc 1 1134 5 is_stmt 1 view .LVU496 1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1758 .loc 1 1134 21 is_stmt 0 view .LVU497 1759 0048 0133 adds r3, r3, #1 1760 004a 113A subs r2, r2, #17 1761 004c EA54 strb r2, [r5, r3] 1135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1762 .loc 1 1135 5 is_stmt 1 view .LVU498 1135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1763 .loc 1 1135 21 is_stmt 0 view .LVU499 1764 004e 0023 movs r3, #0 1765 0050 6B64 str r3, [r5, #68] 1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1766 .loc 1 1138 5 is_stmt 1 view .LVU500 1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1767 .loc 1 1138 21 is_stmt 0 view .LVU501 1768 0052 6F62 str r7, [r5, #36] 1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1769 .loc 1 1139 5 is_stmt 1 view .LVU502 1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1770 .loc 1 1139 21 is_stmt 0 view .LVU503 1771 0054 6E85 strh r6, [r5, #42] 1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1772 .loc 1 1140 5 is_stmt 1 view .LVU504 1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1773 .loc 1 1140 21 is_stmt 0 view .LVU505 1774 0056 6B63 str r3, [r5, #52] 1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1775 .loc 1 1144 5 is_stmt 1 view .LVU506 1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1776 .loc 1 1144 13 is_stmt 0 view .LVU507 1777 0058 6B8D ldrh r3, [r5, #42] 1778 005a 9BB2 uxth r3, r3 1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1779 .loc 1 1144 8 view .LVU508 1780 005c FF2B cmp r3, #255 1781 005e 0BD9 bls .L128 ARM GAS /tmp/ccRVAHyi.s page 158 1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1782 .loc 1 1146 7 is_stmt 1 view .LVU509 1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1783 .loc 1 1146 22 is_stmt 0 view .LVU510 1784 0060 FF23 movs r3, #255 1785 0062 2B85 strh r3, [r5, #40] 1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1786 .loc 1 1147 7 is_stmt 1 view .LVU511 1787 0064 7F3B subs r3, r3, #127 1788 0066 3F4A ldr r2, .L141 1789 0068 0092 str r2, [sp] 1790 006a 5B04 lsls r3, r3, #17 1791 006c FF22 movs r2, #255 1792 006e 0399 ldr r1, [sp, #12] 1793 0070 2800 movs r0, r5 1794 0072 FFF7FEFF bl I2C_TransferConfig 1795 .LVL116: 1796 0076 18E0 b .L130 1797 .L128: 1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1798 .loc 1 1152 7 view .LVU512 1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1799 .loc 1 1152 28 is_stmt 0 view .LVU513 1800 0078 6A8D ldrh r2, [r5, #42] 1801 007a 92B2 uxth r2, r2 1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1802 .loc 1 1152 22 view .LVU514 1803 007c 2A85 strh r2, [r5, #40] 1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1804 .loc 1 1153 7 is_stmt 1 view .LVU515 1805 007e 8023 movs r3, #128 1806 0080 D2B2 uxtb r2, r2 1807 0082 3849 ldr r1, .L141 1808 0084 0091 str r1, [sp] 1809 0086 9B04 lsls r3, r3, #18 1810 0088 0399 ldr r1, [sp, #12] 1811 008a 2800 movs r0, r5 1812 008c FFF7FEFF bl I2C_TransferConfig 1813 .LVL117: 1814 0090 0BE0 b .L130 1815 .L132: 1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1816 .loc 1 1189 11 view .LVU516 1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1817 .loc 1 1189 32 is_stmt 0 view .LVU517 1818 0092 6A8D ldrh r2, [r5, #42] 1819 0094 92B2 uxth r2, r2 1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1820 .loc 1 1189 26 view .LVU518 1821 0096 2A85 strh r2, [r5, #40] 1190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1822 .loc 1 1190 11 is_stmt 1 view .LVU519 1823 0098 8023 movs r3, #128 1824 009a D2B2 uxtb r2, r2 1825 009c 0021 movs r1, #0 1826 009e 0091 str r1, [sp] 1827 00a0 9B04 lsls r3, r3, #18 ARM GAS /tmp/ccRVAHyi.s page 159 1828 00a2 0399 ldr r1, [sp, #12] 1829 00a4 2800 movs r0, r5 1830 00a6 FFF7FEFF bl I2C_TransferConfig 1831 .LVL118: 1832 .L130: 1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1833 .loc 1 1157 16 is_stmt 0 view .LVU520 1834 00aa 6B8D ldrh r3, [r5, #42] 1835 00ac 9BB2 uxth r3, r3 1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1836 .loc 1 1157 11 view .LVU521 1837 00ae 002B cmp r3, #0 1838 00b0 34D0 beq .L140 1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1839 .loc 1 1160 7 is_stmt 1 view .LVU522 1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1840 .loc 1 1160 11 is_stmt 0 view .LVU523 1841 00b2 2200 movs r2, r4 1842 00b4 0A99 ldr r1, [sp, #40] 1843 00b6 2800 movs r0, r5 1844 00b8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1845 .LVL119: 1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1846 .loc 1 1160 10 view .LVU524 1847 00bc 0028 cmp r0, #0 1848 00be 4BD1 bne .L137 1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1849 .loc 1 1165 7 is_stmt 1 view .LVU525 1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1850 .loc 1 1165 11 is_stmt 0 view .LVU526 1851 00c0 2B68 ldr r3, [r5] 1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1852 .loc 1 1165 30 view .LVU527 1853 00c2 6A6A ldr r2, [r5, #36] 1854 00c4 1278 ldrb r2, [r2] 1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1855 .loc 1 1165 28 view .LVU528 1856 00c6 9A62 str r2, [r3, #40] 1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1857 .loc 1 1168 7 is_stmt 1 view .LVU529 1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1858 .loc 1 1168 21 is_stmt 0 view .LVU530 1859 00c8 6B6A ldr r3, [r5, #36] 1860 00ca 0133 adds r3, r3, #1 1861 00cc 6B62 str r3, [r5, #36] 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1862 .loc 1 1170 7 is_stmt 1 view .LVU531 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1863 .loc 1 1170 11 is_stmt 0 view .LVU532 1864 00ce 6B8D ldrh r3, [r5, #42] 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1865 .loc 1 1170 22 view .LVU533 1866 00d0 013B subs r3, r3, #1 1867 00d2 9BB2 uxth r3, r3 1868 00d4 6B85 strh r3, [r5, #42] 1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1869 .loc 1 1171 7 is_stmt 1 view .LVU534 ARM GAS /tmp/ccRVAHyi.s page 160 1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1870 .loc 1 1171 11 is_stmt 0 view .LVU535 1871 00d6 2B8D ldrh r3, [r5, #40] 1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1872 .loc 1 1171 21 view .LVU536 1873 00d8 013B subs r3, r3, #1 1874 00da 9BB2 uxth r3, r3 1875 00dc 2B85 strh r3, [r5, #40] 1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1876 .loc 1 1173 7 is_stmt 1 view .LVU537 1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1877 .loc 1 1173 16 is_stmt 0 view .LVU538 1878 00de 6A8D ldrh r2, [r5, #42] 1879 00e0 92B2 uxth r2, r2 1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1880 .loc 1 1173 10 view .LVU539 1881 00e2 002A cmp r2, #0 1882 00e4 E1D0 beq .L130 1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1883 .loc 1 1173 35 discriminator 1 view .LVU540 1884 00e6 002B cmp r3, #0 1885 00e8 DFD1 bne .L130 1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1886 .loc 1 1176 9 is_stmt 1 view .LVU541 1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1887 .loc 1 1176 13 is_stmt 0 view .LVU542 1888 00ea 0094 str r4, [sp] 1889 00ec 0A9B ldr r3, [sp, #40] 1890 00ee 0022 movs r2, #0 1891 00f0 8021 movs r1, #128 1892 00f2 2800 movs r0, r5 1893 00f4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1894 .LVL120: 1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1895 .loc 1 1176 12 view .LVU543 1896 00f8 0028 cmp r0, #0 1897 00fa 2FD1 bne .L138 1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1898 .loc 1 1181 9 is_stmt 1 view .LVU544 1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1899 .loc 1 1181 17 is_stmt 0 view .LVU545 1900 00fc 6B8D ldrh r3, [r5, #42] 1901 00fe 9BB2 uxth r3, r3 1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1902 .loc 1 1181 12 view .LVU546 1903 0100 FF2B cmp r3, #255 1904 0102 C6D9 bls .L132 1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1905 .loc 1 1183 11 is_stmt 1 view .LVU547 1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1906 .loc 1 1183 26 is_stmt 0 view .LVU548 1907 0104 FF23 movs r3, #255 1908 0106 2B85 strh r3, [r5, #40] 1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1909 .loc 1 1184 11 is_stmt 1 view .LVU549 1910 0108 7F3B subs r3, r3, #127 1911 010a 0022 movs r2, #0 ARM GAS /tmp/ccRVAHyi.s page 161 1912 010c 0092 str r2, [sp] 1913 010e 5B04 lsls r3, r3, #17 1914 0110 FF32 adds r2, r2, #255 1915 0112 0399 ldr r1, [sp, #12] 1916 0114 2800 movs r0, r5 1917 0116 FFF7FEFF bl I2C_TransferConfig 1918 .LVL121: 1919 011a C6E7 b .L130 1920 .L140: 1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1921 .loc 1 1198 5 view .LVU550 1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1922 .loc 1 1198 9 is_stmt 0 view .LVU551 1923 011c 2200 movs r2, r4 1924 011e 0A99 ldr r1, [sp, #40] 1925 0120 2800 movs r0, r5 1926 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 1927 .LVL122: 1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1928 .loc 1 1198 8 view .LVU552 1929 0126 0028 cmp r0, #0 1930 0128 1AD1 bne .L139 1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1931 .loc 1 1204 5 is_stmt 1 view .LVU553 1932 012a 2B68 ldr r3, [r5] 1933 012c 2022 movs r2, #32 1934 012e DA61 str r2, [r3, #28] 1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1935 .loc 1 1207 5 view .LVU554 1936 0130 2968 ldr r1, [r5] 1937 0132 4B68 ldr r3, [r1, #4] 1938 0134 0C4C ldr r4, .L141+4 1939 .LVL123: 1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1940 .loc 1 1207 5 is_stmt 0 view .LVU555 1941 0136 2340 ands r3, r4 1942 0138 4B60 str r3, [r1, #4] 1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1943 .loc 1 1209 5 is_stmt 1 view .LVU556 1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1944 .loc 1 1209 17 is_stmt 0 view .LVU557 1945 013a 4123 movs r3, #65 1946 013c EA54 strb r2, [r5, r3] 1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1947 .loc 1 1210 5 is_stmt 1 view .LVU558 1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1948 .loc 1 1210 17 is_stmt 0 view .LVU559 1949 013e 0023 movs r3, #0 1950 0140 2232 adds r2, r2, #34 1951 0142 AB54 strb r3, [r5, r2] 1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1952 .loc 1 1213 5 is_stmt 1 view .LVU560 1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1953 .loc 1 1213 5 view .LVU561 1954 0144 023A subs r2, r2, #2 1955 0146 AB54 strb r3, [r5, r2] 1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 162 1956 .loc 1 1215 5 view .LVU562 1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1957 .loc 1 1215 12 is_stmt 0 view .LVU563 1958 0148 00E0 b .L127 1959 .LVL124: 1960 .L134: 1219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1961 .loc 1 1219 12 view .LVU564 1962 014a 0220 movs r0, #2 1963 .LVL125: 1964 .L127: 1221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1965 .loc 1 1221 1 view .LVU565 1966 014c 05B0 add sp, sp, #20 1967 @ sp needed 1968 .LVL126: 1969 .LVL127: 1221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1970 .loc 1 1221 1 view .LVU566 1971 014e F0BD pop {r4, r5, r6, r7, pc} 1972 .LVL128: 1973 .L135: 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1974 .loc 1 1123 5 view .LVU567 1975 0150 0220 movs r0, #2 1976 .LVL129: 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1977 .loc 1 1123 5 view .LVU568 1978 0152 FBE7 b .L127 1979 .LVL130: 1980 .L136: 1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1981 .loc 1 1130 14 view .LVU569 1982 0154 0120 movs r0, #1 1983 0156 F9E7 b .L127 1984 .L137: 1162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1985 .loc 1 1162 16 view .LVU570 1986 0158 0120 movs r0, #1 1987 015a F7E7 b .L127 1988 .L138: 1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1989 .loc 1 1178 18 view .LVU571 1990 015c 0120 movs r0, #1 1991 015e F5E7 b .L127 1992 .L139: 1200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1993 .loc 1 1200 14 view .LVU572 1994 0160 0120 movs r0, #1 1995 0162 F3E7 b .L127 1996 .L142: 1997 .align 2 1998 .L141: 1999 0164 00200080 .word -2147475456 2000 0168 00E800FE .word -33495040 2001 .cfi_endproc 2002 .LFE44: ARM GAS /tmp/ccRVAHyi.s page 163 2004 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2005 .align 1 2006 .global HAL_I2C_Master_Receive 2007 .syntax unified 2008 .code 16 2009 .thumb_func 2010 .fpu softvfp 2012 HAL_I2C_Master_Receive: 2013 .LVL131: 2014 .LFB45: 1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2015 .loc 1 1236 1 is_stmt 1 view -0 2016 .cfi_startproc 2017 @ args = 4, pretend = 0, frame = 8 2018 @ frame_needed = 0, uses_anonymous_args = 0 1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2019 .loc 1 1236 1 is_stmt 0 view .LVU574 2020 0000 F0B5 push {r4, r5, r6, r7, lr} 2021 .LCFI15: 2022 .cfi_def_cfa_offset 20 2023 .cfi_offset 4, -20 2024 .cfi_offset 5, -16 2025 .cfi_offset 6, -12 2026 .cfi_offset 7, -8 2027 .cfi_offset 14, -4 2028 0002 85B0 sub sp, sp, #20 2029 .LCFI16: 2030 .cfi_def_cfa_offset 40 2031 0004 0500 movs r5, r0 2032 0006 0391 str r1, [sp, #12] 2033 0008 1700 movs r7, r2 2034 000a 1E00 movs r6, r3 1237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2035 .loc 1 1237 3 is_stmt 1 view .LVU575 1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2036 .loc 1 1239 3 view .LVU576 1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2037 .loc 1 1239 11 is_stmt 0 view .LVU577 2038 000c 4123 movs r3, #65 2039 .LVL132: 1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2040 .loc 1 1239 11 view .LVU578 2041 000e C35C ldrb r3, [r0, r3] 1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2042 .loc 1 1239 6 view .LVU579 2043 0010 202B cmp r3, #32 2044 0012 00D0 beq .LCB1899 2045 0014 99E0 b .L151 @long jump 2046 .LCB1899: 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2047 .loc 1 1242 5 is_stmt 1 view .LVU580 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2048 .loc 1 1242 5 view .LVU581 2049 0016 2033 adds r3, r3, #32 2050 0018 C35C ldrb r3, [r0, r3] 2051 001a 012B cmp r3, #1 2052 001c 00D1 bne .LCB1905 ARM GAS /tmp/ccRVAHyi.s page 164 2053 001e 97E0 b .L152 @long jump 2054 .LCB1905: 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2055 .loc 1 1242 5 discriminator 2 view .LVU582 2056 0020 4023 movs r3, #64 2057 0022 0122 movs r2, #1 2058 .LVL133: 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2059 .loc 1 1242 5 is_stmt 0 discriminator 2 view .LVU583 2060 0024 C254 strb r2, [r0, r3] 1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2061 .loc 1 1245 5 is_stmt 1 discriminator 2 view .LVU584 1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2062 .loc 1 1245 17 is_stmt 0 discriminator 2 view .LVU585 2063 0026 FFF7FEFF bl HAL_GetTick 2064 .LVL134: 1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2065 .loc 1 1245 17 discriminator 2 view .LVU586 2066 002a 0400 movs r4, r0 2067 .LVL135: 1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2068 .loc 1 1247 5 is_stmt 1 discriminator 2 view .LVU587 1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2069 .loc 1 1247 9 is_stmt 0 discriminator 2 view .LVU588 2070 002c 8021 movs r1, #128 2071 002e 0090 str r0, [sp] 2072 0030 1923 movs r3, #25 2073 0032 0122 movs r2, #1 2074 0034 0902 lsls r1, r1, #8 2075 0036 2800 movs r0, r5 2076 .LVL136: 1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2077 .loc 1 1247 9 discriminator 2 view .LVU589 2078 0038 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2079 .LVL137: 1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2080 .loc 1 1247 8 discriminator 2 view .LVU590 2081 003c 0028 cmp r0, #0 2082 003e 00D0 beq .LCB1927 2083 0040 88E0 b .L153 @long jump 2084 .LCB1927: 1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2085 .loc 1 1252 5 is_stmt 1 view .LVU591 1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2086 .loc 1 1252 21 is_stmt 0 view .LVU592 2087 0042 4123 movs r3, #65 2088 0044 2222 movs r2, #34 2089 0046 EA54 strb r2, [r5, r3] 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2090 .loc 1 1253 5 is_stmt 1 view .LVU593 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2091 .loc 1 1253 21 is_stmt 0 view .LVU594 2092 0048 0133 adds r3, r3, #1 2093 004a 123A subs r2, r2, #18 2094 004c EA54 strb r2, [r5, r3] 1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2095 .loc 1 1254 5 is_stmt 1 view .LVU595 ARM GAS /tmp/ccRVAHyi.s page 165 1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2096 .loc 1 1254 21 is_stmt 0 view .LVU596 2097 004e 0023 movs r3, #0 2098 0050 6B64 str r3, [r5, #68] 1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2099 .loc 1 1257 5 is_stmt 1 view .LVU597 1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2100 .loc 1 1257 21 is_stmt 0 view .LVU598 2101 0052 6F62 str r7, [r5, #36] 1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2102 .loc 1 1258 5 is_stmt 1 view .LVU599 1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2103 .loc 1 1258 21 is_stmt 0 view .LVU600 2104 0054 6E85 strh r6, [r5, #42] 1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2105 .loc 1 1259 5 is_stmt 1 view .LVU601 1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2106 .loc 1 1259 21 is_stmt 0 view .LVU602 2107 0056 6B63 str r3, [r5, #52] 1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2108 .loc 1 1263 5 is_stmt 1 view .LVU603 1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2109 .loc 1 1263 13 is_stmt 0 view .LVU604 2110 0058 6B8D ldrh r3, [r5, #42] 2111 005a 9BB2 uxth r3, r3 1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2112 .loc 1 1263 8 view .LVU605 2113 005c FF2B cmp r3, #255 2114 005e 0BD9 bls .L145 1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2115 .loc 1 1265 7 is_stmt 1 view .LVU606 1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2116 .loc 1 1265 22 is_stmt 0 view .LVU607 2117 0060 FF23 movs r3, #255 2118 0062 2B85 strh r3, [r5, #40] 1266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2119 .loc 1 1266 7 is_stmt 1 view .LVU608 2120 0064 7F3B subs r3, r3, #127 2121 0066 3F4A ldr r2, .L158 2122 0068 0092 str r2, [sp] 2123 006a 5B04 lsls r3, r3, #17 2124 006c FF22 movs r2, #255 2125 006e 0399 ldr r1, [sp, #12] 2126 0070 2800 movs r0, r5 2127 0072 FFF7FEFF bl I2C_TransferConfig 2128 .LVL138: 2129 0076 18E0 b .L147 2130 .L145: 1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2131 .loc 1 1271 7 view .LVU609 1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2132 .loc 1 1271 28 is_stmt 0 view .LVU610 2133 0078 6A8D ldrh r2, [r5, #42] 2134 007a 92B2 uxth r2, r2 1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2135 .loc 1 1271 22 view .LVU611 2136 007c 2A85 strh r2, [r5, #40] ARM GAS /tmp/ccRVAHyi.s page 166 1272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2137 .loc 1 1272 7 is_stmt 1 view .LVU612 2138 007e 8023 movs r3, #128 2139 0080 D2B2 uxtb r2, r2 2140 0082 3849 ldr r1, .L158 2141 0084 0091 str r1, [sp] 2142 0086 9B04 lsls r3, r3, #18 2143 0088 0399 ldr r1, [sp, #12] 2144 008a 2800 movs r0, r5 2145 008c FFF7FEFF bl I2C_TransferConfig 2146 .LVL139: 2147 0090 0BE0 b .L147 2148 .L149: 1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2149 .loc 1 1309 11 view .LVU613 1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2150 .loc 1 1309 32 is_stmt 0 view .LVU614 2151 0092 6A8D ldrh r2, [r5, #42] 2152 0094 92B2 uxth r2, r2 1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2153 .loc 1 1309 26 view .LVU615 2154 0096 2A85 strh r2, [r5, #40] 1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2155 .loc 1 1310 11 is_stmt 1 view .LVU616 2156 0098 8023 movs r3, #128 2157 009a D2B2 uxtb r2, r2 2158 009c 0021 movs r1, #0 2159 009e 0091 str r1, [sp] 2160 00a0 9B04 lsls r3, r3, #18 2161 00a2 0399 ldr r1, [sp, #12] 2162 00a4 2800 movs r0, r5 2163 00a6 FFF7FEFF bl I2C_TransferConfig 2164 .LVL140: 2165 .L147: 1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2166 .loc 1 1276 16 is_stmt 0 view .LVU617 2167 00aa 6B8D ldrh r3, [r5, #42] 2168 00ac 9BB2 uxth r3, r3 1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2169 .loc 1 1276 11 view .LVU618 2170 00ae 002B cmp r3, #0 2171 00b0 34D0 beq .L157 1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2172 .loc 1 1279 7 is_stmt 1 view .LVU619 1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2173 .loc 1 1279 11 is_stmt 0 view .LVU620 2174 00b2 2200 movs r2, r4 2175 00b4 0A99 ldr r1, [sp, #40] 2176 00b6 2800 movs r0, r5 2177 00b8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2178 .LVL141: 1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2179 .loc 1 1279 10 view .LVU621 2180 00bc 0028 cmp r0, #0 2181 00be 4BD1 bne .L154 1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2182 .loc 1 1285 7 is_stmt 1 view .LVU622 ARM GAS /tmp/ccRVAHyi.s page 167 1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2183 .loc 1 1285 38 is_stmt 0 view .LVU623 2184 00c0 2B68 ldr r3, [r5] 1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2185 .loc 1 1285 48 view .LVU624 2186 00c2 5B6A ldr r3, [r3, #36] 1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2187 .loc 1 1285 23 view .LVU625 2188 00c4 6A6A ldr r2, [r5, #36] 2189 00c6 1370 strb r3, [r2] 1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2190 .loc 1 1288 7 is_stmt 1 view .LVU626 1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2191 .loc 1 1288 21 is_stmt 0 view .LVU627 2192 00c8 6B6A ldr r3, [r5, #36] 2193 00ca 0133 adds r3, r3, #1 2194 00cc 6B62 str r3, [r5, #36] 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2195 .loc 1 1290 7 is_stmt 1 view .LVU628 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2196 .loc 1 1290 11 is_stmt 0 view .LVU629 2197 00ce 2B8D ldrh r3, [r5, #40] 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2198 .loc 1 1290 21 view .LVU630 2199 00d0 013B subs r3, r3, #1 2200 00d2 9BB2 uxth r3, r3 2201 00d4 2B85 strh r3, [r5, #40] 1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2202 .loc 1 1291 7 is_stmt 1 view .LVU631 1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2203 .loc 1 1291 11 is_stmt 0 view .LVU632 2204 00d6 6A8D ldrh r2, [r5, #42] 1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2205 .loc 1 1291 22 view .LVU633 2206 00d8 013A subs r2, r2, #1 2207 00da 92B2 uxth r2, r2 2208 00dc 6A85 strh r2, [r5, #42] 1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2209 .loc 1 1293 7 is_stmt 1 view .LVU634 1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2210 .loc 1 1293 16 is_stmt 0 view .LVU635 2211 00de 6A8D ldrh r2, [r5, #42] 2212 00e0 92B2 uxth r2, r2 1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2213 .loc 1 1293 10 view .LVU636 2214 00e2 002A cmp r2, #0 2215 00e4 E1D0 beq .L147 1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2216 .loc 1 1293 35 discriminator 1 view .LVU637 2217 00e6 002B cmp r3, #0 2218 00e8 DFD1 bne .L147 1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2219 .loc 1 1296 9 is_stmt 1 view .LVU638 1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2220 .loc 1 1296 13 is_stmt 0 view .LVU639 2221 00ea 0094 str r4, [sp] 2222 00ec 0A9B ldr r3, [sp, #40] ARM GAS /tmp/ccRVAHyi.s page 168 2223 00ee 0022 movs r2, #0 2224 00f0 8021 movs r1, #128 2225 00f2 2800 movs r0, r5 2226 00f4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2227 .LVL142: 1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2228 .loc 1 1296 12 view .LVU640 2229 00f8 0028 cmp r0, #0 2230 00fa 2FD1 bne .L155 1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2231 .loc 1 1301 9 is_stmt 1 view .LVU641 1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2232 .loc 1 1301 17 is_stmt 0 view .LVU642 2233 00fc 6B8D ldrh r3, [r5, #42] 2234 00fe 9BB2 uxth r3, r3 1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2235 .loc 1 1301 12 view .LVU643 2236 0100 FF2B cmp r3, #255 2237 0102 C6D9 bls .L149 1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2238 .loc 1 1303 11 is_stmt 1 view .LVU644 1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2239 .loc 1 1303 26 is_stmt 0 view .LVU645 2240 0104 FF23 movs r3, #255 2241 0106 2B85 strh r3, [r5, #40] 1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2242 .loc 1 1304 11 is_stmt 1 view .LVU646 2243 0108 7F3B subs r3, r3, #127 2244 010a 0022 movs r2, #0 2245 010c 0092 str r2, [sp] 2246 010e 5B04 lsls r3, r3, #17 2247 0110 FF32 adds r2, r2, #255 2248 0112 0399 ldr r1, [sp, #12] 2249 0114 2800 movs r0, r5 2250 0116 FFF7FEFF bl I2C_TransferConfig 2251 .LVL143: 2252 011a C6E7 b .L147 2253 .L157: 1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2254 .loc 1 1318 5 view .LVU647 1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2255 .loc 1 1318 9 is_stmt 0 view .LVU648 2256 011c 2200 movs r2, r4 2257 011e 0A99 ldr r1, [sp, #40] 2258 0120 2800 movs r0, r5 2259 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2260 .LVL144: 1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2261 .loc 1 1318 8 view .LVU649 2262 0126 0028 cmp r0, #0 2263 0128 1AD1 bne .L156 1324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2264 .loc 1 1324 5 is_stmt 1 view .LVU650 2265 012a 2B68 ldr r3, [r5] 2266 012c 2022 movs r2, #32 2267 012e DA61 str r2, [r3, #28] 1327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 169 2268 .loc 1 1327 5 view .LVU651 2269 0130 2968 ldr r1, [r5] 2270 0132 4B68 ldr r3, [r1, #4] 2271 0134 0C4C ldr r4, .L158+4 2272 .LVL145: 1327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2273 .loc 1 1327 5 is_stmt 0 view .LVU652 2274 0136 2340 ands r3, r4 2275 0138 4B60 str r3, [r1, #4] 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2276 .loc 1 1329 5 is_stmt 1 view .LVU653 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2277 .loc 1 1329 17 is_stmt 0 view .LVU654 2278 013a 4123 movs r3, #65 2279 013c EA54 strb r2, [r5, r3] 1330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2280 .loc 1 1330 5 is_stmt 1 view .LVU655 1330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2281 .loc 1 1330 17 is_stmt 0 view .LVU656 2282 013e 0023 movs r3, #0 2283 0140 2232 adds r2, r2, #34 2284 0142 AB54 strb r3, [r5, r2] 1333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2285 .loc 1 1333 5 is_stmt 1 view .LVU657 1333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2286 .loc 1 1333 5 view .LVU658 2287 0144 023A subs r2, r2, #2 2288 0146 AB54 strb r3, [r5, r2] 1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2289 .loc 1 1335 5 view .LVU659 1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2290 .loc 1 1335 12 is_stmt 0 view .LVU660 2291 0148 00E0 b .L144 2292 .LVL146: 2293 .L151: 1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2294 .loc 1 1339 12 view .LVU661 2295 014a 0220 movs r0, #2 2296 .LVL147: 2297 .L144: 1341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2298 .loc 1 1341 1 view .LVU662 2299 014c 05B0 add sp, sp, #20 2300 @ sp needed 2301 .LVL148: 2302 .LVL149: 1341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2303 .loc 1 1341 1 view .LVU663 2304 014e F0BD pop {r4, r5, r6, r7, pc} 2305 .LVL150: 2306 .L152: 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2307 .loc 1 1242 5 view .LVU664 2308 0150 0220 movs r0, #2 2309 .LVL151: 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2310 .loc 1 1242 5 view .LVU665 ARM GAS /tmp/ccRVAHyi.s page 170 2311 0152 FBE7 b .L144 2312 .LVL152: 2313 .L153: 1249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2314 .loc 1 1249 14 view .LVU666 2315 0154 0120 movs r0, #1 2316 0156 F9E7 b .L144 2317 .L154: 1281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2318 .loc 1 1281 16 view .LVU667 2319 0158 0120 movs r0, #1 2320 015a F7E7 b .L144 2321 .L155: 1298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2322 .loc 1 1298 18 view .LVU668 2323 015c 0120 movs r0, #1 2324 015e F5E7 b .L144 2325 .L156: 1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2326 .loc 1 1320 14 view .LVU669 2327 0160 0120 movs r0, #1 2328 0162 F3E7 b .L144 2329 .L159: 2330 .align 2 2331 .L158: 2332 0164 00240080 .word -2147474432 2333 0168 00E800FE .word -33495040 2334 .cfi_endproc 2335 .LFE45: 2337 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2338 .align 1 2339 .global HAL_I2C_Slave_Transmit 2340 .syntax unified 2341 .code 16 2342 .thumb_func 2343 .fpu softvfp 2345 HAL_I2C_Slave_Transmit: 2346 .LVL153: 2347 .LFB46: 1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2348 .loc 1 1354 1 is_stmt 1 view -0 2349 .cfi_startproc 2350 @ args = 0, pretend = 0, frame = 8 2351 @ frame_needed = 0, uses_anonymous_args = 0 1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2352 .loc 1 1354 1 is_stmt 0 view .LVU671 2353 0000 F0B5 push {r4, r5, r6, r7, lr} 2354 .LCFI17: 2355 .cfi_def_cfa_offset 20 2356 .cfi_offset 4, -20 2357 .cfi_offset 5, -16 2358 .cfi_offset 6, -12 2359 .cfi_offset 7, -8 2360 .cfi_offset 14, -4 2361 0002 85B0 sub sp, sp, #20 2362 .LCFI18: 2363 .cfi_def_cfa_offset 40 ARM GAS /tmp/ccRVAHyi.s page 171 2364 0004 0400 movs r4, r0 2365 0006 0F00 movs r7, r1 2366 0008 1500 movs r5, r2 2367 000a 0393 str r3, [sp, #12] 1355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2368 .loc 1 1355 3 is_stmt 1 view .LVU672 1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2369 .loc 1 1357 3 view .LVU673 1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2370 .loc 1 1357 11 is_stmt 0 view .LVU674 2371 000c 4123 movs r3, #65 2372 .LVL154: 1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2373 .loc 1 1357 11 view .LVU675 2374 000e C35C ldrb r3, [r0, r3] 1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2375 .loc 1 1357 6 view .LVU676 2376 0010 202B cmp r3, #32 2377 0012 00D0 beq .LCB2211 2378 0014 B6E0 b .L172 @long jump 2379 .LCB2211: 1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2380 .loc 1 1359 5 is_stmt 1 view .LVU677 1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2381 .loc 1 1359 8 is_stmt 0 view .LVU678 2382 0016 0029 cmp r1, #0 2383 0018 4CD0 beq .L162 1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2384 .loc 1 1359 25 discriminator 1 view .LVU679 2385 001a 002A cmp r2, #0 2386 001c 4AD0 beq .L162 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2387 .loc 1 1365 5 is_stmt 1 view .LVU680 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2388 .loc 1 1365 5 view .LVU681 2389 001e 4023 movs r3, #64 2390 0020 C35C ldrb r3, [r0, r3] 2391 0022 012B cmp r3, #1 2392 0024 00D1 bne .LCB2222 2393 0026 B0E0 b .L173 @long jump 2394 .LCB2222: 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2395 .loc 1 1365 5 discriminator 2 view .LVU682 2396 0028 4023 movs r3, #64 2397 002a 0122 movs r2, #1 2398 .LVL155: 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2399 .loc 1 1365 5 is_stmt 0 discriminator 2 view .LVU683 2400 002c C254 strb r2, [r0, r3] 1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2401 .loc 1 1368 5 is_stmt 1 discriminator 2 view .LVU684 1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2402 .loc 1 1368 17 is_stmt 0 discriminator 2 view .LVU685 2403 002e FFF7FEFF bl HAL_GetTick 2404 .LVL156: 1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2405 .loc 1 1368 17 discriminator 2 view .LVU686 ARM GAS /tmp/ccRVAHyi.s page 172 2406 0032 0600 movs r6, r0 2407 .LVL157: 1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2408 .loc 1 1370 5 is_stmt 1 discriminator 2 view .LVU687 1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2409 .loc 1 1370 21 is_stmt 0 discriminator 2 view .LVU688 2410 0034 4123 movs r3, #65 2411 0036 2122 movs r2, #33 2412 0038 E254 strb r2, [r4, r3] 1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2413 .loc 1 1371 5 is_stmt 1 discriminator 2 view .LVU689 1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2414 .loc 1 1371 21 is_stmt 0 discriminator 2 view .LVU690 2415 003a 0133 adds r3, r3, #1 2416 003c 013A subs r2, r2, #1 2417 003e E254 strb r2, [r4, r3] 1372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2418 .loc 1 1372 5 is_stmt 1 discriminator 2 view .LVU691 1372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2419 .loc 1 1372 21 is_stmt 0 discriminator 2 view .LVU692 2420 0040 0023 movs r3, #0 2421 0042 6364 str r3, [r4, #68] 1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2422 .loc 1 1375 5 is_stmt 1 discriminator 2 view .LVU693 1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2423 .loc 1 1375 21 is_stmt 0 discriminator 2 view .LVU694 2424 0044 6762 str r7, [r4, #36] 1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2425 .loc 1 1376 5 is_stmt 1 discriminator 2 view .LVU695 1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2426 .loc 1 1376 21 is_stmt 0 discriminator 2 view .LVU696 2427 0046 6585 strh r5, [r4, #42] 1377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2428 .loc 1 1377 5 is_stmt 1 discriminator 2 view .LVU697 1377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2429 .loc 1 1377 21 is_stmt 0 discriminator 2 view .LVU698 2430 0048 6363 str r3, [r4, #52] 1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2431 .loc 1 1380 5 is_stmt 1 discriminator 2 view .LVU699 1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2432 .loc 1 1380 9 is_stmt 0 discriminator 2 view .LVU700 2433 004a 2268 ldr r2, [r4] 1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2434 .loc 1 1380 25 discriminator 2 view .LVU701 2435 004c 5368 ldr r3, [r2, #4] 2436 004e 5149 ldr r1, .L181 2437 0050 0B40 ands r3, r1 2438 0052 5360 str r3, [r2, #4] 1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2439 .loc 1 1383 5 is_stmt 1 discriminator 2 view .LVU702 1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2440 .loc 1 1383 9 is_stmt 0 discriminator 2 view .LVU703 2441 0054 0090 str r0, [sp] 2442 0056 039B ldr r3, [sp, #12] 2443 0058 0022 movs r2, #0 2444 005a 0821 movs r1, #8 2445 005c 2000 movs r0, r4 ARM GAS /tmp/ccRVAHyi.s page 173 2446 .LVL158: 1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2447 .loc 1 1383 9 discriminator 2 view .LVU704 2448 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2449 .LVL159: 1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2450 .loc 1 1383 8 discriminator 2 view .LVU705 2451 0062 0028 cmp r0, #0 2452 0064 2BD1 bne .L175 1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2453 .loc 1 1391 5 is_stmt 1 view .LVU706 2454 0066 2368 ldr r3, [r4] 2455 0068 0822 movs r2, #8 2456 006a DA61 str r2, [r3, #28] 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2457 .loc 1 1394 5 view .LVU707 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2458 .loc 1 1394 8 is_stmt 0 view .LVU708 2459 006c E368 ldr r3, [r4, #12] 2460 006e 022B cmp r3, #2 2461 0070 2DD0 beq .L176 2462 .L165: 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2463 .loc 1 1409 5 is_stmt 1 view .LVU709 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2464 .loc 1 1409 9 is_stmt 0 view .LVU710 2465 0072 8021 movs r1, #128 2466 0074 0096 str r6, [sp] 2467 0076 039B ldr r3, [sp, #12] 2468 0078 0022 movs r2, #0 2469 007a 4902 lsls r1, r1, #9 2470 007c 2000 movs r0, r4 2471 007e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2472 .LVL160: 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2473 .loc 1 1409 8 view .LVU711 2474 0082 0028 cmp r0, #0 2475 0084 38D1 bne .L177 2476 .L167: 1416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2477 .loc 1 1416 16 view .LVU712 2478 0086 638D ldrh r3, [r4, #42] 2479 0088 9BB2 uxth r3, r3 1416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2480 .loc 1 1416 11 view .LVU713 2481 008a 002B cmp r3, #0 2482 008c 44D0 beq .L178 1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2483 .loc 1 1419 7 is_stmt 1 view .LVU714 1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2484 .loc 1 1419 11 is_stmt 0 view .LVU715 2485 008e 3200 movs r2, r6 2486 0090 0399 ldr r1, [sp, #12] 2487 0092 2000 movs r0, r4 2488 0094 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2489 .LVL161: 1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 174 2490 .loc 1 1419 10 view .LVU716 2491 0098 0028 cmp r0, #0 2492 009a 35D1 bne .L179 1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2493 .loc 1 1427 7 is_stmt 1 view .LVU717 1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2494 .loc 1 1427 11 is_stmt 0 view .LVU718 2495 009c 2368 ldr r3, [r4] 1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2496 .loc 1 1427 30 view .LVU719 2497 009e 626A ldr r2, [r4, #36] 2498 00a0 1278 ldrb r2, [r2] 1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2499 .loc 1 1427 28 view .LVU720 2500 00a2 9A62 str r2, [r3, #40] 1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2501 .loc 1 1430 7 is_stmt 1 view .LVU721 1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2502 .loc 1 1430 21 is_stmt 0 view .LVU722 2503 00a4 636A ldr r3, [r4, #36] 2504 00a6 0133 adds r3, r3, #1 2505 00a8 6362 str r3, [r4, #36] 1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2506 .loc 1 1432 7 is_stmt 1 view .LVU723 1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2507 .loc 1 1432 11 is_stmt 0 view .LVU724 2508 00aa 638D ldrh r3, [r4, #42] 1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2509 .loc 1 1432 22 view .LVU725 2510 00ac 013B subs r3, r3, #1 2511 00ae 9BB2 uxth r3, r3 2512 00b0 6385 strh r3, [r4, #42] 2513 00b2 E8E7 b .L167 2514 .LVL162: 2515 .L162: 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2516 .loc 1 1361 7 is_stmt 1 view .LVU726 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2517 .loc 1 1361 23 is_stmt 0 view .LVU727 2518 00b4 8023 movs r3, #128 2519 00b6 9B00 lsls r3, r3, #2 2520 00b8 6364 str r3, [r4, #68] 1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2521 .loc 1 1362 7 is_stmt 1 view .LVU728 1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2522 .loc 1 1362 15 is_stmt 0 view .LVU729 2523 00ba 0120 movs r0, #1 2524 .LVL163: 1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2525 .loc 1 1362 15 view .LVU730 2526 00bc 63E0 b .L161 2527 .LVL164: 2528 .L175: 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2529 .loc 1 1386 7 is_stmt 1 view .LVU731 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2530 .loc 1 1386 11 is_stmt 0 view .LVU732 ARM GAS /tmp/ccRVAHyi.s page 175 2531 00be 2268 ldr r2, [r4] 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2532 .loc 1 1386 27 view .LVU733 2533 00c0 5168 ldr r1, [r2, #4] 2534 00c2 8023 movs r3, #128 2535 00c4 1B02 lsls r3, r3, #8 2536 00c6 0B43 orrs r3, r1 2537 00c8 5360 str r3, [r2, #4] 1387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2538 .loc 1 1387 7 is_stmt 1 view .LVU734 1387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2539 .loc 1 1387 14 is_stmt 0 view .LVU735 2540 00ca 0120 movs r0, #1 2541 00cc 5BE0 b .L161 2542 .L176: 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2543 .loc 1 1397 7 is_stmt 1 view .LVU736 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2544 .loc 1 1397 11 is_stmt 0 view .LVU737 2545 00ce 0096 str r6, [sp] 2546 00d0 039B ldr r3, [sp, #12] 2547 00d2 0022 movs r2, #0 2548 00d4 0821 movs r1, #8 2549 00d6 2000 movs r0, r4 2550 00d8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2551 .LVL165: 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2552 .loc 1 1397 10 view .LVU738 2553 00dc 0028 cmp r0, #0 2554 00de 03D1 bne .L180 1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2555 .loc 1 1405 7 is_stmt 1 view .LVU739 2556 00e0 2368 ldr r3, [r4] 2557 00e2 0822 movs r2, #8 2558 00e4 DA61 str r2, [r3, #28] 2559 00e6 C4E7 b .L165 2560 .L180: 1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2561 .loc 1 1400 9 view .LVU740 1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2562 .loc 1 1400 13 is_stmt 0 view .LVU741 2563 00e8 2268 ldr r2, [r4] 1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2564 .loc 1 1400 29 view .LVU742 2565 00ea 5168 ldr r1, [r2, #4] 2566 00ec 8023 movs r3, #128 2567 00ee 1B02 lsls r3, r3, #8 2568 00f0 0B43 orrs r3, r1 2569 00f2 5360 str r3, [r2, #4] 1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2570 .loc 1 1401 9 is_stmt 1 view .LVU743 1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2571 .loc 1 1401 16 is_stmt 0 view .LVU744 2572 00f4 0120 movs r0, #1 2573 00f6 46E0 b .L161 2574 .L177: 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccRVAHyi.s page 176 2575 .loc 1 1412 7 is_stmt 1 view .LVU745 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2576 .loc 1 1412 11 is_stmt 0 view .LVU746 2577 00f8 2268 ldr r2, [r4] 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2578 .loc 1 1412 27 view .LVU747 2579 00fa 5168 ldr r1, [r2, #4] 2580 00fc 8023 movs r3, #128 2581 00fe 1B02 lsls r3, r3, #8 2582 0100 0B43 orrs r3, r1 2583 0102 5360 str r3, [r2, #4] 1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2584 .loc 1 1413 7 is_stmt 1 view .LVU748 1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2585 .loc 1 1413 14 is_stmt 0 view .LVU749 2586 0104 0120 movs r0, #1 2587 0106 3EE0 b .L161 2588 .L179: 1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2589 .loc 1 1422 9 is_stmt 1 view .LVU750 1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2590 .loc 1 1422 13 is_stmt 0 view .LVU751 2591 0108 2268 ldr r2, [r4] 1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2592 .loc 1 1422 29 view .LVU752 2593 010a 5168 ldr r1, [r2, #4] 2594 010c 8023 movs r3, #128 2595 010e 1B02 lsls r3, r3, #8 2596 0110 0B43 orrs r3, r1 2597 0112 5360 str r3, [r2, #4] 1423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2598 .loc 1 1423 9 is_stmt 1 view .LVU753 1423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2599 .loc 1 1423 16 is_stmt 0 view .LVU754 2600 0114 0120 movs r0, #1 2601 0116 36E0 b .L161 2602 .L178: 1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2603 .loc 1 1436 5 is_stmt 1 view .LVU755 1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2604 .loc 1 1436 9 is_stmt 0 view .LVU756 2605 0118 3200 movs r2, r6 2606 011a 0399 ldr r1, [sp, #12] 2607 011c 2000 movs r0, r4 2608 011e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2609 .LVL166: 1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2610 .loc 1 1436 8 view .LVU757 2611 0122 0028 cmp r0, #0 2612 0124 0AD0 beq .L170 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2613 .loc 1 1439 7 is_stmt 1 view .LVU758 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2614 .loc 1 1439 11 is_stmt 0 view .LVU759 2615 0126 2268 ldr r2, [r4] 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2616 .loc 1 1439 27 view .LVU760 ARM GAS /tmp/ccRVAHyi.s page 177 2617 0128 5168 ldr r1, [r2, #4] 2618 012a 8023 movs r3, #128 2619 012c 1B02 lsls r3, r3, #8 2620 012e 0B43 orrs r3, r1 2621 0130 5360 str r3, [r2, #4] 1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2622 .loc 1 1441 7 is_stmt 1 view .LVU761 1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2623 .loc 1 1441 15 is_stmt 0 view .LVU762 2624 0132 636C ldr r3, [r4, #68] 1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2625 .loc 1 1441 10 view .LVU763 2626 0134 042B cmp r3, #4 2627 0136 2AD1 bne .L174 1445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2628 .loc 1 1445 9 is_stmt 1 view .LVU764 1445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2629 .loc 1 1445 25 is_stmt 0 view .LVU765 2630 0138 0023 movs r3, #0 2631 013a 6364 str r3, [r4, #68] 2632 .L170: 1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2633 .loc 1 1454 5 is_stmt 1 view .LVU766 2634 013c 2368 ldr r3, [r4] 2635 013e 2022 movs r2, #32 2636 0140 DA61 str r2, [r3, #28] 1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2637 .loc 1 1457 5 view .LVU767 1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2638 .loc 1 1457 9 is_stmt 0 view .LVU768 2639 0142 8021 movs r1, #128 2640 0144 0096 str r6, [sp] 2641 0146 039B ldr r3, [sp, #12] 2642 0148 1F3A subs r2, r2, #31 2643 014a 0902 lsls r1, r1, #8 2644 014c 2000 movs r0, r4 2645 014e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2646 .LVL167: 1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2647 .loc 1 1457 8 view .LVU769 2648 0152 0028 cmp r0, #0 2649 0154 07D0 beq .L171 1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2650 .loc 1 1460 7 is_stmt 1 view .LVU770 1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2651 .loc 1 1460 11 is_stmt 0 view .LVU771 2652 0156 2268 ldr r2, [r4] 1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2653 .loc 1 1460 27 view .LVU772 2654 0158 5168 ldr r1, [r2, #4] 2655 015a 8023 movs r3, #128 2656 015c 1B02 lsls r3, r3, #8 2657 015e 0B43 orrs r3, r1 2658 0160 5360 str r3, [r2, #4] 1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2659 .loc 1 1461 7 is_stmt 1 view .LVU773 1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 178 2660 .loc 1 1461 14 is_stmt 0 view .LVU774 2661 0162 0120 movs r0, #1 2662 0164 0FE0 b .L161 2663 .L171: 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2664 .loc 1 1465 5 is_stmt 1 view .LVU775 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2665 .loc 1 1465 9 is_stmt 0 view .LVU776 2666 0166 2268 ldr r2, [r4] 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2667 .loc 1 1465 25 view .LVU777 2668 0168 5168 ldr r1, [r2, #4] 2669 016a 8023 movs r3, #128 2670 016c 1B02 lsls r3, r3, #8 2671 016e 0B43 orrs r3, r1 2672 0170 5360 str r3, [r2, #4] 1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2673 .loc 1 1467 5 is_stmt 1 view .LVU778 1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2674 .loc 1 1467 17 is_stmt 0 view .LVU779 2675 0172 4123 movs r3, #65 2676 0174 2022 movs r2, #32 2677 0176 E254 strb r2, [r4, r3] 1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2678 .loc 1 1468 5 is_stmt 1 view .LVU780 1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2679 .loc 1 1468 17 is_stmt 0 view .LVU781 2680 0178 0023 movs r3, #0 2681 017a 2232 adds r2, r2, #34 2682 017c A354 strb r3, [r4, r2] 1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2683 .loc 1 1471 5 is_stmt 1 view .LVU782 1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2684 .loc 1 1471 5 view .LVU783 2685 017e 023A subs r2, r2, #2 2686 0180 A354 strb r3, [r4, r2] 1473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2687 .loc 1 1473 5 view .LVU784 1473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2688 .loc 1 1473 12 is_stmt 0 view .LVU785 2689 0182 00E0 b .L161 2690 .LVL168: 2691 .L172: 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2692 .loc 1 1477 12 view .LVU786 2693 0184 0220 movs r0, #2 2694 .LVL169: 2695 .L161: 1479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2696 .loc 1 1479 1 view .LVU787 2697 0186 05B0 add sp, sp, #20 2698 @ sp needed 2699 .LVL170: 2700 .LVL171: 1479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2701 .loc 1 1479 1 view .LVU788 2702 0188 F0BD pop {r4, r5, r6, r7, pc} ARM GAS /tmp/ccRVAHyi.s page 179 2703 .LVL172: 2704 .L173: 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2705 .loc 1 1365 5 view .LVU789 2706 018a 0220 movs r0, #2 2707 .LVL173: 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2708 .loc 1 1365 5 view .LVU790 2709 018c FBE7 b .L161 2710 .LVL174: 2711 .L174: 1449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2712 .loc 1 1449 16 view .LVU791 2713 018e 0120 movs r0, #1 2714 0190 F9E7 b .L161 2715 .L182: 2716 0192 C046 .align 2 2717 .L181: 2718 0194 FF7FFFFF .word -32769 2719 .cfi_endproc 2720 .LFE46: 2722 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2723 .align 1 2724 .global HAL_I2C_Slave_Receive 2725 .syntax unified 2726 .code 16 2727 .thumb_func 2728 .fpu softvfp 2730 HAL_I2C_Slave_Receive: 2731 .LVL175: 2732 .LFB47: 1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2733 .loc 1 1492 1 is_stmt 1 view -0 2734 .cfi_startproc 2735 @ args = 0, pretend = 0, frame = 8 2736 @ frame_needed = 0, uses_anonymous_args = 0 1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2737 .loc 1 1492 1 is_stmt 0 view .LVU793 2738 0000 F0B5 push {r4, r5, r6, r7, lr} 2739 .LCFI19: 2740 .cfi_def_cfa_offset 20 2741 .cfi_offset 4, -20 2742 .cfi_offset 5, -16 2743 .cfi_offset 6, -12 2744 .cfi_offset 7, -8 2745 .cfi_offset 14, -4 2746 0002 85B0 sub sp, sp, #20 2747 .LCFI20: 2748 .cfi_def_cfa_offset 40 2749 0004 0400 movs r4, r0 2750 0006 0F00 movs r7, r1 2751 0008 1500 movs r5, r2 2752 000a 0393 str r3, [sp, #12] 1493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2753 .loc 1 1493 3 is_stmt 1 view .LVU794 1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2754 .loc 1 1495 3 view .LVU795 ARM GAS /tmp/ccRVAHyi.s page 180 1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2755 .loc 1 1495 11 is_stmt 0 view .LVU796 2756 000c 4123 movs r3, #65 2757 .LVL176: 1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2758 .loc 1 1495 11 view .LVU797 2759 000e C35C ldrb r3, [r0, r3] 1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2760 .loc 1 1495 6 view .LVU798 2761 0010 202B cmp r3, #32 2762 0012 00D0 beq .LCB2567 2763 0014 A9E0 b .L194 @long jump 2764 .LCB2567: 1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2765 .loc 1 1497 5 is_stmt 1 view .LVU799 1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2766 .loc 1 1497 8 is_stmt 0 view .LVU800 2767 0016 0029 cmp r1, #0 2768 0018 2DD0 beq .L185 1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2769 .loc 1 1497 25 discriminator 1 view .LVU801 2770 001a 002A cmp r2, #0 2771 001c 2BD0 beq .L185 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2772 .loc 1 1503 5 is_stmt 1 view .LVU802 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2773 .loc 1 1503 5 view .LVU803 2774 001e 4023 movs r3, #64 2775 0020 C35C ldrb r3, [r0, r3] 2776 0022 012B cmp r3, #1 2777 0024 00D1 bne .LCB2578 2778 0026 A3E0 b .L195 @long jump 2779 .LCB2578: 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2780 .loc 1 1503 5 discriminator 2 view .LVU804 2781 0028 4023 movs r3, #64 2782 002a 0122 movs r2, #1 2783 .LVL177: 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2784 .loc 1 1503 5 is_stmt 0 discriminator 2 view .LVU805 2785 002c C254 strb r2, [r0, r3] 1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2786 .loc 1 1506 5 is_stmt 1 discriminator 2 view .LVU806 1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2787 .loc 1 1506 17 is_stmt 0 discriminator 2 view .LVU807 2788 002e FFF7FEFF bl HAL_GetTick 2789 .LVL178: 1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2790 .loc 1 1506 17 discriminator 2 view .LVU808 2791 0032 0600 movs r6, r0 2792 .LVL179: 1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2793 .loc 1 1508 5 is_stmt 1 discriminator 2 view .LVU809 1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2794 .loc 1 1508 21 is_stmt 0 discriminator 2 view .LVU810 2795 0034 4123 movs r3, #65 2796 0036 2222 movs r2, #34 ARM GAS /tmp/ccRVAHyi.s page 181 2797 0038 E254 strb r2, [r4, r3] 1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2798 .loc 1 1509 5 is_stmt 1 discriminator 2 view .LVU811 1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2799 .loc 1 1509 21 is_stmt 0 discriminator 2 view .LVU812 2800 003a 0133 adds r3, r3, #1 2801 003c 023A subs r2, r2, #2 2802 003e E254 strb r2, [r4, r3] 1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2803 .loc 1 1510 5 is_stmt 1 discriminator 2 view .LVU813 1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2804 .loc 1 1510 21 is_stmt 0 discriminator 2 view .LVU814 2805 0040 0023 movs r3, #0 2806 0042 6364 str r3, [r4, #68] 1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2807 .loc 1 1513 5 is_stmt 1 discriminator 2 view .LVU815 1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2808 .loc 1 1513 21 is_stmt 0 discriminator 2 view .LVU816 2809 0044 6762 str r7, [r4, #36] 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2810 .loc 1 1514 5 is_stmt 1 discriminator 2 view .LVU817 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2811 .loc 1 1514 21 is_stmt 0 discriminator 2 view .LVU818 2812 0046 6585 strh r5, [r4, #42] 1515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2813 .loc 1 1515 5 is_stmt 1 discriminator 2 view .LVU819 1515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2814 .loc 1 1515 21 is_stmt 0 discriminator 2 view .LVU820 2815 0048 6363 str r3, [r4, #52] 1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2816 .loc 1 1518 5 is_stmt 1 discriminator 2 view .LVU821 1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2817 .loc 1 1518 9 is_stmt 0 discriminator 2 view .LVU822 2818 004a 2268 ldr r2, [r4] 1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2819 .loc 1 1518 25 discriminator 2 view .LVU823 2820 004c 5368 ldr r3, [r2, #4] 2821 004e 4949 ldr r1, .L199 2822 0050 0B40 ands r3, r1 2823 0052 5360 str r3, [r2, #4] 1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2824 .loc 1 1521 5 is_stmt 1 discriminator 2 view .LVU824 1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2825 .loc 1 1521 9 is_stmt 0 discriminator 2 view .LVU825 2826 0054 0090 str r0, [sp] 2827 0056 039B ldr r3, [sp, #12] 2828 0058 0022 movs r2, #0 2829 005a 0821 movs r1, #8 2830 005c 2000 movs r0, r4 2831 .LVL180: 1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2832 .loc 1 1521 9 discriminator 2 view .LVU826 2833 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2834 .LVL181: 1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2835 .loc 1 1521 8 discriminator 2 view .LVU827 2836 0062 0028 cmp r0, #0 ARM GAS /tmp/ccRVAHyi.s page 182 2837 0064 0CD0 beq .L187 1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2838 .loc 1 1524 7 is_stmt 1 view .LVU828 1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2839 .loc 1 1524 11 is_stmt 0 view .LVU829 2840 0066 2268 ldr r2, [r4] 1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2841 .loc 1 1524 27 view .LVU830 2842 0068 5168 ldr r1, [r2, #4] 2843 006a 8023 movs r3, #128 2844 006c 1B02 lsls r3, r3, #8 2845 006e 0B43 orrs r3, r1 2846 0070 5360 str r3, [r2, #4] 1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2847 .loc 1 1525 7 is_stmt 1 view .LVU831 1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2848 .loc 1 1525 14 is_stmt 0 view .LVU832 2849 0072 0120 movs r0, #1 2850 0074 7AE0 b .L184 2851 .LVL182: 2852 .L185: 1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2853 .loc 1 1499 7 is_stmt 1 view .LVU833 1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2854 .loc 1 1499 23 is_stmt 0 view .LVU834 2855 0076 8023 movs r3, #128 2856 0078 9B00 lsls r3, r3, #2 2857 007a 6364 str r3, [r4, #68] 1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2858 .loc 1 1500 7 is_stmt 1 view .LVU835 1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2859 .loc 1 1500 15 is_stmt 0 view .LVU836 2860 007c 0120 movs r0, #1 2861 .LVL183: 1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2862 .loc 1 1500 15 view .LVU837 2863 007e 75E0 b .L184 2864 .LVL184: 2865 .L187: 1529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2866 .loc 1 1529 5 is_stmt 1 view .LVU838 2867 0080 2368 ldr r3, [r4] 2868 0082 0822 movs r2, #8 2869 0084 DA61 str r2, [r3, #28] 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2870 .loc 1 1532 5 view .LVU839 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2871 .loc 1 1532 9 is_stmt 0 view .LVU840 2872 0086 8021 movs r1, #128 2873 0088 0096 str r6, [sp] 2874 008a 039B ldr r3, [sp, #12] 2875 008c 073A subs r2, r2, #7 2876 008e 4902 lsls r1, r1, #9 2877 0090 2000 movs r0, r4 2878 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2879 .LVL185: 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 183 2880 .loc 1 1532 8 view .LVU841 2881 0096 0028 cmp r0, #0 2882 0098 16D1 bne .L196 2883 .L188: 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2884 .loc 1 1539 16 view .LVU842 2885 009a 638D ldrh r3, [r4, #42] 2886 009c 9BB2 uxth r3, r3 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2887 .loc 1 1539 11 view .LVU843 2888 009e 002B cmp r3, #0 2889 00a0 30D0 beq .L197 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2890 .loc 1 1542 7 is_stmt 1 view .LVU844 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2891 .loc 1 1542 11 is_stmt 0 view .LVU845 2892 00a2 3200 movs r2, r6 2893 00a4 0399 ldr r1, [sp, #12] 2894 00a6 2000 movs r0, r4 2895 00a8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2896 .LVL186: 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2897 .loc 1 1542 10 view .LVU846 2898 00ac 0028 cmp r0, #0 2899 00ae 13D1 bne .L198 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2900 .loc 1 1563 7 is_stmt 1 view .LVU847 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2901 .loc 1 1563 38 is_stmt 0 view .LVU848 2902 00b0 2368 ldr r3, [r4] 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2903 .loc 1 1563 48 view .LVU849 2904 00b2 5B6A ldr r3, [r3, #36] 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2905 .loc 1 1563 23 view .LVU850 2906 00b4 626A ldr r2, [r4, #36] 2907 00b6 1370 strb r3, [r2] 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2908 .loc 1 1566 7 is_stmt 1 view .LVU851 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2909 .loc 1 1566 21 is_stmt 0 view .LVU852 2910 00b8 636A ldr r3, [r4, #36] 2911 00ba 0133 adds r3, r3, #1 2912 00bc 6362 str r3, [r4, #36] 1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2913 .loc 1 1568 7 is_stmt 1 view .LVU853 1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2914 .loc 1 1568 11 is_stmt 0 view .LVU854 2915 00be 638D ldrh r3, [r4, #42] 1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2916 .loc 1 1568 22 view .LVU855 2917 00c0 013B subs r3, r3, #1 2918 00c2 9BB2 uxth r3, r3 2919 00c4 6385 strh r3, [r4, #42] 2920 00c6 E8E7 b .L188 2921 .L196: 1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccRVAHyi.s page 184 2922 .loc 1 1535 7 is_stmt 1 view .LVU856 1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2923 .loc 1 1535 11 is_stmt 0 view .LVU857 2924 00c8 2268 ldr r2, [r4] 1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2925 .loc 1 1535 27 view .LVU858 2926 00ca 5168 ldr r1, [r2, #4] 2927 00cc 8023 movs r3, #128 2928 00ce 1B02 lsls r3, r3, #8 2929 00d0 0B43 orrs r3, r1 2930 00d2 5360 str r3, [r2, #4] 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2931 .loc 1 1536 7 is_stmt 1 view .LVU859 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2932 .loc 1 1536 14 is_stmt 0 view .LVU860 2933 00d4 0120 movs r0, #1 2934 00d6 49E0 b .L184 2935 .L198: 1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2936 .loc 1 1545 9 is_stmt 1 view .LVU861 1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2937 .loc 1 1545 13 is_stmt 0 view .LVU862 2938 00d8 2268 ldr r2, [r4] 1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2939 .loc 1 1545 29 view .LVU863 2940 00da 5168 ldr r1, [r2, #4] 2941 00dc 8023 movs r3, #128 2942 00de 1B02 lsls r3, r3, #8 2943 00e0 0B43 orrs r3, r1 2944 00e2 5360 str r3, [r2, #4] 1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2945 .loc 1 1548 9 is_stmt 1 view .LVU864 1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2946 .loc 1 1548 13 is_stmt 0 view .LVU865 2947 00e4 2368 ldr r3, [r4] 2948 00e6 9A69 ldr r2, [r3, #24] 1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2949 .loc 1 1548 12 view .LVU866 2950 00e8 5207 lsls r2, r2, #29 2951 00ea 09D5 bpl .L190 1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2952 .loc 1 1551 11 is_stmt 1 view .LVU867 1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2953 .loc 1 1551 52 is_stmt 0 view .LVU868 2954 00ec 5B6A ldr r3, [r3, #36] 1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2955 .loc 1 1551 27 view .LVU869 2956 00ee 626A ldr r2, [r4, #36] 2957 00f0 1370 strb r3, [r2] 1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2958 .loc 1 1554 11 is_stmt 1 view .LVU870 1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2959 .loc 1 1554 25 is_stmt 0 view .LVU871 2960 00f2 636A ldr r3, [r4, #36] 2961 00f4 0133 adds r3, r3, #1 2962 00f6 6362 str r3, [r4, #36] 1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 185 2963 .loc 1 1556 11 is_stmt 1 view .LVU872 1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2964 .loc 1 1556 15 is_stmt 0 view .LVU873 2965 00f8 638D ldrh r3, [r4, #42] 1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2966 .loc 1 1556 26 view .LVU874 2967 00fa 013B subs r3, r3, #1 2968 00fc 9BB2 uxth r3, r3 2969 00fe 6385 strh r3, [r4, #42] 2970 .L190: 1559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2971 .loc 1 1559 9 is_stmt 1 view .LVU875 1559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2972 .loc 1 1559 16 is_stmt 0 view .LVU876 2973 0100 0120 movs r0, #1 2974 0102 33E0 b .L184 2975 .L197: 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2976 .loc 1 1572 5 is_stmt 1 view .LVU877 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2977 .loc 1 1572 9 is_stmt 0 view .LVU878 2978 0104 3200 movs r2, r6 2979 0106 0399 ldr r1, [sp, #12] 2980 0108 2000 movs r0, r4 2981 010a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2982 .LVL187: 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2983 .loc 1 1572 8 view .LVU879 2984 010e 0028 cmp r0, #0 2985 0110 07D0 beq .L192 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2986 .loc 1 1575 7 is_stmt 1 view .LVU880 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2987 .loc 1 1575 11 is_stmt 0 view .LVU881 2988 0112 2268 ldr r2, [r4] 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2989 .loc 1 1575 27 view .LVU882 2990 0114 5168 ldr r1, [r2, #4] 2991 0116 8023 movs r3, #128 2992 0118 1B02 lsls r3, r3, #8 2993 011a 0B43 orrs r3, r1 2994 011c 5360 str r3, [r2, #4] 1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2995 .loc 1 1576 7 is_stmt 1 view .LVU883 1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2996 .loc 1 1576 14 is_stmt 0 view .LVU884 2997 011e 0120 movs r0, #1 2998 0120 24E0 b .L184 2999 .L192: 1580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3000 .loc 1 1580 5 is_stmt 1 view .LVU885 3001 0122 2368 ldr r3, [r4] 3002 0124 2022 movs r2, #32 3003 0126 DA61 str r2, [r3, #28] 1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3004 .loc 1 1583 5 view .LVU886 1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 186 3005 .loc 1 1583 9 is_stmt 0 view .LVU887 3006 0128 8021 movs r1, #128 3007 012a 0096 str r6, [sp] 3008 012c 039B ldr r3, [sp, #12] 3009 012e 1F3A subs r2, r2, #31 3010 0130 0902 lsls r1, r1, #8 3011 0132 2000 movs r0, r4 3012 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3013 .LVL188: 1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3014 .loc 1 1583 8 view .LVU888 3015 0138 0028 cmp r0, #0 3016 013a 07D0 beq .L193 1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3017 .loc 1 1586 7 is_stmt 1 view .LVU889 1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3018 .loc 1 1586 11 is_stmt 0 view .LVU890 3019 013c 2268 ldr r2, [r4] 1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3020 .loc 1 1586 27 view .LVU891 3021 013e 5168 ldr r1, [r2, #4] 3022 0140 8023 movs r3, #128 3023 0142 1B02 lsls r3, r3, #8 3024 0144 0B43 orrs r3, r1 3025 0146 5360 str r3, [r2, #4] 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3026 .loc 1 1587 7 is_stmt 1 view .LVU892 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3027 .loc 1 1587 14 is_stmt 0 view .LVU893 3028 0148 0120 movs r0, #1 3029 014a 0FE0 b .L184 3030 .L193: 1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3031 .loc 1 1591 5 is_stmt 1 view .LVU894 1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3032 .loc 1 1591 9 is_stmt 0 view .LVU895 3033 014c 2268 ldr r2, [r4] 1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3034 .loc 1 1591 25 view .LVU896 3035 014e 5168 ldr r1, [r2, #4] 3036 0150 8023 movs r3, #128 3037 0152 1B02 lsls r3, r3, #8 3038 0154 0B43 orrs r3, r1 3039 0156 5360 str r3, [r2, #4] 1593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3040 .loc 1 1593 5 is_stmt 1 view .LVU897 1593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3041 .loc 1 1593 17 is_stmt 0 view .LVU898 3042 0158 4123 movs r3, #65 3043 015a 2022 movs r2, #32 3044 015c E254 strb r2, [r4, r3] 1594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3045 .loc 1 1594 5 is_stmt 1 view .LVU899 1594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3046 .loc 1 1594 17 is_stmt 0 view .LVU900 3047 015e 0023 movs r3, #0 3048 0160 2232 adds r2, r2, #34 ARM GAS /tmp/ccRVAHyi.s page 187 3049 0162 A354 strb r3, [r4, r2] 1597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3050 .loc 1 1597 5 is_stmt 1 view .LVU901 1597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3051 .loc 1 1597 5 view .LVU902 3052 0164 023A subs r2, r2, #2 3053 0166 A354 strb r3, [r4, r2] 1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3054 .loc 1 1599 5 view .LVU903 1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3055 .loc 1 1599 12 is_stmt 0 view .LVU904 3056 0168 00E0 b .L184 3057 .LVL189: 3058 .L194: 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3059 .loc 1 1603 12 view .LVU905 3060 016a 0220 movs r0, #2 3061 .LVL190: 3062 .L184: 1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3063 .loc 1 1605 1 view .LVU906 3064 016c 05B0 add sp, sp, #20 3065 @ sp needed 3066 .LVL191: 3067 .LVL192: 1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3068 .loc 1 1605 1 view .LVU907 3069 016e F0BD pop {r4, r5, r6, r7, pc} 3070 .LVL193: 3071 .L195: 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3072 .loc 1 1503 5 view .LVU908 3073 0170 0220 movs r0, #2 3074 .LVL194: 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3075 .loc 1 1503 5 view .LVU909 3076 0172 FBE7 b .L184 3077 .L200: 3078 .align 2 3079 .L199: 3080 0174 FF7FFFFF .word -32769 3081 .cfi_endproc 3082 .LFE47: 3084 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3085 .align 1 3086 .global HAL_I2C_Master_Transmit_IT 3087 .syntax unified 3088 .code 16 3089 .thumb_func 3090 .fpu softvfp 3092 HAL_I2C_Master_Transmit_IT: 3093 .LVL195: 3094 .LFB48: 1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3095 .loc 1 1619 1 is_stmt 1 view -0 3096 .cfi_startproc 3097 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccRVAHyi.s page 188 3098 @ frame_needed = 0, uses_anonymous_args = 0 1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3099 .loc 1 1619 1 is_stmt 0 view .LVU911 3100 0000 30B5 push {r4, r5, lr} 3101 .LCFI21: 3102 .cfi_def_cfa_offset 12 3103 .cfi_offset 4, -12 3104 .cfi_offset 5, -8 3105 .cfi_offset 14, -4 3106 0002 83B0 sub sp, sp, #12 3107 .LCFI22: 3108 .cfi_def_cfa_offset 24 3109 0004 0400 movs r4, r0 1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3110 .loc 1 1620 3 is_stmt 1 view .LVU912 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3111 .loc 1 1622 3 view .LVU913 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3112 .loc 1 1622 11 is_stmt 0 view .LVU914 3113 0006 4120 movs r0, #65 3114 .LVL196: 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3115 .loc 1 1622 11 view .LVU915 3116 0008 205C ldrb r0, [r4, r0] 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3117 .loc 1 1622 6 view .LVU916 3118 000a 2028 cmp r0, #32 3119 000c 36D1 bne .L205 1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3120 .loc 1 1624 5 is_stmt 1 view .LVU917 1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3121 .loc 1 1624 9 is_stmt 0 view .LVU918 3122 000e 2068 ldr r0, [r4] 3123 0010 8069 ldr r0, [r0, #24] 1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3124 .loc 1 1624 8 view .LVU919 3125 0012 0004 lsls r0, r0, #16 3126 0014 34D4 bmi .L206 1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3127 .loc 1 1630 5 is_stmt 1 view .LVU920 1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3128 .loc 1 1630 5 view .LVU921 3129 0016 4020 movs r0, #64 3130 0018 205C ldrb r0, [r4, r0] 3131 001a 0128 cmp r0, #1 3132 001c 32D0 beq .L207 1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3133 .loc 1 1630 5 discriminator 2 view .LVU922 3134 001e 4020 movs r0, #64 3135 0020 0125 movs r5, #1 3136 0022 2554 strb r5, [r4, r0] 1632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3137 .loc 1 1632 5 discriminator 2 view .LVU923 1632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3138 .loc 1 1632 23 is_stmt 0 discriminator 2 view .LVU924 3139 0024 0130 adds r0, r0, #1 3140 0026 2035 adds r5, r5, #32 ARM GAS /tmp/ccRVAHyi.s page 189 3141 0028 2554 strb r5, [r4, r0] 1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3142 .loc 1 1633 5 is_stmt 1 discriminator 2 view .LVU925 1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3143 .loc 1 1633 23 is_stmt 0 discriminator 2 view .LVU926 3144 002a 0130 adds r0, r0, #1 3145 002c 113D subs r5, r5, #17 3146 002e 2554 strb r5, [r4, r0] 1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3147 .loc 1 1634 5 is_stmt 1 discriminator 2 view .LVU927 1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3148 .loc 1 1634 23 is_stmt 0 discriminator 2 view .LVU928 3149 0030 0020 movs r0, #0 3150 0032 6064 str r0, [r4, #68] 1637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3151 .loc 1 1637 5 is_stmt 1 discriminator 2 view .LVU929 1637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3152 .loc 1 1637 23 is_stmt 0 discriminator 2 view .LVU930 3153 0034 6262 str r2, [r4, #36] 1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3154 .loc 1 1638 5 is_stmt 1 discriminator 2 view .LVU931 1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3155 .loc 1 1638 23 is_stmt 0 discriminator 2 view .LVU932 3156 0036 6385 strh r3, [r4, #42] 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3157 .loc 1 1639 5 is_stmt 1 discriminator 2 view .LVU933 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3158 .loc 1 1639 23 is_stmt 0 discriminator 2 view .LVU934 3159 0038 134B ldr r3, .L208 3160 .LVL197: 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3161 .loc 1 1639 23 discriminator 2 view .LVU935 3162 003a E362 str r3, [r4, #44] 3163 .LVL198: 1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3164 .loc 1 1640 5 is_stmt 1 discriminator 2 view .LVU936 1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3165 .loc 1 1640 23 is_stmt 0 discriminator 2 view .LVU937 3166 003c 134B ldr r3, .L208+4 3167 003e 6363 str r3, [r4, #52] 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3168 .loc 1 1642 5 is_stmt 1 discriminator 2 view .LVU938 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3169 .loc 1 1642 13 is_stmt 0 discriminator 2 view .LVU939 3170 0040 638D ldrh r3, [r4, #42] 3171 0042 9BB2 uxth r3, r3 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3172 .loc 1 1642 8 discriminator 2 view .LVU940 3173 0044 FF2B cmp r3, #255 3174 0046 14D9 bls .L203 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3175 .loc 1 1644 7 is_stmt 1 view .LVU941 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3176 .loc 1 1644 22 is_stmt 0 view .LVU942 3177 0048 FF23 movs r3, #255 3178 004a 2385 strh r3, [r4, #40] 1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 190 3179 .loc 1 1645 7 is_stmt 1 view .LVU943 3180 .LVL199: 1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3181 .loc 1 1645 16 is_stmt 0 view .LVU944 3182 004c 8023 movs r3, #128 3183 004e 5B04 lsls r3, r3, #17 3184 .LVL200: 3185 .L204: 1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3186 .loc 1 1655 5 is_stmt 1 view .LVU945 1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3187 .loc 1 1655 55 is_stmt 0 view .LVU946 3188 0050 228D ldrh r2, [r4, #40] 3189 .LVL201: 1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3190 .loc 1 1655 5 view .LVU947 3191 0052 D2B2 uxtb r2, r2 3192 0054 0E48 ldr r0, .L208+8 3193 0056 0090 str r0, [sp] 3194 .LVL202: 1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3195 .loc 1 1655 5 view .LVU948 3196 0058 2000 movs r0, r4 3197 005a FFF7FEFF bl I2C_TransferConfig 3198 .LVL203: 1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3199 .loc 1 1658 5 is_stmt 1 view .LVU949 1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3200 .loc 1 1658 5 view .LVU950 3201 005e 4023 movs r3, #64 3202 0060 0022 movs r2, #0 3203 0062 E254 strb r2, [r4, r3] 1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3204 .loc 1 1668 5 view .LVU951 3205 0064 0121 movs r1, #1 3206 0066 2000 movs r0, r4 3207 0068 FFF7FEFF bl I2C_Enable_IRQ 3208 .LVL204: 1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3209 .loc 1 1670 5 view .LVU952 1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3210 .loc 1 1670 12 is_stmt 0 view .LVU953 3211 006c 0020 movs r0, #0 3212 .L202: 1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3213 .loc 1 1676 1 view .LVU954 3214 006e 03B0 add sp, sp, #12 3215 @ sp needed 3216 .LVL205: 1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3217 .loc 1 1676 1 view .LVU955 3218 0070 30BD pop {r4, r5, pc} 3219 .LVL206: 3220 .L203: 1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3221 .loc 1 1649 7 is_stmt 1 view .LVU956 1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; ARM GAS /tmp/ccRVAHyi.s page 191 3222 .loc 1 1649 28 is_stmt 0 view .LVU957 3223 0072 638D ldrh r3, [r4, #42] 1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3224 .loc 1 1649 22 view .LVU958 3225 0074 2385 strh r3, [r4, #40] 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3226 .loc 1 1650 7 is_stmt 1 view .LVU959 3227 .LVL207: 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3228 .loc 1 1650 16 is_stmt 0 view .LVU960 3229 0076 8023 movs r3, #128 3230 0078 9B04 lsls r3, r3, #18 3231 007a E9E7 b .L204 3232 .LVL208: 3233 .L205: 1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3234 .loc 1 1674 12 view .LVU961 3235 007c 0220 movs r0, #2 3236 007e F6E7 b .L202 3237 .L206: 1626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3238 .loc 1 1626 14 view .LVU962 3239 0080 0220 movs r0, #2 3240 0082 F4E7 b .L202 3241 .L207: 1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3242 .loc 1 1630 5 view .LVU963 3243 0084 0220 movs r0, #2 3244 0086 F2E7 b .L202 3245 .L209: 3246 .align 2 3247 .L208: 3248 0088 0000FFFF .word -65536 3249 008c 00000000 .word I2C_Master_ISR_IT 3250 0090 00200080 .word -2147475456 3251 .cfi_endproc 3252 .LFE48: 3254 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3255 .align 1 3256 .global HAL_I2C_Master_Receive_IT 3257 .syntax unified 3258 .code 16 3259 .thumb_func 3260 .fpu softvfp 3262 HAL_I2C_Master_Receive_IT: 3263 .LVL209: 3264 .LFB49: 1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3265 .loc 1 1690 1 is_stmt 1 view -0 3266 .cfi_startproc 3267 @ args = 0, pretend = 0, frame = 0 3268 @ frame_needed = 0, uses_anonymous_args = 0 1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3269 .loc 1 1690 1 is_stmt 0 view .LVU965 3270 0000 30B5 push {r4, r5, lr} 3271 .LCFI23: 3272 .cfi_def_cfa_offset 12 ARM GAS /tmp/ccRVAHyi.s page 192 3273 .cfi_offset 4, -12 3274 .cfi_offset 5, -8 3275 .cfi_offset 14, -4 3276 0002 83B0 sub sp, sp, #12 3277 .LCFI24: 3278 .cfi_def_cfa_offset 24 3279 0004 0400 movs r4, r0 1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3280 .loc 1 1691 3 is_stmt 1 view .LVU966 1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3281 .loc 1 1693 3 view .LVU967 1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3282 .loc 1 1693 11 is_stmt 0 view .LVU968 3283 0006 4120 movs r0, #65 3284 .LVL210: 1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3285 .loc 1 1693 11 view .LVU969 3286 0008 205C ldrb r0, [r4, r0] 1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3287 .loc 1 1693 6 view .LVU970 3288 000a 2028 cmp r0, #32 3289 000c 36D1 bne .L214 1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3290 .loc 1 1695 5 is_stmt 1 view .LVU971 1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3291 .loc 1 1695 9 is_stmt 0 view .LVU972 3292 000e 2068 ldr r0, [r4] 3293 0010 8069 ldr r0, [r0, #24] 1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3294 .loc 1 1695 8 view .LVU973 3295 0012 0004 lsls r0, r0, #16 3296 0014 34D4 bmi .L215 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3297 .loc 1 1701 5 is_stmt 1 view .LVU974 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3298 .loc 1 1701 5 view .LVU975 3299 0016 4020 movs r0, #64 3300 0018 205C ldrb r0, [r4, r0] 3301 001a 0128 cmp r0, #1 3302 001c 32D0 beq .L216 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3303 .loc 1 1701 5 discriminator 2 view .LVU976 3304 001e 4020 movs r0, #64 3305 0020 0125 movs r5, #1 3306 0022 2554 strb r5, [r4, r0] 1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3307 .loc 1 1703 5 discriminator 2 view .LVU977 1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3308 .loc 1 1703 23 is_stmt 0 discriminator 2 view .LVU978 3309 0024 0130 adds r0, r0, #1 3310 0026 2135 adds r5, r5, #33 3311 0028 2554 strb r5, [r4, r0] 1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3312 .loc 1 1704 5 is_stmt 1 discriminator 2 view .LVU979 1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3313 .loc 1 1704 23 is_stmt 0 discriminator 2 view .LVU980 3314 002a 0130 adds r0, r0, #1 ARM GAS /tmp/ccRVAHyi.s page 193 3315 002c 123D subs r5, r5, #18 3316 002e 2554 strb r5, [r4, r0] 1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3317 .loc 1 1705 5 is_stmt 1 discriminator 2 view .LVU981 1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3318 .loc 1 1705 23 is_stmt 0 discriminator 2 view .LVU982 3319 0030 0020 movs r0, #0 3320 0032 6064 str r0, [r4, #68] 1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3321 .loc 1 1708 5 is_stmt 1 discriminator 2 view .LVU983 1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3322 .loc 1 1708 23 is_stmt 0 discriminator 2 view .LVU984 3323 0034 6262 str r2, [r4, #36] 1709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3324 .loc 1 1709 5 is_stmt 1 discriminator 2 view .LVU985 1709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3325 .loc 1 1709 23 is_stmt 0 discriminator 2 view .LVU986 3326 0036 6385 strh r3, [r4, #42] 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3327 .loc 1 1710 5 is_stmt 1 discriminator 2 view .LVU987 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3328 .loc 1 1710 23 is_stmt 0 discriminator 2 view .LVU988 3329 0038 134B ldr r3, .L217 3330 .LVL211: 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3331 .loc 1 1710 23 discriminator 2 view .LVU989 3332 003a E362 str r3, [r4, #44] 3333 .LVL212: 1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3334 .loc 1 1711 5 is_stmt 1 discriminator 2 view .LVU990 1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3335 .loc 1 1711 23 is_stmt 0 discriminator 2 view .LVU991 3336 003c 134B ldr r3, .L217+4 3337 003e 6363 str r3, [r4, #52] 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3338 .loc 1 1713 5 is_stmt 1 discriminator 2 view .LVU992 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3339 .loc 1 1713 13 is_stmt 0 discriminator 2 view .LVU993 3340 0040 638D ldrh r3, [r4, #42] 3341 0042 9BB2 uxth r3, r3 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3342 .loc 1 1713 8 discriminator 2 view .LVU994 3343 0044 FF2B cmp r3, #255 3344 0046 14D9 bls .L212 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3345 .loc 1 1715 7 is_stmt 1 view .LVU995 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3346 .loc 1 1715 22 is_stmt 0 view .LVU996 3347 0048 FF23 movs r3, #255 3348 004a 2385 strh r3, [r4, #40] 1716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3349 .loc 1 1716 7 is_stmt 1 view .LVU997 3350 .LVL213: 1716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3351 .loc 1 1716 16 is_stmt 0 view .LVU998 3352 004c 8023 movs r3, #128 3353 004e 5B04 lsls r3, r3, #17 ARM GAS /tmp/ccRVAHyi.s page 194 3354 .LVL214: 3355 .L213: 1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3356 .loc 1 1726 5 is_stmt 1 view .LVU999 1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3357 .loc 1 1726 55 is_stmt 0 view .LVU1000 3358 0050 228D ldrh r2, [r4, #40] 3359 .LVL215: 1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3360 .loc 1 1726 5 view .LVU1001 3361 0052 D2B2 uxtb r2, r2 3362 0054 0E48 ldr r0, .L217+8 3363 0056 0090 str r0, [sp] 3364 .LVL216: 1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3365 .loc 1 1726 5 view .LVU1002 3366 0058 2000 movs r0, r4 3367 005a FFF7FEFF bl I2C_TransferConfig 3368 .LVL217: 1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3369 .loc 1 1729 5 is_stmt 1 view .LVU1003 1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3370 .loc 1 1729 5 view .LVU1004 3371 005e 4023 movs r3, #64 3372 0060 0022 movs r2, #0 3373 0062 E254 strb r2, [r4, r3] 1739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3374 .loc 1 1739 5 view .LVU1005 3375 0064 0221 movs r1, #2 3376 0066 2000 movs r0, r4 3377 0068 FFF7FEFF bl I2C_Enable_IRQ 3378 .LVL218: 1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3379 .loc 1 1741 5 view .LVU1006 1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3380 .loc 1 1741 12 is_stmt 0 view .LVU1007 3381 006c 0020 movs r0, #0 3382 .L211: 1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3383 .loc 1 1747 1 view .LVU1008 3384 006e 03B0 add sp, sp, #12 3385 @ sp needed 3386 .LVL219: 1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3387 .loc 1 1747 1 view .LVU1009 3388 0070 30BD pop {r4, r5, pc} 3389 .LVL220: 3390 .L212: 1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3391 .loc 1 1720 7 is_stmt 1 view .LVU1010 1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3392 .loc 1 1720 28 is_stmt 0 view .LVU1011 3393 0072 638D ldrh r3, [r4, #42] 1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3394 .loc 1 1720 22 view .LVU1012 3395 0074 2385 strh r3, [r4, #40] 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 195 3396 .loc 1 1721 7 is_stmt 1 view .LVU1013 3397 .LVL221: 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3398 .loc 1 1721 16 is_stmt 0 view .LVU1014 3399 0076 8023 movs r3, #128 3400 0078 9B04 lsls r3, r3, #18 3401 007a E9E7 b .L213 3402 .LVL222: 3403 .L214: 1745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3404 .loc 1 1745 12 view .LVU1015 3405 007c 0220 movs r0, #2 3406 007e F6E7 b .L211 3407 .L215: 1697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3408 .loc 1 1697 14 view .LVU1016 3409 0080 0220 movs r0, #2 3410 0082 F4E7 b .L211 3411 .L216: 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3412 .loc 1 1701 5 view .LVU1017 3413 0084 0220 movs r0, #2 3414 0086 F2E7 b .L211 3415 .L218: 3416 .align 2 3417 .L217: 3418 0088 0000FFFF .word -65536 3419 008c 00000000 .word I2C_Master_ISR_IT 3420 0090 00240080 .word -2147474432 3421 .cfi_endproc 3422 .LFE49: 3424 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3425 .align 1 3426 .global HAL_I2C_Slave_Transmit_IT 3427 .syntax unified 3428 .code 16 3429 .thumb_func 3430 .fpu softvfp 3432 HAL_I2C_Slave_Transmit_IT: 3433 .LVL223: 3434 .LFB50: 1758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3435 .loc 1 1758 1 is_stmt 1 view -0 3436 .cfi_startproc 3437 @ args = 0, pretend = 0, frame = 0 3438 @ frame_needed = 0, uses_anonymous_args = 0 1758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3439 .loc 1 1758 1 is_stmt 0 view .LVU1019 3440 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 3441 .LCFI25: 3442 .cfi_def_cfa_offset 24 3443 .cfi_offset 3, -24 3444 .cfi_offset 4, -20 3445 .cfi_offset 5, -16 3446 .cfi_offset 6, -12 3447 .cfi_offset 7, -8 3448 .cfi_offset 14, -4 ARM GAS /tmp/ccRVAHyi.s page 196 1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3449 .loc 1 1759 3 is_stmt 1 view .LVU1020 1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3450 .loc 1 1759 11 is_stmt 0 view .LVU1021 3451 0002 4123 movs r3, #65 3452 0004 C35C ldrb r3, [r0, r3] 1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3453 .loc 1 1759 6 view .LVU1022 3454 0006 202B cmp r3, #32 3455 0008 21D1 bne .L221 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3456 .loc 1 1762 5 is_stmt 1 view .LVU1023 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3457 .loc 1 1762 5 view .LVU1024 3458 000a 2033 adds r3, r3, #32 3459 000c C35C ldrb r3, [r0, r3] 3460 000e 012B cmp r3, #1 3461 0010 1FD0 beq .L222 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3462 .loc 1 1762 5 discriminator 2 view .LVU1025 3463 0012 4024 movs r4, #64 3464 0014 0123 movs r3, #1 3465 0016 0355 strb r3, [r0, r4] 1764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3466 .loc 1 1764 5 discriminator 2 view .LVU1026 1764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3467 .loc 1 1764 23 is_stmt 0 discriminator 2 view .LVU1027 3468 0018 4033 adds r3, r3, #64 3469 001a 2125 movs r5, #33 3470 001c C554 strb r5, [r0, r3] 1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3471 .loc 1 1765 5 is_stmt 1 discriminator 2 view .LVU1028 1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3472 .loc 1 1765 23 is_stmt 0 discriminator 2 view .LVU1029 3473 001e 0133 adds r3, r3, #1 3474 0020 013D subs r5, r5, #1 3475 0022 C554 strb r5, [r0, r3] 1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3476 .loc 1 1766 5 is_stmt 1 discriminator 2 view .LVU1030 1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3477 .loc 1 1766 23 is_stmt 0 discriminator 2 view .LVU1031 3478 0024 0025 movs r5, #0 3479 0026 4564 str r5, [r0, #68] 1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3480 .loc 1 1769 5 is_stmt 1 discriminator 2 view .LVU1032 1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3481 .loc 1 1769 9 is_stmt 0 discriminator 2 view .LVU1033 3482 0028 0668 ldr r6, [r0] 1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3483 .loc 1 1769 25 discriminator 2 view .LVU1034 3484 002a 7368 ldr r3, [r6, #4] 3485 002c 0A4F ldr r7, .L223 3486 002e 3B40 ands r3, r7 3487 0030 7360 str r3, [r6, #4] 1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3488 .loc 1 1772 5 is_stmt 1 discriminator 2 view .LVU1035 1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccRVAHyi.s page 197 3489 .loc 1 1772 23 is_stmt 0 discriminator 2 view .LVU1036 3490 0032 4162 str r1, [r0, #36] 1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3491 .loc 1 1773 5 is_stmt 1 discriminator 2 view .LVU1037 1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3492 .loc 1 1773 23 is_stmt 0 discriminator 2 view .LVU1038 3493 0034 4285 strh r2, [r0, #42] 1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3494 .loc 1 1774 5 is_stmt 1 discriminator 2 view .LVU1039 1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3495 .loc 1 1774 29 is_stmt 0 discriminator 2 view .LVU1040 3496 0036 438D ldrh r3, [r0, #42] 1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3497 .loc 1 1774 23 discriminator 2 view .LVU1041 3498 0038 0385 strh r3, [r0, #40] 1775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3499 .loc 1 1775 5 is_stmt 1 discriminator 2 view .LVU1042 1775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3500 .loc 1 1775 23 is_stmt 0 discriminator 2 view .LVU1043 3501 003a 084B ldr r3, .L223+4 3502 003c C362 str r3, [r0, #44] 1776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3503 .loc 1 1776 5 is_stmt 1 discriminator 2 view .LVU1044 1776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3504 .loc 1 1776 23 is_stmt 0 discriminator 2 view .LVU1045 3505 003e 084B ldr r3, .L223+8 3506 0040 4363 str r3, [r0, #52] 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3507 .loc 1 1779 5 is_stmt 1 discriminator 2 view .LVU1046 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3508 .loc 1 1779 5 discriminator 2 view .LVU1047 3509 0042 0555 strb r5, [r0, r4] 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3510 .loc 1 1789 5 discriminator 2 view .LVU1048 3511 0044 0749 ldr r1, .L223+12 3512 .LVL224: 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3513 .loc 1 1789 5 is_stmt 0 discriminator 2 view .LVU1049 3514 0046 FFF7FEFF bl I2C_Enable_IRQ 3515 .LVL225: 1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3516 .loc 1 1791 5 is_stmt 1 discriminator 2 view .LVU1050 1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3517 .loc 1 1791 12 is_stmt 0 discriminator 2 view .LVU1051 3518 004a 0020 movs r0, #0 3519 .L220: 1797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3520 .loc 1 1797 1 view .LVU1052 3521 @ sp needed 3522 004c F8BD pop {r3, r4, r5, r6, r7, pc} 3523 .LVL226: 3524 .L221: 1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3525 .loc 1 1795 12 view .LVU1053 3526 004e 0220 movs r0, #2 3527 .LVL227: 1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 198 3528 .loc 1 1795 12 view .LVU1054 3529 0050 FCE7 b .L220 3530 .LVL228: 3531 .L222: 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3532 .loc 1 1762 5 view .LVU1055 3533 0052 0220 movs r0, #2 3534 .LVL229: 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3535 .loc 1 1762 5 view .LVU1056 3536 0054 FAE7 b .L220 3537 .L224: 3538 0056 C046 .align 2 3539 .L223: 3540 0058 FF7FFFFF .word -32769 3541 005c 0000FFFF .word -65536 3542 0060 00000000 .word I2C_Slave_ISR_IT 3543 0064 01800000 .word 32769 3544 .cfi_endproc 3545 .LFE50: 3547 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3548 .align 1 3549 .global HAL_I2C_Slave_Receive_IT 3550 .syntax unified 3551 .code 16 3552 .thumb_func 3553 .fpu softvfp 3555 HAL_I2C_Slave_Receive_IT: 3556 .LVL230: 3557 .LFB51: 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3558 .loc 1 1808 1 is_stmt 1 view -0 3559 .cfi_startproc 3560 @ args = 0, pretend = 0, frame = 0 3561 @ frame_needed = 0, uses_anonymous_args = 0 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3562 .loc 1 1808 1 is_stmt 0 view .LVU1058 3563 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 3564 .LCFI26: 3565 .cfi_def_cfa_offset 24 3566 .cfi_offset 3, -24 3567 .cfi_offset 4, -20 3568 .cfi_offset 5, -16 3569 .cfi_offset 6, -12 3570 .cfi_offset 7, -8 3571 .cfi_offset 14, -4 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3572 .loc 1 1809 3 is_stmt 1 view .LVU1059 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3573 .loc 1 1809 11 is_stmt 0 view .LVU1060 3574 0002 4123 movs r3, #65 3575 0004 C35C ldrb r3, [r0, r3] 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3576 .loc 1 1809 6 view .LVU1061 3577 0006 202B cmp r3, #32 3578 0008 21D1 bne .L227 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 199 3579 .loc 1 1812 5 is_stmt 1 view .LVU1062 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3580 .loc 1 1812 5 view .LVU1063 3581 000a 2033 adds r3, r3, #32 3582 000c C35C ldrb r3, [r0, r3] 3583 000e 012B cmp r3, #1 3584 0010 1FD0 beq .L228 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3585 .loc 1 1812 5 discriminator 2 view .LVU1064 3586 0012 4024 movs r4, #64 3587 0014 0123 movs r3, #1 3588 0016 0355 strb r3, [r0, r4] 1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3589 .loc 1 1814 5 discriminator 2 view .LVU1065 1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3590 .loc 1 1814 23 is_stmt 0 discriminator 2 view .LVU1066 3591 0018 4033 adds r3, r3, #64 3592 001a 2225 movs r5, #34 3593 001c C554 strb r5, [r0, r3] 1815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3594 .loc 1 1815 5 is_stmt 1 discriminator 2 view .LVU1067 1815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3595 .loc 1 1815 23 is_stmt 0 discriminator 2 view .LVU1068 3596 001e 0133 adds r3, r3, #1 3597 0020 023D subs r5, r5, #2 3598 0022 C554 strb r5, [r0, r3] 1816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3599 .loc 1 1816 5 is_stmt 1 discriminator 2 view .LVU1069 1816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3600 .loc 1 1816 23 is_stmt 0 discriminator 2 view .LVU1070 3601 0024 0025 movs r5, #0 3602 0026 4564 str r5, [r0, #68] 1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3603 .loc 1 1819 5 is_stmt 1 discriminator 2 view .LVU1071 1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3604 .loc 1 1819 9 is_stmt 0 discriminator 2 view .LVU1072 3605 0028 0668 ldr r6, [r0] 1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3606 .loc 1 1819 25 discriminator 2 view .LVU1073 3607 002a 7368 ldr r3, [r6, #4] 3608 002c 0A4F ldr r7, .L229 3609 002e 3B40 ands r3, r7 3610 0030 7360 str r3, [r6, #4] 1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3611 .loc 1 1822 5 is_stmt 1 discriminator 2 view .LVU1074 1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3612 .loc 1 1822 23 is_stmt 0 discriminator 2 view .LVU1075 3613 0032 4162 str r1, [r0, #36] 1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3614 .loc 1 1823 5 is_stmt 1 discriminator 2 view .LVU1076 1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3615 .loc 1 1823 23 is_stmt 0 discriminator 2 view .LVU1077 3616 0034 4285 strh r2, [r0, #42] 1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3617 .loc 1 1824 5 is_stmt 1 discriminator 2 view .LVU1078 1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3618 .loc 1 1824 29 is_stmt 0 discriminator 2 view .LVU1079 ARM GAS /tmp/ccRVAHyi.s page 200 3619 0036 438D ldrh r3, [r0, #42] 1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3620 .loc 1 1824 23 discriminator 2 view .LVU1080 3621 0038 0385 strh r3, [r0, #40] 1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3622 .loc 1 1825 5 is_stmt 1 discriminator 2 view .LVU1081 1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3623 .loc 1 1825 23 is_stmt 0 discriminator 2 view .LVU1082 3624 003a 084B ldr r3, .L229+4 3625 003c C362 str r3, [r0, #44] 1826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3626 .loc 1 1826 5 is_stmt 1 discriminator 2 view .LVU1083 1826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3627 .loc 1 1826 23 is_stmt 0 discriminator 2 view .LVU1084 3628 003e 084B ldr r3, .L229+8 3629 0040 4363 str r3, [r0, #52] 1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3630 .loc 1 1829 5 is_stmt 1 discriminator 2 view .LVU1085 1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3631 .loc 1 1829 5 discriminator 2 view .LVU1086 3632 0042 0555 strb r5, [r0, r4] 1839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3633 .loc 1 1839 5 discriminator 2 view .LVU1087 3634 0044 0749 ldr r1, .L229+12 3635 .LVL231: 1839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3636 .loc 1 1839 5 is_stmt 0 discriminator 2 view .LVU1088 3637 0046 FFF7FEFF bl I2C_Enable_IRQ 3638 .LVL232: 1841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3639 .loc 1 1841 5 is_stmt 1 discriminator 2 view .LVU1089 1841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3640 .loc 1 1841 12 is_stmt 0 discriminator 2 view .LVU1090 3641 004a 0020 movs r0, #0 3642 .L226: 1847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3643 .loc 1 1847 1 view .LVU1091 3644 @ sp needed 3645 004c F8BD pop {r3, r4, r5, r6, r7, pc} 3646 .LVL233: 3647 .L227: 1845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3648 .loc 1 1845 12 view .LVU1092 3649 004e 0220 movs r0, #2 3650 .LVL234: 1845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3651 .loc 1 1845 12 view .LVU1093 3652 0050 FCE7 b .L226 3653 .LVL235: 3654 .L228: 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3655 .loc 1 1812 5 view .LVU1094 3656 0052 0220 movs r0, #2 3657 .LVL236: 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3658 .loc 1 1812 5 view .LVU1095 3659 0054 FAE7 b .L226 ARM GAS /tmp/ccRVAHyi.s page 201 3660 .L230: 3661 0056 C046 .align 2 3662 .L229: 3663 0058 FF7FFFFF .word -32769 3664 005c 0000FFFF .word -65536 3665 0060 00000000 .word I2C_Slave_ISR_IT 3666 0064 02800000 .word 32770 3667 .cfi_endproc 3668 .LFE51: 3670 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3671 .align 1 3672 .global HAL_I2C_Master_Transmit_DMA 3673 .syntax unified 3674 .code 16 3675 .thumb_func 3676 .fpu softvfp 3678 HAL_I2C_Master_Transmit_DMA: 3679 .LVL237: 3680 .LFB52: 1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3681 .loc 1 1861 1 is_stmt 1 view -0 3682 .cfi_startproc 3683 @ args = 0, pretend = 0, frame = 0 3684 @ frame_needed = 0, uses_anonymous_args = 0 1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3685 .loc 1 1861 1 is_stmt 0 view .LVU1097 3686 0000 70B5 push {r4, r5, r6, lr} 3687 .LCFI27: 3688 .cfi_def_cfa_offset 16 3689 .cfi_offset 4, -16 3690 .cfi_offset 5, -12 3691 .cfi_offset 6, -8 3692 .cfi_offset 14, -4 3693 0002 82B0 sub sp, sp, #8 3694 .LCFI28: 3695 .cfi_def_cfa_offset 24 3696 0004 0400 movs r4, r0 3697 0006 0D00 movs r5, r1 3698 0008 1100 movs r1, r2 3699 .LVL238: 1862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3700 .loc 1 1862 3 is_stmt 1 view .LVU1098 1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3701 .loc 1 1863 3 view .LVU1099 1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3702 .loc 1 1865 3 view .LVU1100 1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3703 .loc 1 1865 11 is_stmt 0 view .LVU1101 3704 000a 4122 movs r2, #65 3705 .LVL239: 1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3706 .loc 1 1865 11 view .LVU1102 3707 000c 825C ldrb r2, [r0, r2] 1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3708 .loc 1 1865 6 view .LVU1103 3709 000e 202A cmp r2, #32 3710 0010 00D0 beq .LCB3445 ARM GAS /tmp/ccRVAHyi.s page 202 3711 0012 8BE0 b .L240 @long jump 3712 .LCB3445: 1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3713 .loc 1 1867 5 is_stmt 1 view .LVU1104 1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3714 .loc 1 1867 9 is_stmt 0 view .LVU1105 3715 0014 0268 ldr r2, [r0] 3716 0016 9269 ldr r2, [r2, #24] 1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3717 .loc 1 1867 8 view .LVU1106 3718 0018 1204 lsls r2, r2, #16 3719 001a 00D5 bpl .LCB3452 3720 001c 89E0 b .L241 @long jump 3721 .LCB3452: 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3722 .loc 1 1873 5 is_stmt 1 view .LVU1107 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3723 .loc 1 1873 5 view .LVU1108 3724 001e 4022 movs r2, #64 3725 0020 825C ldrb r2, [r0, r2] 3726 0022 012A cmp r2, #1 3727 0024 00D1 bne .LCB3458 3728 0026 86E0 b .L242 @long jump 3729 .LCB3458: 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3730 .loc 1 1873 5 discriminator 2 view .LVU1109 3731 0028 4022 movs r2, #64 3732 002a 0120 movs r0, #1 3733 .LVL240: 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3734 .loc 1 1873 5 is_stmt 0 discriminator 2 view .LVU1110 3735 002c A054 strb r0, [r4, r2] 1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3736 .loc 1 1875 5 is_stmt 1 discriminator 2 view .LVU1111 1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3737 .loc 1 1875 23 is_stmt 0 discriminator 2 view .LVU1112 3738 002e 0132 adds r2, r2, #1 3739 0030 2030 adds r0, r0, #32 3740 0032 A054 strb r0, [r4, r2] 1876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3741 .loc 1 1876 5 is_stmt 1 discriminator 2 view .LVU1113 1876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3742 .loc 1 1876 23 is_stmt 0 discriminator 2 view .LVU1114 3743 0034 0132 adds r2, r2, #1 3744 0036 1138 subs r0, r0, #17 3745 0038 A054 strb r0, [r4, r2] 1877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3746 .loc 1 1877 5 is_stmt 1 discriminator 2 view .LVU1115 1877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3747 .loc 1 1877 23 is_stmt 0 discriminator 2 view .LVU1116 3748 003a 0022 movs r2, #0 3749 003c 6264 str r2, [r4, #68] 1880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3750 .loc 1 1880 5 is_stmt 1 discriminator 2 view .LVU1117 1880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3751 .loc 1 1880 23 is_stmt 0 discriminator 2 view .LVU1118 3752 003e 6162 str r1, [r4, #36] ARM GAS /tmp/ccRVAHyi.s page 203 1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3753 .loc 1 1881 5 is_stmt 1 discriminator 2 view .LVU1119 1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3754 .loc 1 1881 23 is_stmt 0 discriminator 2 view .LVU1120 3755 0040 6385 strh r3, [r4, #42] 1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3756 .loc 1 1882 5 is_stmt 1 discriminator 2 view .LVU1121 1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3757 .loc 1 1882 23 is_stmt 0 discriminator 2 view .LVU1122 3758 0042 3E4B ldr r3, .L245 3759 .LVL241: 1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3760 .loc 1 1882 23 discriminator 2 view .LVU1123 3761 0044 E362 str r3, [r4, #44] 3762 .LVL242: 1883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3763 .loc 1 1883 5 is_stmt 1 discriminator 2 view .LVU1124 1883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3764 .loc 1 1883 23 is_stmt 0 discriminator 2 view .LVU1125 3765 0046 3E4B ldr r3, .L245+4 3766 0048 6363 str r3, [r4, #52] 1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3767 .loc 1 1885 5 is_stmt 1 discriminator 2 view .LVU1126 1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3768 .loc 1 1885 13 is_stmt 0 discriminator 2 view .LVU1127 3769 004a 638D ldrh r3, [r4, #42] 3770 004c 9BB2 uxth r3, r3 1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3771 .loc 1 1885 8 discriminator 2 view .LVU1128 3772 004e FF2B cmp r3, #255 3773 0050 29D9 bls .L233 1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3774 .loc 1 1887 7 is_stmt 1 view .LVU1129 1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3775 .loc 1 1887 22 is_stmt 0 view .LVU1130 3776 0052 FF23 movs r3, #255 3777 0054 2385 strh r3, [r4, #40] 1888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3778 .loc 1 1888 7 is_stmt 1 view .LVU1131 3779 .LVL243: 1888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3780 .loc 1 1888 16 is_stmt 0 view .LVU1132 3781 0056 8026 movs r6, #128 3782 0058 7604 lsls r6, r6, #17 3783 .LVL244: 3784 .L234: 1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3785 .loc 1 1896 5 is_stmt 1 view .LVU1133 1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3786 .loc 1 1896 13 is_stmt 0 view .LVU1134 3787 005a 228D ldrh r2, [r4, #40] 1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3788 .loc 1 1896 8 view .LVU1135 3789 005c 002A cmp r2, #0 3790 005e 51D0 beq .L235 1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3791 .loc 1 1898 7 is_stmt 1 view .LVU1136 ARM GAS /tmp/ccRVAHyi.s page 204 1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3792 .loc 1 1898 15 is_stmt 0 view .LVU1137 3793 0060 A36B ldr r3, [r4, #56] 1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3794 .loc 1 1898 10 view .LVU1138 3795 0062 002B cmp r3, #0 3796 0064 24D0 beq .L236 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3797 .loc 1 1901 9 is_stmt 1 view .LVU1139 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3798 .loc 1 1901 40 is_stmt 0 view .LVU1140 3799 0066 374A ldr r2, .L245+8 3800 0068 9A62 str r2, [r3, #40] 1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3801 .loc 1 1904 9 is_stmt 1 view .LVU1141 1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3802 .loc 1 1904 13 is_stmt 0 view .LVU1142 3803 006a A36B ldr r3, [r4, #56] 1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3804 .loc 1 1904 41 view .LVU1143 3805 006c 364A ldr r2, .L245+12 3806 006e 1A63 str r2, [r3, #48] 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3807 .loc 1 1907 9 is_stmt 1 view .LVU1144 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3808 .loc 1 1907 13 is_stmt 0 view .LVU1145 3809 0070 A26B ldr r2, [r4, #56] 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3810 .loc 1 1907 44 view .LVU1146 3811 0072 0023 movs r3, #0 3812 0074 D362 str r3, [r2, #44] 1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3813 .loc 1 1908 9 is_stmt 1 view .LVU1147 1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3814 .loc 1 1908 13 is_stmt 0 view .LVU1148 3815 0076 A26B ldr r2, [r4, #56] 1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3816 .loc 1 1908 41 view .LVU1149 3817 0078 5363 str r3, [r2, #52] 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3818 .loc 1 1911 9 is_stmt 1 view .LVU1150 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3819 .loc 1 1911 83 is_stmt 0 view .LVU1151 3820 007a 2268 ldr r2, [r4] 3821 007c 2832 adds r2, r2, #40 1912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3822 .loc 1 1912 46 view .LVU1152 3823 007e 238D ldrh r3, [r4, #40] 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3824 .loc 1 1911 25 view .LVU1153 3825 0080 A06B ldr r0, [r4, #56] 3826 0082 FFF7FEFF bl HAL_DMA_Start_IT 3827 .LVL245: 1929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3828 .loc 1 1929 7 is_stmt 1 view .LVU1154 1929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3829 .loc 1 1929 10 is_stmt 0 view .LVU1155 ARM GAS /tmp/ccRVAHyi.s page 205 3830 0086 0028 cmp r0, #0 3831 0088 20D0 beq .L244 1953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3832 .loc 1 1953 9 is_stmt 1 view .LVU1156 1953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3833 .loc 1 1953 25 is_stmt 0 view .LVU1157 3834 008a 4123 movs r3, #65 3835 008c 2022 movs r2, #32 3836 008e E254 strb r2, [r4, r3] 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3837 .loc 1 1954 9 is_stmt 1 view .LVU1158 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3838 .loc 1 1954 25 is_stmt 0 view .LVU1159 3839 0090 0022 movs r2, #0 3840 0092 0133 adds r3, r3, #1 3841 0094 E254 strb r2, [r4, r3] 1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3842 .loc 1 1957 9 is_stmt 1 view .LVU1160 1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3843 .loc 1 1957 25 is_stmt 0 view .LVU1161 3844 0096 636C ldr r3, [r4, #68] 3845 0098 1021 movs r1, #16 3846 009a 0B43 orrs r3, r1 3847 009c 6364 str r3, [r4, #68] 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3848 .loc 1 1960 9 is_stmt 1 view .LVU1162 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3849 .loc 1 1960 9 view .LVU1163 3850 009e 4023 movs r3, #64 3851 00a0 E254 strb r2, [r4, r3] 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3852 .loc 1 1962 9 view .LVU1164 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3853 .loc 1 1962 16 is_stmt 0 view .LVU1165 3854 00a2 0120 movs r0, #1 3855 .LVL246: 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3856 .loc 1 1962 16 view .LVU1166 3857 00a4 43E0 b .L232 3858 .LVL247: 3859 .L233: 1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3860 .loc 1 1892 7 is_stmt 1 view .LVU1167 1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3861 .loc 1 1892 28 is_stmt 0 view .LVU1168 3862 00a6 638D ldrh r3, [r4, #42] 1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3863 .loc 1 1892 22 view .LVU1169 3864 00a8 2385 strh r3, [r4, #40] 1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3865 .loc 1 1893 7 is_stmt 1 view .LVU1170 3866 .LVL248: 1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3867 .loc 1 1893 16 is_stmt 0 view .LVU1171 3868 00aa 8026 movs r6, #128 3869 00ac B604 lsls r6, r6, #18 3870 00ae D4E7 b .L234 ARM GAS /tmp/ccRVAHyi.s page 206 3871 .LVL249: 3872 .L236: 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3873 .loc 1 1917 9 is_stmt 1 view .LVU1172 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3874 .loc 1 1917 25 is_stmt 0 view .LVU1173 3875 00b0 4123 movs r3, #65 3876 00b2 2022 movs r2, #32 3877 00b4 E254 strb r2, [r4, r3] 1918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3878 .loc 1 1918 9 is_stmt 1 view .LVU1174 1918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3879 .loc 1 1918 25 is_stmt 0 view .LVU1175 3880 00b6 0022 movs r2, #0 3881 00b8 0133 adds r3, r3, #1 3882 00ba E254 strb r2, [r4, r3] 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3883 .loc 1 1921 9 is_stmt 1 view .LVU1176 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3884 .loc 1 1921 25 is_stmt 0 view .LVU1177 3885 00bc 636C ldr r3, [r4, #68] 3886 00be 8021 movs r1, #128 3887 .LVL250: 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3888 .loc 1 1921 25 view .LVU1178 3889 00c0 0B43 orrs r3, r1 3890 00c2 6364 str r3, [r4, #68] 1924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3891 .loc 1 1924 9 is_stmt 1 view .LVU1179 1924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3892 .loc 1 1924 9 view .LVU1180 3893 00c4 4023 movs r3, #64 3894 00c6 E254 strb r2, [r4, r3] 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3895 .loc 1 1926 9 view .LVU1181 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3896 .loc 1 1926 16 is_stmt 0 view .LVU1182 3897 00c8 0120 movs r0, #1 3898 00ca 30E0 b .L232 3899 .LVL251: 3900 .L244: 1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3901 .loc 1 1933 9 is_stmt 1 view .LVU1183 1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3902 .loc 1 1933 59 is_stmt 0 view .LVU1184 3903 00cc 228D ldrh r2, [r4, #40] 1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3904 .loc 1 1933 9 view .LVU1185 3905 00ce D2B2 uxtb r2, r2 3906 00d0 1E4B ldr r3, .L245+16 3907 00d2 0093 str r3, [sp] 3908 00d4 3300 movs r3, r6 3909 00d6 2900 movs r1, r5 3910 00d8 2000 movs r0, r4 3911 .LVL252: 1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3912 .loc 1 1933 9 view .LVU1186 ARM GAS /tmp/ccRVAHyi.s page 207 3913 00da FFF7FEFF bl I2C_TransferConfig 3914 .LVL253: 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3915 .loc 1 1936 9 is_stmt 1 view .LVU1187 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3916 .loc 1 1936 25 is_stmt 0 view .LVU1188 3917 00de 638D ldrh r3, [r4, #42] 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3918 .loc 1 1936 32 view .LVU1189 3919 00e0 228D ldrh r2, [r4, #40] 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3920 .loc 1 1936 25 view .LVU1190 3921 00e2 9B1A subs r3, r3, r2 3922 00e4 9BB2 uxth r3, r3 3923 00e6 6385 strh r3, [r4, #42] 1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3924 .loc 1 1939 9 is_stmt 1 view .LVU1191 1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3925 .loc 1 1939 9 view .LVU1192 3926 00e8 4023 movs r3, #64 3927 00ea 0022 movs r2, #0 3928 00ec E254 strb r2, [r4, r3] 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3929 .loc 1 1945 9 view .LVU1193 3930 00ee 1021 movs r1, #16 3931 00f0 2000 movs r0, r4 3932 00f2 FFF7FEFF bl I2C_Enable_IRQ 3933 .LVL254: 1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3934 .loc 1 1948 9 view .LVU1194 1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3935 .loc 1 1948 13 is_stmt 0 view .LVU1195 3936 00f6 2268 ldr r2, [r4] 1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3937 .loc 1 1948 29 view .LVU1196 3938 00f8 1168 ldr r1, [r2] 3939 00fa 8023 movs r3, #128 3940 00fc DB01 lsls r3, r3, #7 3941 00fe 0B43 orrs r3, r1 3942 0100 1360 str r3, [r2] 3943 0102 11E0 b .L239 3944 .LVL255: 3945 .L235: 1968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3946 .loc 1 1968 7 is_stmt 1 view .LVU1197 1968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3947 .loc 1 1968 21 is_stmt 0 view .LVU1198 3948 0104 124B ldr r3, .L245+20 3949 0106 6363 str r3, [r4, #52] 1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3950 .loc 1 1972 7 is_stmt 1 view .LVU1199 3951 0108 8023 movs r3, #128 3952 010a D2B2 uxtb r2, r2 3953 010c 0F49 ldr r1, .L245+16 3954 .LVL256: 1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3955 .loc 1 1972 7 is_stmt 0 view .LVU1200 ARM GAS /tmp/ccRVAHyi.s page 208 3956 010e 0091 str r1, [sp] 3957 .LVL257: 1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3958 .loc 1 1972 7 view .LVU1201 3959 0110 9B04 lsls r3, r3, #18 3960 0112 2900 movs r1, r5 3961 0114 2000 movs r0, r4 3962 0116 FFF7FEFF bl I2C_TransferConfig 3963 .LVL258: 1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3964 .loc 1 1976 7 is_stmt 1 view .LVU1202 1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3965 .loc 1 1976 7 view .LVU1203 3966 011a 4023 movs r3, #64 3967 011c 0022 movs r2, #0 3968 011e E254 strb r2, [r4, r3] 1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3969 .loc 1 1985 7 view .LVU1204 3970 0120 0121 movs r1, #1 3971 0122 2000 movs r0, r4 3972 0124 FFF7FEFF bl I2C_Enable_IRQ 3973 .LVL259: 3974 .L239: 1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3975 .loc 1 1988 5 view .LVU1205 1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3976 .loc 1 1988 12 is_stmt 0 view .LVU1206 3977 0128 0020 movs r0, #0 3978 012a 00E0 b .L232 3979 .LVL260: 3980 .L240: 1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3981 .loc 1 1992 12 view .LVU1207 3982 012c 0220 movs r0, #2 3983 .LVL261: 3984 .L232: 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3985 .loc 1 1994 1 view .LVU1208 3986 012e 02B0 add sp, sp, #8 3987 @ sp needed 3988 .LVL262: 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3989 .loc 1 1994 1 view .LVU1209 3990 0130 70BD pop {r4, r5, r6, pc} 3991 .LVL263: 3992 .L241: 1869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3993 .loc 1 1869 14 view .LVU1210 3994 0132 0220 movs r0, #2 3995 .LVL264: 1869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3996 .loc 1 1869 14 view .LVU1211 3997 0134 FBE7 b .L232 3998 .LVL265: 3999 .L242: 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4000 .loc 1 1873 5 view .LVU1212 ARM GAS /tmp/ccRVAHyi.s page 209 4001 0136 0220 movs r0, #2 4002 .LVL266: 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4003 .loc 1 1873 5 view .LVU1213 4004 0138 F9E7 b .L232 4005 .L246: 4006 013a C046 .align 2 4007 .L245: 4008 013c 0000FFFF .word -65536 4009 0140 00000000 .word I2C_Master_ISR_DMA 4010 0144 00000000 .word I2C_DMAMasterTransmitCplt 4011 0148 00000000 .word I2C_DMAError 4012 014c 00200080 .word -2147475456 4013 0150 00000000 .word I2C_Master_ISR_IT 4014 .cfi_endproc 4015 .LFE52: 4017 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4018 .align 1 4019 .global HAL_I2C_Master_Receive_DMA 4020 .syntax unified 4021 .code 16 4022 .thumb_func 4023 .fpu softvfp 4025 HAL_I2C_Master_Receive_DMA: 4026 .LVL267: 4027 .LFB53: 2008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 4028 .loc 1 2008 1 is_stmt 1 view -0 4029 .cfi_startproc 4030 @ args = 0, pretend = 0, frame = 0 4031 @ frame_needed = 0, uses_anonymous_args = 0 2008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 4032 .loc 1 2008 1 is_stmt 0 view .LVU1215 4033 0000 70B5 push {r4, r5, r6, lr} 4034 .LCFI29: 4035 .cfi_def_cfa_offset 16 4036 .cfi_offset 4, -16 4037 .cfi_offset 5, -12 4038 .cfi_offset 6, -8 4039 .cfi_offset 14, -4 4040 0002 82B0 sub sp, sp, #8 4041 .LCFI30: 4042 .cfi_def_cfa_offset 24 4043 0004 0400 movs r4, r0 4044 0006 0D00 movs r5, r1 2009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4045 .loc 1 2009 3 is_stmt 1 view .LVU1216 2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4046 .loc 1 2010 3 view .LVU1217 2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4047 .loc 1 2012 3 view .LVU1218 2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4048 .loc 1 2012 11 is_stmt 0 view .LVU1219 4049 0008 4121 movs r1, #65 4050 .LVL268: 2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4051 .loc 1 2012 11 view .LVU1220 ARM GAS /tmp/ccRVAHyi.s page 210 4052 000a 415C ldrb r1, [r0, r1] 2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4053 .loc 1 2012 6 view .LVU1221 4054 000c 2029 cmp r1, #32 4055 000e 00D0 beq .LCB3756 4056 0010 8BE0 b .L256 @long jump 4057 .LCB3756: 2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4058 .loc 1 2014 5 is_stmt 1 view .LVU1222 2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4059 .loc 1 2014 9 is_stmt 0 view .LVU1223 4060 0012 0168 ldr r1, [r0] 4061 0014 8969 ldr r1, [r1, #24] 2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4062 .loc 1 2014 8 view .LVU1224 4063 0016 0904 lsls r1, r1, #16 4064 0018 00D5 bpl .LCB3763 4065 001a 89E0 b .L257 @long jump 4066 .LCB3763: 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4067 .loc 1 2020 5 is_stmt 1 view .LVU1225 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4068 .loc 1 2020 5 view .LVU1226 4069 001c 4021 movs r1, #64 4070 001e 415C ldrb r1, [r0, r1] 4071 0020 0129 cmp r1, #1 4072 0022 00D1 bne .LCB3769 4073 0024 86E0 b .L258 @long jump 4074 .LCB3769: 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4075 .loc 1 2020 5 discriminator 2 view .LVU1227 4076 0026 4021 movs r1, #64 4077 0028 0120 movs r0, #1 4078 .LVL269: 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4079 .loc 1 2020 5 is_stmt 0 discriminator 2 view .LVU1228 4080 002a 6054 strb r0, [r4, r1] 2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4081 .loc 1 2022 5 is_stmt 1 discriminator 2 view .LVU1229 2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4082 .loc 1 2022 23 is_stmt 0 discriminator 2 view .LVU1230 4083 002c 0131 adds r1, r1, #1 4084 002e 2130 adds r0, r0, #33 4085 0030 6054 strb r0, [r4, r1] 2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4086 .loc 1 2023 5 is_stmt 1 discriminator 2 view .LVU1231 2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4087 .loc 1 2023 23 is_stmt 0 discriminator 2 view .LVU1232 4088 0032 0131 adds r1, r1, #1 4089 0034 1238 subs r0, r0, #18 4090 0036 6054 strb r0, [r4, r1] 2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4091 .loc 1 2024 5 is_stmt 1 discriminator 2 view .LVU1233 2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4092 .loc 1 2024 23 is_stmt 0 discriminator 2 view .LVU1234 4093 0038 0021 movs r1, #0 4094 003a 6164 str r1, [r4, #68] ARM GAS /tmp/ccRVAHyi.s page 211 2027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4095 .loc 1 2027 5 is_stmt 1 discriminator 2 view .LVU1235 2027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4096 .loc 1 2027 23 is_stmt 0 discriminator 2 view .LVU1236 4097 003c 6262 str r2, [r4, #36] 2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4098 .loc 1 2028 5 is_stmt 1 discriminator 2 view .LVU1237 2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4099 .loc 1 2028 23 is_stmt 0 discriminator 2 view .LVU1238 4100 003e 6385 strh r3, [r4, #42] 2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4101 .loc 1 2029 5 is_stmt 1 discriminator 2 view .LVU1239 2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4102 .loc 1 2029 23 is_stmt 0 discriminator 2 view .LVU1240 4103 0040 3D4B ldr r3, .L261 4104 .LVL270: 2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4105 .loc 1 2029 23 discriminator 2 view .LVU1241 4106 0042 E362 str r3, [r4, #44] 4107 .LVL271: 2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4108 .loc 1 2030 5 is_stmt 1 discriminator 2 view .LVU1242 2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4109 .loc 1 2030 23 is_stmt 0 discriminator 2 view .LVU1243 4110 0044 3D4B ldr r3, .L261+4 4111 0046 6363 str r3, [r4, #52] 2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4112 .loc 1 2032 5 is_stmt 1 discriminator 2 view .LVU1244 2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4113 .loc 1 2032 13 is_stmt 0 discriminator 2 view .LVU1245 4114 0048 638D ldrh r3, [r4, #42] 4115 004a 9BB2 uxth r3, r3 2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4116 .loc 1 2032 8 discriminator 2 view .LVU1246 4117 004c FF2B cmp r3, #255 4118 004e 29D9 bls .L249 2034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4119 .loc 1 2034 7 is_stmt 1 view .LVU1247 2034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4120 .loc 1 2034 22 is_stmt 0 view .LVU1248 4121 0050 FF23 movs r3, #255 4122 0052 2385 strh r3, [r4, #40] 2035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4123 .loc 1 2035 7 is_stmt 1 view .LVU1249 4124 .LVL272: 2035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4125 .loc 1 2035 16 is_stmt 0 view .LVU1250 4126 0054 8026 movs r6, #128 4127 0056 7604 lsls r6, r6, #17 4128 .LVL273: 4129 .L250: 2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4130 .loc 1 2043 5 is_stmt 1 view .LVU1251 2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4131 .loc 1 2043 13 is_stmt 0 view .LVU1252 4132 0058 218D ldrh r1, [r4, #40] 2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 212 4133 .loc 1 2043 8 view .LVU1253 4134 005a 0029 cmp r1, #0 4135 005c 51D0 beq .L251 2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4136 .loc 1 2045 7 is_stmt 1 view .LVU1254 2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4137 .loc 1 2045 15 is_stmt 0 view .LVU1255 4138 005e E36B ldr r3, [r4, #60] 2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4139 .loc 1 2045 10 view .LVU1256 4140 0060 002B cmp r3, #0 4141 0062 24D0 beq .L252 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4142 .loc 1 2048 9 is_stmt 1 view .LVU1257 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4143 .loc 1 2048 40 is_stmt 0 view .LVU1258 4144 0064 3649 ldr r1, .L261+8 4145 0066 9962 str r1, [r3, #40] 2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4146 .loc 1 2051 9 is_stmt 1 view .LVU1259 2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4147 .loc 1 2051 13 is_stmt 0 view .LVU1260 4148 0068 E36B ldr r3, [r4, #60] 2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4149 .loc 1 2051 41 view .LVU1261 4150 006a 3649 ldr r1, .L261+12 4151 006c 1963 str r1, [r3, #48] 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4152 .loc 1 2054 9 is_stmt 1 view .LVU1262 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4153 .loc 1 2054 13 is_stmt 0 view .LVU1263 4154 006e E16B ldr r1, [r4, #60] 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4155 .loc 1 2054 44 view .LVU1264 4156 0070 0023 movs r3, #0 4157 0072 CB62 str r3, [r1, #44] 2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4158 .loc 1 2055 9 is_stmt 1 view .LVU1265 2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4159 .loc 1 2055 13 is_stmt 0 view .LVU1266 4160 0074 E16B ldr r1, [r4, #60] 2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4161 .loc 1 2055 41 view .LVU1267 4162 0076 4B63 str r3, [r1, #52] 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4163 .loc 1 2058 9 is_stmt 1 view .LVU1268 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4164 .loc 1 2058 66 is_stmt 0 view .LVU1269 4165 0078 2168 ldr r1, [r4] 4166 007a 2431 adds r1, r1, #36 2059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4167 .loc 1 2059 46 view .LVU1270 4168 007c 238D ldrh r3, [r4, #40] 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4169 .loc 1 2058 25 view .LVU1271 4170 007e E06B ldr r0, [r4, #60] 4171 0080 FFF7FEFF bl HAL_DMA_Start_IT ARM GAS /tmp/ccRVAHyi.s page 213 4172 .LVL274: 2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4173 .loc 1 2076 7 is_stmt 1 view .LVU1272 2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4174 .loc 1 2076 10 is_stmt 0 view .LVU1273 4175 0084 0028 cmp r0, #0 4176 0086 20D0 beq .L260 2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4177 .loc 1 2100 9 is_stmt 1 view .LVU1274 2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4178 .loc 1 2100 25 is_stmt 0 view .LVU1275 4179 0088 4123 movs r3, #65 4180 008a 2022 movs r2, #32 4181 008c E254 strb r2, [r4, r3] 2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4182 .loc 1 2101 9 is_stmt 1 view .LVU1276 2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4183 .loc 1 2101 25 is_stmt 0 view .LVU1277 4184 008e 0022 movs r2, #0 4185 0090 0133 adds r3, r3, #1 4186 0092 E254 strb r2, [r4, r3] 2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4187 .loc 1 2104 9 is_stmt 1 view .LVU1278 2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4188 .loc 1 2104 25 is_stmt 0 view .LVU1279 4189 0094 636C ldr r3, [r4, #68] 4190 0096 1021 movs r1, #16 4191 0098 0B43 orrs r3, r1 4192 009a 6364 str r3, [r4, #68] 2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4193 .loc 1 2107 9 is_stmt 1 view .LVU1280 2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4194 .loc 1 2107 9 view .LVU1281 4195 009c 4023 movs r3, #64 4196 009e E254 strb r2, [r4, r3] 2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4197 .loc 1 2109 9 view .LVU1282 2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4198 .loc 1 2109 16 is_stmt 0 view .LVU1283 4199 00a0 0120 movs r0, #1 4200 .LVL275: 2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4201 .loc 1 2109 16 view .LVU1284 4202 00a2 43E0 b .L248 4203 .LVL276: 4204 .L249: 2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4205 .loc 1 2039 7 is_stmt 1 view .LVU1285 2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4206 .loc 1 2039 28 is_stmt 0 view .LVU1286 4207 00a4 638D ldrh r3, [r4, #42] 2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4208 .loc 1 2039 22 view .LVU1287 4209 00a6 2385 strh r3, [r4, #40] 2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4210 .loc 1 2040 7 is_stmt 1 view .LVU1288 4211 .LVL277: ARM GAS /tmp/ccRVAHyi.s page 214 2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4212 .loc 1 2040 16 is_stmt 0 view .LVU1289 4213 00a8 8026 movs r6, #128 4214 00aa B604 lsls r6, r6, #18 4215 00ac D4E7 b .L250 4216 .LVL278: 4217 .L252: 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4218 .loc 1 2064 9 is_stmt 1 view .LVU1290 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4219 .loc 1 2064 25 is_stmt 0 view .LVU1291 4220 00ae 4123 movs r3, #65 4221 00b0 2022 movs r2, #32 4222 .LVL279: 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4223 .loc 1 2064 25 view .LVU1292 4224 00b2 E254 strb r2, [r4, r3] 4225 .LVL280: 2065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4226 .loc 1 2065 9 is_stmt 1 view .LVU1293 2065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4227 .loc 1 2065 25 is_stmt 0 view .LVU1294 4228 00b4 0022 movs r2, #0 4229 00b6 0133 adds r3, r3, #1 4230 00b8 E254 strb r2, [r4, r3] 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4231 .loc 1 2068 9 is_stmt 1 view .LVU1295 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4232 .loc 1 2068 25 is_stmt 0 view .LVU1296 4233 00ba 636C ldr r3, [r4, #68] 4234 00bc 8021 movs r1, #128 4235 00be 0B43 orrs r3, r1 4236 00c0 6364 str r3, [r4, #68] 2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4237 .loc 1 2071 9 is_stmt 1 view .LVU1297 2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4238 .loc 1 2071 9 view .LVU1298 4239 00c2 4023 movs r3, #64 4240 00c4 E254 strb r2, [r4, r3] 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4241 .loc 1 2073 9 view .LVU1299 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4242 .loc 1 2073 16 is_stmt 0 view .LVU1300 4243 00c6 0120 movs r0, #1 4244 00c8 30E0 b .L248 4245 .LVL281: 4246 .L260: 2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4247 .loc 1 2080 9 is_stmt 1 view .LVU1301 2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4248 .loc 1 2080 59 is_stmt 0 view .LVU1302 4249 00ca 228D ldrh r2, [r4, #40] 2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4250 .loc 1 2080 9 view .LVU1303 4251 00cc D2B2 uxtb r2, r2 4252 00ce 1E4B ldr r3, .L261+16 4253 00d0 0093 str r3, [sp] ARM GAS /tmp/ccRVAHyi.s page 215 4254 00d2 3300 movs r3, r6 4255 00d4 2900 movs r1, r5 4256 00d6 2000 movs r0, r4 4257 .LVL282: 2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4258 .loc 1 2080 9 view .LVU1304 4259 00d8 FFF7FEFF bl I2C_TransferConfig 4260 .LVL283: 2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4261 .loc 1 2083 9 is_stmt 1 view .LVU1305 2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4262 .loc 1 2083 25 is_stmt 0 view .LVU1306 4263 00dc 638D ldrh r3, [r4, #42] 2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4264 .loc 1 2083 32 view .LVU1307 4265 00de 228D ldrh r2, [r4, #40] 2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4266 .loc 1 2083 25 view .LVU1308 4267 00e0 9B1A subs r3, r3, r2 4268 00e2 9BB2 uxth r3, r3 4269 00e4 6385 strh r3, [r4, #42] 2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4270 .loc 1 2086 9 is_stmt 1 view .LVU1309 2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4271 .loc 1 2086 9 view .LVU1310 4272 00e6 4023 movs r3, #64 4273 00e8 0022 movs r2, #0 4274 00ea E254 strb r2, [r4, r3] 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4275 .loc 1 2092 9 view .LVU1311 4276 00ec 1021 movs r1, #16 4277 00ee 2000 movs r0, r4 4278 00f0 FFF7FEFF bl I2C_Enable_IRQ 4279 .LVL284: 2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4280 .loc 1 2095 9 view .LVU1312 2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4281 .loc 1 2095 13 is_stmt 0 view .LVU1313 4282 00f4 2268 ldr r2, [r4] 2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4283 .loc 1 2095 29 view .LVU1314 4284 00f6 1168 ldr r1, [r2] 4285 00f8 8023 movs r3, #128 4286 00fa 1B02 lsls r3, r3, #8 4287 00fc 0B43 orrs r3, r1 4288 00fe 1360 str r3, [r2] 4289 0100 11E0 b .L255 4290 .LVL285: 4291 .L251: 2115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4292 .loc 1 2115 7 is_stmt 1 view .LVU1315 2115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4293 .loc 1 2115 21 is_stmt 0 view .LVU1316 4294 0102 124B ldr r3, .L261+20 4295 0104 6363 str r3, [r4, #52] 2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4296 .loc 1 2119 7 is_stmt 1 view .LVU1317 ARM GAS /tmp/ccRVAHyi.s page 216 4297 0106 8023 movs r3, #128 4298 0108 CAB2 uxtb r2, r1 4299 .LVL286: 2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4300 .loc 1 2119 7 is_stmt 0 view .LVU1318 4301 010a 0F49 ldr r1, .L261+16 4302 010c 0091 str r1, [sp] 4303 .LVL287: 2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4304 .loc 1 2119 7 view .LVU1319 4305 010e 9B04 lsls r3, r3, #18 4306 0110 2900 movs r1, r5 4307 0112 2000 movs r0, r4 4308 0114 FFF7FEFF bl I2C_TransferConfig 4309 .LVL288: 2123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4310 .loc 1 2123 7 is_stmt 1 view .LVU1320 2123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4311 .loc 1 2123 7 view .LVU1321 4312 0118 4023 movs r3, #64 4313 011a 0022 movs r2, #0 4314 011c E254 strb r2, [r4, r3] 2132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4315 .loc 1 2132 7 view .LVU1322 4316 011e 0121 movs r1, #1 4317 0120 2000 movs r0, r4 4318 0122 FFF7FEFF bl I2C_Enable_IRQ 4319 .LVL289: 4320 .L255: 2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4321 .loc 1 2135 5 view .LVU1323 2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4322 .loc 1 2135 12 is_stmt 0 view .LVU1324 4323 0126 0020 movs r0, #0 4324 0128 00E0 b .L248 4325 .LVL290: 4326 .L256: 2139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4327 .loc 1 2139 12 view .LVU1325 4328 012a 0220 movs r0, #2 4329 .LVL291: 4330 .L248: 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4331 .loc 1 2141 1 view .LVU1326 4332 012c 02B0 add sp, sp, #8 4333 @ sp needed 4334 .LVL292: 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4335 .loc 1 2141 1 view .LVU1327 4336 012e 70BD pop {r4, r5, r6, pc} 4337 .LVL293: 4338 .L257: 2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4339 .loc 1 2016 14 view .LVU1328 4340 0130 0220 movs r0, #2 4341 .LVL294: 2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 217 4342 .loc 1 2016 14 view .LVU1329 4343 0132 FBE7 b .L248 4344 .LVL295: 4345 .L258: 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4346 .loc 1 2020 5 view .LVU1330 4347 0134 0220 movs r0, #2 4348 .LVL296: 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4349 .loc 1 2020 5 view .LVU1331 4350 0136 F9E7 b .L248 4351 .L262: 4352 .align 2 4353 .L261: 4354 0138 0000FFFF .word -65536 4355 013c 00000000 .word I2C_Master_ISR_DMA 4356 0140 00000000 .word I2C_DMAMasterReceiveCplt 4357 0144 00000000 .word I2C_DMAError 4358 0148 00240080 .word -2147474432 4359 014c 00000000 .word I2C_Master_ISR_IT 4360 .cfi_endproc 4361 .LFE53: 4363 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4364 .align 1 4365 .global HAL_I2C_Slave_Transmit_DMA 4366 .syntax unified 4367 .code 16 4368 .thumb_func 4369 .fpu softvfp 4371 HAL_I2C_Slave_Transmit_DMA: 4372 .LVL297: 4373 .LFB54: 2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4374 .loc 1 2152 1 is_stmt 1 view -0 4375 .cfi_startproc 4376 @ args = 0, pretend = 0, frame = 0 4377 @ frame_needed = 0, uses_anonymous_args = 0 2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4378 .loc 1 2152 1 is_stmt 0 view .LVU1333 4379 0000 70B5 push {r4, r5, r6, lr} 4380 .LCFI31: 4381 .cfi_def_cfa_offset 16 4382 .cfi_offset 4, -16 4383 .cfi_offset 5, -12 4384 .cfi_offset 6, -8 4385 .cfi_offset 14, -4 4386 0002 0400 movs r4, r0 2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4387 .loc 1 2153 3 is_stmt 1 view .LVU1334 2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4388 .loc 1 2155 3 view .LVU1335 2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4389 .loc 1 2155 11 is_stmt 0 view .LVU1336 4390 0004 4123 movs r3, #65 4391 0006 C35C ldrb r3, [r0, r3] 2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4392 .loc 1 2155 6 view .LVU1337 ARM GAS /tmp/ccRVAHyi.s page 218 4393 0008 202B cmp r3, #32 4394 000a 64D1 bne .L270 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4395 .loc 1 2157 5 is_stmt 1 view .LVU1338 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4396 .loc 1 2157 8 is_stmt 0 view .LVU1339 4397 000c 0029 cmp r1, #0 4398 000e 3BD0 beq .L265 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4399 .loc 1 2157 25 discriminator 1 view .LVU1340 4400 0010 002A cmp r2, #0 4401 0012 39D0 beq .L265 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4402 .loc 1 2163 5 is_stmt 1 view .LVU1341 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4403 .loc 1 2163 5 view .LVU1342 4404 0014 4023 movs r3, #64 4405 0016 C35C ldrb r3, [r0, r3] 4406 0018 012B cmp r3, #1 4407 001a 5FD0 beq .L271 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4408 .loc 1 2163 5 discriminator 2 view .LVU1343 4409 001c 4023 movs r3, #64 4410 001e 0120 movs r0, #1 4411 .LVL298: 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4412 .loc 1 2163 5 is_stmt 0 discriminator 2 view .LVU1344 4413 0020 E054 strb r0, [r4, r3] 2165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4414 .loc 1 2165 5 is_stmt 1 discriminator 2 view .LVU1345 2165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4415 .loc 1 2165 23 is_stmt 0 discriminator 2 view .LVU1346 4416 0022 0133 adds r3, r3, #1 4417 0024 2030 adds r0, r0, #32 4418 0026 E054 strb r0, [r4, r3] 2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4419 .loc 1 2166 5 is_stmt 1 discriminator 2 view .LVU1347 2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4420 .loc 1 2166 23 is_stmt 0 discriminator 2 view .LVU1348 4421 0028 0133 adds r3, r3, #1 4422 002a 0138 subs r0, r0, #1 4423 002c E054 strb r0, [r4, r3] 2167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4424 .loc 1 2167 5 is_stmt 1 discriminator 2 view .LVU1349 2167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4425 .loc 1 2167 23 is_stmt 0 discriminator 2 view .LVU1350 4426 002e 0023 movs r3, #0 4427 0030 6364 str r3, [r4, #68] 2170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4428 .loc 1 2170 5 is_stmt 1 discriminator 2 view .LVU1351 2170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4429 .loc 1 2170 23 is_stmt 0 discriminator 2 view .LVU1352 4430 0032 6162 str r1, [r4, #36] 2171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4431 .loc 1 2171 5 is_stmt 1 discriminator 2 view .LVU1353 2171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4432 .loc 1 2171 23 is_stmt 0 discriminator 2 view .LVU1354 ARM GAS /tmp/ccRVAHyi.s page 219 4433 0034 6285 strh r2, [r4, #42] 2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4434 .loc 1 2172 5 is_stmt 1 discriminator 2 view .LVU1355 2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4435 .loc 1 2172 29 is_stmt 0 discriminator 2 view .LVU1356 4436 0036 638D ldrh r3, [r4, #42] 2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4437 .loc 1 2172 23 discriminator 2 view .LVU1357 4438 0038 2385 strh r3, [r4, #40] 2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4439 .loc 1 2173 5 is_stmt 1 discriminator 2 view .LVU1358 2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4440 .loc 1 2173 23 is_stmt 0 discriminator 2 view .LVU1359 4441 003a 294B ldr r3, .L274 4442 003c E362 str r3, [r4, #44] 2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4443 .loc 1 2174 5 is_stmt 1 discriminator 2 view .LVU1360 2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4444 .loc 1 2174 23 is_stmt 0 discriminator 2 view .LVU1361 4445 003e 294B ldr r3, .L274+4 4446 0040 6363 str r3, [r4, #52] 2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4447 .loc 1 2176 5 is_stmt 1 discriminator 2 view .LVU1362 2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4448 .loc 1 2176 13 is_stmt 0 discriminator 2 view .LVU1363 4449 0042 A36B ldr r3, [r4, #56] 2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4450 .loc 1 2176 8 discriminator 2 view .LVU1364 4451 0044 002B cmp r3, #0 4452 0046 24D0 beq .L267 2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4453 .loc 1 2179 7 is_stmt 1 view .LVU1365 2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4454 .loc 1 2179 38 is_stmt 0 view .LVU1366 4455 0048 274A ldr r2, .L274+8 4456 .LVL299: 2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4457 .loc 1 2179 38 view .LVU1367 4458 004a 9A62 str r2, [r3, #40] 2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4459 .loc 1 2182 7 is_stmt 1 view .LVU1368 2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4460 .loc 1 2182 11 is_stmt 0 view .LVU1369 4461 004c A36B ldr r3, [r4, #56] 2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4462 .loc 1 2182 39 view .LVU1370 4463 004e 274A ldr r2, .L274+12 4464 0050 1A63 str r2, [r3, #48] 2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4465 .loc 1 2185 7 is_stmt 1 view .LVU1371 2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4466 .loc 1 2185 11 is_stmt 0 view .LVU1372 4467 0052 A26B ldr r2, [r4, #56] 2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4468 .loc 1 2185 42 view .LVU1373 4469 0054 0023 movs r3, #0 4470 0056 D362 str r3, [r2, #44] ARM GAS /tmp/ccRVAHyi.s page 220 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4471 .loc 1 2186 7 is_stmt 1 view .LVU1374 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4472 .loc 1 2186 11 is_stmt 0 view .LVU1375 4473 0058 A26B ldr r2, [r4, #56] 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4474 .loc 1 2186 39 view .LVU1376 4475 005a 5363 str r3, [r2, #52] 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4476 .loc 1 2189 7 is_stmt 1 view .LVU1377 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4477 .loc 1 2189 81 is_stmt 0 view .LVU1378 4478 005c 2268 ldr r2, [r4] 4479 005e 2832 adds r2, r2, #40 2190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4480 .loc 1 2190 44 view .LVU1379 4481 0060 238D ldrh r3, [r4, #40] 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4482 .loc 1 2189 23 view .LVU1380 4483 0062 A06B ldr r0, [r4, #56] 4484 0064 FFF7FEFF bl HAL_DMA_Start_IT 4485 .LVL300: 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4486 .loc 1 2189 23 view .LVU1381 4487 0068 051E subs r5, r0, #0 4488 .LVL301: 2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4489 .loc 1 2207 5 is_stmt 1 view .LVU1382 2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4490 .loc 1 2207 8 is_stmt 0 view .LVU1383 4491 006a 20D0 beq .L273 2227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4492 .loc 1 2227 7 is_stmt 1 view .LVU1384 2227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4493 .loc 1 2227 23 is_stmt 0 view .LVU1385 4494 006c 4123 movs r3, #65 4495 006e 2822 movs r2, #40 4496 0070 E254 strb r2, [r4, r3] 2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4497 .loc 1 2228 7 is_stmt 1 view .LVU1386 2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4498 .loc 1 2228 23 is_stmt 0 view .LVU1387 4499 0072 0022 movs r2, #0 4500 0074 0133 adds r3, r3, #1 4501 0076 E254 strb r2, [r4, r3] 2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4502 .loc 1 2231 7 is_stmt 1 view .LVU1388 2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4503 .loc 1 2231 23 is_stmt 0 view .LVU1389 4504 0078 636C ldr r3, [r4, #68] 4505 007a 1021 movs r1, #16 4506 007c 0B43 orrs r3, r1 4507 007e 6364 str r3, [r4, #68] 2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4508 .loc 1 2234 7 is_stmt 1 view .LVU1390 2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4509 .loc 1 2234 7 view .LVU1391 ARM GAS /tmp/ccRVAHyi.s page 221 4510 0080 4023 movs r3, #64 4511 0082 E254 strb r2, [r4, r3] 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4512 .loc 1 2236 7 view .LVU1392 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4513 .loc 1 2236 14 is_stmt 0 view .LVU1393 4514 0084 0125 movs r5, #1 4515 0086 27E0 b .L264 4516 .LVL302: 4517 .L265: 2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4518 .loc 1 2159 7 is_stmt 1 view .LVU1394 2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4519 .loc 1 2159 23 is_stmt 0 view .LVU1395 4520 0088 8023 movs r3, #128 4521 008a 9B00 lsls r3, r3, #2 4522 008c 6364 str r3, [r4, #68] 2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4523 .loc 1 2160 7 is_stmt 1 view .LVU1396 2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4524 .loc 1 2160 15 is_stmt 0 view .LVU1397 4525 008e 0125 movs r5, #1 4526 0090 22E0 b .L264 4527 .LVL303: 4528 .L267: 2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4529 .loc 1 2195 7 is_stmt 1 view .LVU1398 2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4530 .loc 1 2195 23 is_stmt 0 view .LVU1399 4531 0092 4123 movs r3, #65 4532 0094 2822 movs r2, #40 4533 .LVL304: 2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4534 .loc 1 2195 23 view .LVU1400 4535 0096 E254 strb r2, [r4, r3] 2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4536 .loc 1 2196 7 is_stmt 1 view .LVU1401 2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4537 .loc 1 2196 23 is_stmt 0 view .LVU1402 4538 0098 0022 movs r2, #0 4539 009a 0133 adds r3, r3, #1 4540 009c E254 strb r2, [r4, r3] 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4541 .loc 1 2199 7 is_stmt 1 view .LVU1403 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4542 .loc 1 2199 23 is_stmt 0 view .LVU1404 4543 009e 636C ldr r3, [r4, #68] 4544 00a0 8021 movs r1, #128 4545 .LVL305: 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4546 .loc 1 2199 23 view .LVU1405 4547 00a2 0B43 orrs r3, r1 4548 00a4 6364 str r3, [r4, #68] 2202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4549 .loc 1 2202 7 is_stmt 1 view .LVU1406 2202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4550 .loc 1 2202 7 view .LVU1407 ARM GAS /tmp/ccRVAHyi.s page 222 4551 00a6 4023 movs r3, #64 4552 00a8 E254 strb r2, [r4, r3] 2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4553 .loc 1 2204 7 view .LVU1408 2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4554 .loc 1 2204 14 is_stmt 0 view .LVU1409 4555 00aa 0125 movs r5, #1 4556 00ac 14E0 b .L264 4557 .LVL306: 4558 .L273: 2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4559 .loc 1 2210 7 is_stmt 1 view .LVU1410 2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4560 .loc 1 2210 11 is_stmt 0 view .LVU1411 4561 00ae 2268 ldr r2, [r4] 2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4562 .loc 1 2210 27 view .LVU1412 4563 00b0 5368 ldr r3, [r2, #4] 4564 00b2 0F49 ldr r1, .L274+16 4565 00b4 0B40 ands r3, r1 4566 00b6 5360 str r3, [r2, #4] 2213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4567 .loc 1 2213 7 is_stmt 1 view .LVU1413 2213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4568 .loc 1 2213 7 view .LVU1414 4569 00b8 4023 movs r3, #64 4570 00ba 0022 movs r2, #0 4571 00bc E254 strb r2, [r4, r3] 2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4572 .loc 1 2219 7 view .LVU1415 4573 00be 8021 movs r1, #128 4574 00c0 0902 lsls r1, r1, #8 4575 00c2 2000 movs r0, r4 4576 .LVL307: 2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4577 .loc 1 2219 7 is_stmt 0 view .LVU1416 4578 00c4 FFF7FEFF bl I2C_Enable_IRQ 4579 .LVL308: 2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4580 .loc 1 2222 7 is_stmt 1 view .LVU1417 2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4581 .loc 1 2222 11 is_stmt 0 view .LVU1418 4582 00c8 2268 ldr r2, [r4] 2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4583 .loc 1 2222 27 view .LVU1419 4584 00ca 1168 ldr r1, [r2] 4585 00cc 8023 movs r3, #128 4586 00ce DB01 lsls r3, r3, #7 4587 00d0 0B43 orrs r3, r1 4588 00d2 1360 str r3, [r2] 2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4589 .loc 1 2239 5 is_stmt 1 view .LVU1420 2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4590 .loc 1 2239 12 is_stmt 0 view .LVU1421 4591 00d4 00E0 b .L264 4592 .LVL309: 4593 .L270: ARM GAS /tmp/ccRVAHyi.s page 223 2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4594 .loc 1 2243 12 view .LVU1422 4595 00d6 0225 movs r5, #2 4596 .LVL310: 4597 .L264: 2245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4598 .loc 1 2245 1 view .LVU1423 4599 00d8 2800 movs r0, r5 4600 @ sp needed 4601 .LVL311: 2245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4602 .loc 1 2245 1 view .LVU1424 4603 00da 70BD pop {r4, r5, r6, pc} 4604 .LVL312: 4605 .L271: 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4606 .loc 1 2163 5 view .LVU1425 4607 00dc 0225 movs r5, #2 4608 00de FBE7 b .L264 4609 .L275: 4610 .align 2 4611 .L274: 4612 00e0 0000FFFF .word -65536 4613 00e4 00000000 .word I2C_Slave_ISR_DMA 4614 00e8 00000000 .word I2C_DMASlaveTransmitCplt 4615 00ec 00000000 .word I2C_DMAError 4616 00f0 FF7FFFFF .word -32769 4617 .cfi_endproc 4618 .LFE54: 4620 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4621 .align 1 4622 .global HAL_I2C_Slave_Receive_DMA 4623 .syntax unified 4624 .code 16 4625 .thumb_func 4626 .fpu softvfp 4628 HAL_I2C_Slave_Receive_DMA: 4629 .LVL313: 4630 .LFB55: 2256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4631 .loc 1 2256 1 is_stmt 1 view -0 4632 .cfi_startproc 4633 @ args = 0, pretend = 0, frame = 0 4634 @ frame_needed = 0, uses_anonymous_args = 0 2256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4635 .loc 1 2256 1 is_stmt 0 view .LVU1427 4636 0000 70B5 push {r4, r5, r6, lr} 4637 .LCFI32: 4638 .cfi_def_cfa_offset 16 4639 .cfi_offset 4, -16 4640 .cfi_offset 5, -12 4641 .cfi_offset 6, -8 4642 .cfi_offset 14, -4 4643 0002 0400 movs r4, r0 2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4644 .loc 1 2257 3 is_stmt 1 view .LVU1428 2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 224 4645 .loc 1 2259 3 view .LVU1429 2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4646 .loc 1 2259 11 is_stmt 0 view .LVU1430 4647 0004 4123 movs r3, #65 4648 0006 C35C ldrb r3, [r0, r3] 2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4649 .loc 1 2259 6 view .LVU1431 4650 0008 202B cmp r3, #32 4651 000a 65D1 bne .L283 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4652 .loc 1 2261 5 is_stmt 1 view .LVU1432 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4653 .loc 1 2261 8 is_stmt 0 view .LVU1433 4654 000c 0029 cmp r1, #0 4655 000e 3DD0 beq .L278 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4656 .loc 1 2261 25 discriminator 1 view .LVU1434 4657 0010 002A cmp r2, #0 4658 0012 3BD0 beq .L278 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4659 .loc 1 2267 5 is_stmt 1 view .LVU1435 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4660 .loc 1 2267 5 view .LVU1436 4661 0014 4023 movs r3, #64 4662 0016 C35C ldrb r3, [r0, r3] 4663 0018 012B cmp r3, #1 4664 001a 60D0 beq .L284 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4665 .loc 1 2267 5 discriminator 2 view .LVU1437 4666 001c 4023 movs r3, #64 4667 001e 0120 movs r0, #1 4668 .LVL314: 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4669 .loc 1 2267 5 is_stmt 0 discriminator 2 view .LVU1438 4670 0020 E054 strb r0, [r4, r3] 2269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4671 .loc 1 2269 5 is_stmt 1 discriminator 2 view .LVU1439 2269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4672 .loc 1 2269 23 is_stmt 0 discriminator 2 view .LVU1440 4673 0022 0133 adds r3, r3, #1 4674 0024 2130 adds r0, r0, #33 4675 0026 E054 strb r0, [r4, r3] 2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4676 .loc 1 2270 5 is_stmt 1 discriminator 2 view .LVU1441 2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4677 .loc 1 2270 23 is_stmt 0 discriminator 2 view .LVU1442 4678 0028 0133 adds r3, r3, #1 4679 002a 0238 subs r0, r0, #2 4680 002c E054 strb r0, [r4, r3] 2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4681 .loc 1 2271 5 is_stmt 1 discriminator 2 view .LVU1443 2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4682 .loc 1 2271 23 is_stmt 0 discriminator 2 view .LVU1444 4683 002e 0023 movs r3, #0 4684 0030 6364 str r3, [r4, #68] 2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4685 .loc 1 2274 5 is_stmt 1 discriminator 2 view .LVU1445 ARM GAS /tmp/ccRVAHyi.s page 225 2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4686 .loc 1 2274 23 is_stmt 0 discriminator 2 view .LVU1446 4687 0032 6162 str r1, [r4, #36] 2275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4688 .loc 1 2275 5 is_stmt 1 discriminator 2 view .LVU1447 2275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4689 .loc 1 2275 23 is_stmt 0 discriminator 2 view .LVU1448 4690 0034 6285 strh r2, [r4, #42] 2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4691 .loc 1 2276 5 is_stmt 1 discriminator 2 view .LVU1449 2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4692 .loc 1 2276 29 is_stmt 0 discriminator 2 view .LVU1450 4693 0036 638D ldrh r3, [r4, #42] 2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4694 .loc 1 2276 23 discriminator 2 view .LVU1451 4695 0038 2385 strh r3, [r4, #40] 2277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4696 .loc 1 2277 5 is_stmt 1 discriminator 2 view .LVU1452 2277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4697 .loc 1 2277 23 is_stmt 0 discriminator 2 view .LVU1453 4698 003a 2A4B ldr r3, .L287 4699 003c E362 str r3, [r4, #44] 2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4700 .loc 1 2278 5 is_stmt 1 discriminator 2 view .LVU1454 2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4701 .loc 1 2278 23 is_stmt 0 discriminator 2 view .LVU1455 4702 003e 2A4B ldr r3, .L287+4 4703 0040 6363 str r3, [r4, #52] 2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4704 .loc 1 2280 5 is_stmt 1 discriminator 2 view .LVU1456 2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4705 .loc 1 2280 13 is_stmt 0 discriminator 2 view .LVU1457 4706 0042 E36B ldr r3, [r4, #60] 2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4707 .loc 1 2280 8 discriminator 2 view .LVU1458 4708 0044 002B cmp r3, #0 4709 0046 26D0 beq .L280 2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4710 .loc 1 2283 7 is_stmt 1 view .LVU1459 2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4711 .loc 1 2283 38 is_stmt 0 view .LVU1460 4712 0048 284A ldr r2, .L287+8 4713 .LVL315: 2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4714 .loc 1 2283 38 view .LVU1461 4715 004a 9A62 str r2, [r3, #40] 2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4716 .loc 1 2286 7 is_stmt 1 view .LVU1462 2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4717 .loc 1 2286 11 is_stmt 0 view .LVU1463 4718 004c E36B ldr r3, [r4, #60] 2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4719 .loc 1 2286 39 view .LVU1464 4720 004e 284A ldr r2, .L287+12 4721 0050 1A63 str r2, [r3, #48] 2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4722 .loc 1 2289 7 is_stmt 1 view .LVU1465 ARM GAS /tmp/ccRVAHyi.s page 226 2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4723 .loc 1 2289 11 is_stmt 0 view .LVU1466 4724 0052 E26B ldr r2, [r4, #60] 2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4725 .loc 1 2289 42 view .LVU1467 4726 0054 0023 movs r3, #0 4727 0056 D362 str r3, [r2, #44] 2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4728 .loc 1 2290 7 is_stmt 1 view .LVU1468 2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4729 .loc 1 2290 11 is_stmt 0 view .LVU1469 4730 0058 E26B ldr r2, [r4, #60] 2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4731 .loc 1 2290 39 view .LVU1470 4732 005a 5363 str r3, [r2, #52] 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4733 .loc 1 2293 7 is_stmt 1 view .LVU1471 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4734 .loc 1 2293 64 is_stmt 0 view .LVU1472 4735 005c 2068 ldr r0, [r4] 4736 005e 2430 adds r0, r0, #36 2294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4737 .loc 1 2294 44 view .LVU1473 4738 0060 238D ldrh r3, [r4, #40] 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4739 .loc 1 2293 23 view .LVU1474 4740 0062 0A00 movs r2, r1 4741 0064 0100 movs r1, r0 4742 .LVL316: 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4743 .loc 1 2293 23 view .LVU1475 4744 0066 E06B ldr r0, [r4, #60] 4745 0068 FFF7FEFF bl HAL_DMA_Start_IT 4746 .LVL317: 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4747 .loc 1 2293 23 view .LVU1476 4748 006c 051E subs r5, r0, #0 4749 .LVL318: 2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4750 .loc 1 2311 5 is_stmt 1 view .LVU1477 2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4751 .loc 1 2311 8 is_stmt 0 view .LVU1478 4752 006e 20D0 beq .L286 2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4753 .loc 1 2331 7 is_stmt 1 view .LVU1479 2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4754 .loc 1 2331 23 is_stmt 0 view .LVU1480 4755 0070 4123 movs r3, #65 4756 0072 2822 movs r2, #40 4757 0074 E254 strb r2, [r4, r3] 2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4758 .loc 1 2332 7 is_stmt 1 view .LVU1481 2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4759 .loc 1 2332 23 is_stmt 0 view .LVU1482 4760 0076 0022 movs r2, #0 4761 0078 0133 adds r3, r3, #1 4762 007a E254 strb r2, [r4, r3] ARM GAS /tmp/ccRVAHyi.s page 227 2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4763 .loc 1 2335 7 is_stmt 1 view .LVU1483 2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4764 .loc 1 2335 23 is_stmt 0 view .LVU1484 4765 007c 636C ldr r3, [r4, #68] 4766 007e 1021 movs r1, #16 4767 0080 0B43 orrs r3, r1 4768 0082 6364 str r3, [r4, #68] 2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4769 .loc 1 2338 7 is_stmt 1 view .LVU1485 2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4770 .loc 1 2338 7 view .LVU1486 4771 0084 4023 movs r3, #64 4772 0086 E254 strb r2, [r4, r3] 2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4773 .loc 1 2340 7 view .LVU1487 2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4774 .loc 1 2340 14 is_stmt 0 view .LVU1488 4775 0088 0125 movs r5, #1 4776 008a 26E0 b .L277 4777 .LVL319: 4778 .L278: 2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4779 .loc 1 2263 7 is_stmt 1 view .LVU1489 2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4780 .loc 1 2263 23 is_stmt 0 view .LVU1490 4781 008c 8023 movs r3, #128 4782 008e 9B00 lsls r3, r3, #2 4783 0090 6364 str r3, [r4, #68] 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4784 .loc 1 2264 7 is_stmt 1 view .LVU1491 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4785 .loc 1 2264 15 is_stmt 0 view .LVU1492 4786 0092 0125 movs r5, #1 4787 0094 21E0 b .L277 4788 .LVL320: 4789 .L280: 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4790 .loc 1 2299 7 is_stmt 1 view .LVU1493 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4791 .loc 1 2299 23 is_stmt 0 view .LVU1494 4792 0096 4123 movs r3, #65 4793 0098 2822 movs r2, #40 4794 .LVL321: 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4795 .loc 1 2299 23 view .LVU1495 4796 009a E254 strb r2, [r4, r3] 2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4797 .loc 1 2300 7 is_stmt 1 view .LVU1496 2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4798 .loc 1 2300 23 is_stmt 0 view .LVU1497 4799 009c 0022 movs r2, #0 4800 009e 0133 adds r3, r3, #1 4801 00a0 E254 strb r2, [r4, r3] 2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4802 .loc 1 2303 7 is_stmt 1 view .LVU1498 2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 228 4803 .loc 1 2303 23 is_stmt 0 view .LVU1499 4804 00a2 636C ldr r3, [r4, #68] 4805 00a4 8021 movs r1, #128 4806 .LVL322: 2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4807 .loc 1 2303 23 view .LVU1500 4808 00a6 0B43 orrs r3, r1 4809 00a8 6364 str r3, [r4, #68] 2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4810 .loc 1 2306 7 is_stmt 1 view .LVU1501 2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4811 .loc 1 2306 7 view .LVU1502 4812 00aa 4023 movs r3, #64 4813 00ac E254 strb r2, [r4, r3] 2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4814 .loc 1 2308 7 view .LVU1503 2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4815 .loc 1 2308 14 is_stmt 0 view .LVU1504 4816 00ae 0125 movs r5, #1 4817 00b0 13E0 b .L277 4818 .LVL323: 4819 .L286: 2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4820 .loc 1 2314 7 is_stmt 1 view .LVU1505 2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4821 .loc 1 2314 11 is_stmt 0 view .LVU1506 4822 00b2 2268 ldr r2, [r4] 2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4823 .loc 1 2314 27 view .LVU1507 4824 00b4 5368 ldr r3, [r2, #4] 4825 00b6 0F49 ldr r1, .L287+16 4826 00b8 0B40 ands r3, r1 4827 00ba 5360 str r3, [r2, #4] 2317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4828 .loc 1 2317 7 is_stmt 1 view .LVU1508 2317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4829 .loc 1 2317 7 view .LVU1509 4830 00bc 4023 movs r3, #64 4831 00be 0022 movs r2, #0 4832 00c0 E254 strb r2, [r4, r3] 2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4833 .loc 1 2323 7 view .LVU1510 4834 00c2 8026 movs r6, #128 4835 00c4 3602 lsls r6, r6, #8 4836 00c6 3100 movs r1, r6 4837 00c8 2000 movs r0, r4 4838 .LVL324: 2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4839 .loc 1 2323 7 is_stmt 0 view .LVU1511 4840 00ca FFF7FEFF bl I2C_Enable_IRQ 4841 .LVL325: 2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4842 .loc 1 2326 7 is_stmt 1 view .LVU1512 2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4843 .loc 1 2326 11 is_stmt 0 view .LVU1513 4844 00ce 2368 ldr r3, [r4] 2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 229 4845 .loc 1 2326 27 view .LVU1514 4846 00d0 1A68 ldr r2, [r3] 4847 00d2 1643 orrs r6, r2 4848 00d4 1E60 str r6, [r3] 2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4849 .loc 1 2343 5 is_stmt 1 view .LVU1515 2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4850 .loc 1 2343 12 is_stmt 0 view .LVU1516 4851 00d6 00E0 b .L277 4852 .LVL326: 4853 .L283: 2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4854 .loc 1 2347 12 view .LVU1517 4855 00d8 0225 movs r5, #2 4856 .LVL327: 4857 .L277: 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4858 .loc 1 2349 1 view .LVU1518 4859 00da 2800 movs r0, r5 4860 @ sp needed 4861 .LVL328: 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4862 .loc 1 2349 1 view .LVU1519 4863 00dc 70BD pop {r4, r5, r6, pc} 4864 .LVL329: 4865 .L284: 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4866 .loc 1 2267 5 view .LVU1520 4867 00de 0225 movs r5, #2 4868 00e0 FBE7 b .L277 4869 .L288: 4870 00e2 C046 .align 2 4871 .L287: 4872 00e4 0000FFFF .word -65536 4873 00e8 00000000 .word I2C_Slave_ISR_DMA 4874 00ec 00000000 .word I2C_DMASlaveReceiveCplt 4875 00f0 00000000 .word I2C_DMAError 4876 00f4 FF7FFFFF .word -32769 4877 .cfi_endproc 4878 .LFE55: 4880 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 4881 .align 1 4882 .global HAL_I2C_Mem_Write 4883 .syntax unified 4884 .code 16 4885 .thumb_func 4886 .fpu softvfp 4888 HAL_I2C_Mem_Write: 4889 .LVL330: 4890 .LFB56: 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 4891 .loc 1 2365 1 is_stmt 1 view -0 4892 .cfi_startproc 4893 @ args = 12, pretend = 0, frame = 16 4894 @ frame_needed = 0, uses_anonymous_args = 0 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 4895 .loc 1 2365 1 is_stmt 0 view .LVU1522 ARM GAS /tmp/ccRVAHyi.s page 230 4896 0000 F0B5 push {r4, r5, r6, r7, lr} 4897 .LCFI33: 4898 .cfi_def_cfa_offset 20 4899 .cfi_offset 4, -20 4900 .cfi_offset 5, -16 4901 .cfi_offset 6, -12 4902 .cfi_offset 7, -8 4903 .cfi_offset 14, -4 4904 0002 87B0 sub sp, sp, #28 4905 .LCFI34: 4906 .cfi_def_cfa_offset 48 4907 0004 0600 movs r6, r0 4908 0006 0391 str r1, [sp, #12] 4909 0008 0492 str r2, [sp, #16] 4910 000a 0593 str r3, [sp, #20] 4911 000c 0CAB add r3, sp, #48 4912 .LVL331: 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 4913 .loc 1 2365 1 view .LVU1523 4914 000e 20CB ldmia r3!, {r5} 4915 .LVL332: 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 4916 .loc 1 2365 1 view .LVU1524 4917 0010 1F88 ldrh r7, [r3] 2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4918 .loc 1 2366 3 is_stmt 1 view .LVU1525 2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4919 .loc 1 2369 3 view .LVU1526 2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4920 .loc 1 2371 3 view .LVU1527 2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4921 .loc 1 2371 11 is_stmt 0 view .LVU1528 4922 0012 4123 movs r3, #65 4923 .LVL333: 2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4924 .loc 1 2371 11 view .LVU1529 4925 0014 C35C ldrb r3, [r0, r3] 2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4926 .loc 1 2371 6 view .LVU1530 4927 0016 202B cmp r3, #32 4928 0018 00D0 beq .LCB4548 4929 001a B3E0 b .L299 @long jump 4930 .LCB4548: 2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4931 .loc 1 2373 5 is_stmt 1 view .LVU1531 2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4932 .loc 1 2373 8 is_stmt 0 view .LVU1532 4933 001c 002D cmp r5, #0 4934 001e 18D0 beq .L291 2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4935 .loc 1 2373 25 discriminator 1 view .LVU1533 4936 0020 002F cmp r7, #0 4937 0022 16D0 beq .L291 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4938 .loc 1 2380 5 is_stmt 1 view .LVU1534 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4939 .loc 1 2380 5 view .LVU1535 ARM GAS /tmp/ccRVAHyi.s page 231 4940 0024 4023 movs r3, #64 4941 0026 C35C ldrb r3, [r0, r3] 4942 0028 012B cmp r3, #1 4943 002a 00D1 bne .LCB4559 4944 002c ADE0 b .L300 @long jump 4945 .LCB4559: 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4946 .loc 1 2380 5 discriminator 2 view .LVU1536 4947 002e 4023 movs r3, #64 4948 0030 0122 movs r2, #1 4949 .LVL334: 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4950 .loc 1 2380 5 is_stmt 0 discriminator 2 view .LVU1537 4951 0032 C254 strb r2, [r0, r3] 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4952 .loc 1 2383 5 is_stmt 1 discriminator 2 view .LVU1538 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4953 .loc 1 2383 17 is_stmt 0 discriminator 2 view .LVU1539 4954 0034 FFF7FEFF bl HAL_GetTick 4955 .LVL335: 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4956 .loc 1 2383 17 discriminator 2 view .LVU1540 4957 0038 0400 movs r4, r0 4958 .LVL336: 2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4959 .loc 1 2385 5 is_stmt 1 discriminator 2 view .LVU1541 2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4960 .loc 1 2385 9 is_stmt 0 discriminator 2 view .LVU1542 4961 003a 8021 movs r1, #128 4962 003c 0090 str r0, [sp] 4963 003e 1923 movs r3, #25 4964 0040 0122 movs r2, #1 4965 0042 0902 lsls r1, r1, #8 4966 0044 3000 movs r0, r6 4967 .LVL337: 2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4968 .loc 1 2385 9 discriminator 2 view .LVU1543 4969 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4970 .LVL338: 2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4971 .loc 1 2385 8 discriminator 2 view .LVU1544 4972 004a 0028 cmp r0, #0 4973 004c 06D0 beq .L305 2387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4974 .loc 1 2387 14 view .LVU1545 4975 004e 0120 movs r0, #1 4976 0050 99E0 b .L290 4977 .LVL339: 4978 .L291: 2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4979 .loc 1 2375 7 is_stmt 1 view .LVU1546 2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4980 .loc 1 2375 23 is_stmt 0 view .LVU1547 4981 0052 8023 movs r3, #128 4982 0054 9B00 lsls r3, r3, #2 4983 0056 7364 str r3, [r6, #68] 2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 232 4984 .loc 1 2376 7 is_stmt 1 view .LVU1548 2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4985 .loc 1 2376 15 is_stmt 0 view .LVU1549 4986 0058 0120 movs r0, #1 4987 .LVL340: 2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4988 .loc 1 2376 15 view .LVU1550 4989 005a 94E0 b .L290 4990 .LVL341: 4991 .L305: 2390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4992 .loc 1 2390 5 is_stmt 1 view .LVU1551 2390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4993 .loc 1 2390 21 is_stmt 0 view .LVU1552 4994 005c 4123 movs r3, #65 4995 005e 2122 movs r2, #33 4996 0060 F254 strb r2, [r6, r3] 2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4997 .loc 1 2391 5 is_stmt 1 view .LVU1553 2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4998 .loc 1 2391 21 is_stmt 0 view .LVU1554 4999 0062 0133 adds r3, r3, #1 5000 0064 1F32 adds r2, r2, #31 5001 0066 F254 strb r2, [r6, r3] 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5002 .loc 1 2392 5 is_stmt 1 view .LVU1555 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5003 .loc 1 2392 21 is_stmt 0 view .LVU1556 5004 0068 0023 movs r3, #0 5005 006a 7364 str r3, [r6, #68] 2395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5006 .loc 1 2395 5 is_stmt 1 view .LVU1557 2395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5007 .loc 1 2395 21 is_stmt 0 view .LVU1558 5008 006c 7562 str r5, [r6, #36] 2396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5009 .loc 1 2396 5 is_stmt 1 view .LVU1559 2396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5010 .loc 1 2396 21 is_stmt 0 view .LVU1560 5011 006e 7785 strh r7, [r6, #42] 2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5012 .loc 1 2397 5 is_stmt 1 view .LVU1561 2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5013 .loc 1 2397 21 is_stmt 0 view .LVU1562 5014 0070 7363 str r3, [r6, #52] 2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5015 .loc 1 2400 5 is_stmt 1 view .LVU1563 2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5016 .loc 1 2400 9 is_stmt 0 view .LVU1564 5017 0072 0194 str r4, [sp, #4] 5018 0074 0E9B ldr r3, [sp, #56] 5019 0076 0093 str r3, [sp] 5020 0078 059B ldr r3, [sp, #20] 5021 007a 049A ldr r2, [sp, #16] 5022 007c 0399 ldr r1, [sp, #12] 5023 007e 3000 movs r0, r6 5024 0080 FFF7FEFF bl I2C_RequestMemoryWrite ARM GAS /tmp/ccRVAHyi.s page 233 5025 .LVL342: 2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5026 .loc 1 2400 8 view .LVU1565 5027 0084 0028 cmp r0, #0 5028 0086 0FD1 bne .L306 2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5029 .loc 1 2408 5 is_stmt 1 view .LVU1566 2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5030 .loc 1 2408 13 is_stmt 0 view .LVU1567 5031 0088 738D ldrh r3, [r6, #42] 5032 008a 9BB2 uxth r3, r3 2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5033 .loc 1 2408 8 view .LVU1568 5034 008c FF2B cmp r3, #255 5035 008e 10D9 bls .L294 2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5036 .loc 1 2410 7 is_stmt 1 view .LVU1569 2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5037 .loc 1 2410 22 is_stmt 0 view .LVU1570 5038 0090 FF23 movs r3, #255 5039 0092 3385 strh r3, [r6, #40] 2411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5040 .loc 1 2411 7 is_stmt 1 view .LVU1571 5041 0094 7F3B subs r3, r3, #127 5042 0096 0022 movs r2, #0 5043 0098 0092 str r2, [sp] 5044 009a 5B04 lsls r3, r3, #17 5045 009c FF32 adds r2, r2, #255 5046 009e 0399 ldr r1, [sp, #12] 5047 00a0 3000 movs r0, r6 5048 00a2 FFF7FEFF bl I2C_TransferConfig 5049 .LVL343: 5050 00a6 21E0 b .L298 5051 .L306: 2403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5052 .loc 1 2403 7 view .LVU1572 2403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5053 .loc 1 2403 7 view .LVU1573 5054 00a8 4023 movs r3, #64 5055 00aa 0022 movs r2, #0 5056 00ac F254 strb r2, [r6, r3] 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5057 .loc 1 2404 7 view .LVU1574 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5058 .loc 1 2404 14 is_stmt 0 view .LVU1575 5059 00ae 0120 movs r0, #1 5060 00b0 69E0 b .L290 5061 .L294: 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5062 .loc 1 2415 7 is_stmt 1 view .LVU1576 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5063 .loc 1 2415 28 is_stmt 0 view .LVU1577 5064 00b2 728D ldrh r2, [r6, #42] 5065 00b4 92B2 uxth r2, r2 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5066 .loc 1 2415 22 view .LVU1578 5067 00b6 3285 strh r2, [r6, #40] ARM GAS /tmp/ccRVAHyi.s page 234 2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5068 .loc 1 2416 7 is_stmt 1 view .LVU1579 5069 00b8 8023 movs r3, #128 5070 00ba D2B2 uxtb r2, r2 5071 00bc 0021 movs r1, #0 5072 00be 0091 str r1, [sp] 5073 00c0 9B04 lsls r3, r3, #18 5074 00c2 0399 ldr r1, [sp, #12] 5075 00c4 3000 movs r0, r6 5076 00c6 FFF7FEFF bl I2C_TransferConfig 5077 .LVL344: 5078 00ca 0FE0 b .L298 5079 .L297: 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5080 .loc 1 2452 11 view .LVU1580 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5081 .loc 1 2452 32 is_stmt 0 view .LVU1581 5082 00cc 728D ldrh r2, [r6, #42] 5083 00ce 92B2 uxth r2, r2 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5084 .loc 1 2452 26 view .LVU1582 5085 00d0 3285 strh r2, [r6, #40] 2453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5086 .loc 1 2453 11 is_stmt 1 view .LVU1583 5087 00d2 8023 movs r3, #128 5088 00d4 D2B2 uxtb r2, r2 5089 00d6 0021 movs r1, #0 5090 00d8 0091 str r1, [sp] 5091 00da 9B04 lsls r3, r3, #18 5092 00dc 0399 ldr r1, [sp, #12] 5093 00de 3000 movs r0, r6 5094 00e0 FFF7FEFF bl I2C_TransferConfig 5095 .LVL345: 5096 .L296: 2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5097 .loc 1 2458 18 is_stmt 0 view .LVU1584 5098 00e4 738D ldrh r3, [r6, #42] 5099 00e6 9BB2 uxth r3, r3 2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5100 .loc 1 2458 5 view .LVU1585 5101 00e8 002B cmp r3, #0 5102 00ea 34D0 beq .L307 5103 .L298: 2419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5104 .loc 1 2419 5 is_stmt 1 view .LVU1586 2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5105 .loc 1 2422 7 view .LVU1587 2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5106 .loc 1 2422 11 is_stmt 0 view .LVU1588 5107 00ec 2200 movs r2, r4 5108 00ee 0E99 ldr r1, [sp, #56] 5109 00f0 3000 movs r0, r6 5110 00f2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5111 .LVL346: 2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5112 .loc 1 2422 10 view .LVU1589 5113 00f6 0028 cmp r0, #0 ARM GAS /tmp/ccRVAHyi.s page 235 5114 00f8 49D1 bne .L302 2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5115 .loc 1 2428 7 is_stmt 1 view .LVU1590 2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5116 .loc 1 2428 11 is_stmt 0 view .LVU1591 5117 00fa 3368 ldr r3, [r6] 2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5118 .loc 1 2428 30 view .LVU1592 5119 00fc 726A ldr r2, [r6, #36] 5120 00fe 1278 ldrb r2, [r2] 2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5121 .loc 1 2428 28 view .LVU1593 5122 0100 9A62 str r2, [r3, #40] 2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5123 .loc 1 2431 7 is_stmt 1 view .LVU1594 2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5124 .loc 1 2431 21 is_stmt 0 view .LVU1595 5125 0102 736A ldr r3, [r6, #36] 5126 0104 0133 adds r3, r3, #1 5127 0106 7362 str r3, [r6, #36] 2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5128 .loc 1 2433 7 is_stmt 1 view .LVU1596 2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5129 .loc 1 2433 11 is_stmt 0 view .LVU1597 5130 0108 738D ldrh r3, [r6, #42] 2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5131 .loc 1 2433 22 view .LVU1598 5132 010a 013B subs r3, r3, #1 5133 010c 9BB2 uxth r3, r3 5134 010e 7385 strh r3, [r6, #42] 2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5135 .loc 1 2434 7 is_stmt 1 view .LVU1599 2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5136 .loc 1 2434 11 is_stmt 0 view .LVU1600 5137 0110 338D ldrh r3, [r6, #40] 2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5138 .loc 1 2434 21 view .LVU1601 5139 0112 013B subs r3, r3, #1 5140 0114 9BB2 uxth r3, r3 5141 0116 3385 strh r3, [r6, #40] 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5142 .loc 1 2436 7 is_stmt 1 view .LVU1602 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5143 .loc 1 2436 16 is_stmt 0 view .LVU1603 5144 0118 728D ldrh r2, [r6, #42] 5145 011a 92B2 uxth r2, r2 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5146 .loc 1 2436 10 view .LVU1604 5147 011c 002A cmp r2, #0 5148 011e E1D0 beq .L296 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5149 .loc 1 2436 35 discriminator 1 view .LVU1605 5150 0120 002B cmp r3, #0 5151 0122 DFD1 bne .L296 2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5152 .loc 1 2439 9 is_stmt 1 view .LVU1606 2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 236 5153 .loc 1 2439 13 is_stmt 0 view .LVU1607 5154 0124 0094 str r4, [sp] 5155 0126 0E9B ldr r3, [sp, #56] 5156 0128 0022 movs r2, #0 5157 012a 8021 movs r1, #128 5158 012c 3000 movs r0, r6 5159 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5160 .LVL347: 2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5161 .loc 1 2439 12 view .LVU1608 5162 0132 0028 cmp r0, #0 5163 0134 2DD1 bne .L303 2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5164 .loc 1 2444 9 is_stmt 1 view .LVU1609 2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5165 .loc 1 2444 17 is_stmt 0 view .LVU1610 5166 0136 738D ldrh r3, [r6, #42] 5167 0138 9BB2 uxth r3, r3 2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5168 .loc 1 2444 12 view .LVU1611 5169 013a FF2B cmp r3, #255 5170 013c C6D9 bls .L297 2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5171 .loc 1 2446 11 is_stmt 1 view .LVU1612 2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5172 .loc 1 2446 26 is_stmt 0 view .LVU1613 5173 013e FF23 movs r3, #255 5174 0140 3385 strh r3, [r6, #40] 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5175 .loc 1 2447 11 is_stmt 1 view .LVU1614 5176 0142 7F3B subs r3, r3, #127 5177 0144 0022 movs r2, #0 5178 0146 0092 str r2, [sp] 5179 0148 5B04 lsls r3, r3, #17 5180 014a FF32 adds r2, r2, #255 5181 014c 0399 ldr r1, [sp, #12] 5182 014e 3000 movs r0, r6 5183 0150 FFF7FEFF bl I2C_TransferConfig 5184 .LVL348: 5185 0154 C6E7 b .L296 5186 .L307: 2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5187 .loc 1 2462 5 view .LVU1615 2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5188 .loc 1 2462 9 is_stmt 0 view .LVU1616 5189 0156 2200 movs r2, r4 5190 0158 0E99 ldr r1, [sp, #56] 5191 015a 3000 movs r0, r6 5192 015c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5193 .LVL349: 2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5194 .loc 1 2462 8 view .LVU1617 5195 0160 0028 cmp r0, #0 5196 0162 18D1 bne .L304 2468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5197 .loc 1 2468 5 is_stmt 1 view .LVU1618 5198 0164 3368 ldr r3, [r6] ARM GAS /tmp/ccRVAHyi.s page 237 5199 0166 2022 movs r2, #32 5200 0168 DA61 str r2, [r3, #28] 2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5201 .loc 1 2471 5 view .LVU1619 5202 016a 3168 ldr r1, [r6] 5203 016c 4B68 ldr r3, [r1, #4] 5204 016e 0B4C ldr r4, .L308 5205 .LVL350: 2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5206 .loc 1 2471 5 is_stmt 0 view .LVU1620 5207 0170 2340 ands r3, r4 5208 0172 4B60 str r3, [r1, #4] 2473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5209 .loc 1 2473 5 is_stmt 1 view .LVU1621 2473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5210 .loc 1 2473 17 is_stmt 0 view .LVU1622 5211 0174 4123 movs r3, #65 5212 0176 F254 strb r2, [r6, r3] 2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5213 .loc 1 2474 5 is_stmt 1 view .LVU1623 2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5214 .loc 1 2474 17 is_stmt 0 view .LVU1624 5215 0178 0023 movs r3, #0 5216 017a 2232 adds r2, r2, #34 5217 017c B354 strb r3, [r6, r2] 2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5218 .loc 1 2477 5 is_stmt 1 view .LVU1625 2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5219 .loc 1 2477 5 view .LVU1626 5220 017e 023A subs r2, r2, #2 5221 0180 B354 strb r3, [r6, r2] 2479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5222 .loc 1 2479 5 view .LVU1627 2479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5223 .loc 1 2479 12 is_stmt 0 view .LVU1628 5224 0182 00E0 b .L290 5225 .LVL351: 5226 .L299: 2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5227 .loc 1 2483 12 view .LVU1629 5228 0184 0220 movs r0, #2 5229 .LVL352: 5230 .L290: 2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5231 .loc 1 2485 1 view .LVU1630 5232 0186 07B0 add sp, sp, #28 5233 @ sp needed 5234 .LVL353: 2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5235 .loc 1 2485 1 view .LVU1631 5236 0188 F0BD pop {r4, r5, r6, r7, pc} 5237 .LVL354: 5238 .L300: 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5239 .loc 1 2380 5 view .LVU1632 5240 018a 0220 movs r0, #2 5241 .LVL355: ARM GAS /tmp/ccRVAHyi.s page 238 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5242 .loc 1 2380 5 view .LVU1633 5243 018c FBE7 b .L290 5244 .LVL356: 5245 .L302: 2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5246 .loc 1 2424 16 view .LVU1634 5247 018e 0120 movs r0, #1 5248 0190 F9E7 b .L290 5249 .L303: 2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5250 .loc 1 2441 18 view .LVU1635 5251 0192 0120 movs r0, #1 5252 0194 F7E7 b .L290 5253 .L304: 2464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5254 .loc 1 2464 14 view .LVU1636 5255 0196 0120 movs r0, #1 5256 0198 F5E7 b .L290 5257 .L309: 5258 019a C046 .align 2 5259 .L308: 5260 019c 00E800FE .word -33495040 5261 .cfi_endproc 5262 .LFE56: 5264 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5265 .align 1 5266 .global HAL_I2C_Mem_Read 5267 .syntax unified 5268 .code 16 5269 .thumb_func 5270 .fpu softvfp 5272 HAL_I2C_Mem_Read: 5273 .LVL357: 5274 .LFB57: 2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5275 .loc 1 2502 1 is_stmt 1 view -0 5276 .cfi_startproc 5277 @ args = 12, pretend = 0, frame = 16 5278 @ frame_needed = 0, uses_anonymous_args = 0 2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5279 .loc 1 2502 1 is_stmt 0 view .LVU1638 5280 0000 F0B5 push {r4, r5, r6, r7, lr} 5281 .LCFI35: 5282 .cfi_def_cfa_offset 20 5283 .cfi_offset 4, -20 5284 .cfi_offset 5, -16 5285 .cfi_offset 6, -12 5286 .cfi_offset 7, -8 5287 .cfi_offset 14, -4 5288 0002 87B0 sub sp, sp, #28 5289 .LCFI36: 5290 .cfi_def_cfa_offset 48 5291 0004 0400 movs r4, r0 5292 0006 0391 str r1, [sp, #12] 5293 0008 0492 str r2, [sp, #16] 5294 000a 0593 str r3, [sp, #20] ARM GAS /tmp/ccRVAHyi.s page 239 5295 000c 0CAB add r3, sp, #48 5296 .LVL358: 2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5297 .loc 1 2502 1 view .LVU1639 5298 000e 20CB ldmia r3!, {r5} 5299 .LVL359: 2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5300 .loc 1 2502 1 view .LVU1640 5301 0010 1F88 ldrh r7, [r3] 2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5302 .loc 1 2503 3 is_stmt 1 view .LVU1641 2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5303 .loc 1 2506 3 view .LVU1642 2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5304 .loc 1 2508 3 view .LVU1643 2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5305 .loc 1 2508 11 is_stmt 0 view .LVU1644 5306 0012 4123 movs r3, #65 5307 .LVL360: 2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5308 .loc 1 2508 11 view .LVU1645 5309 0014 C35C ldrb r3, [r0, r3] 2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5310 .loc 1 2508 6 view .LVU1646 5311 0016 202B cmp r3, #32 5312 0018 00D0 beq .LCB4934 5313 001a B5E0 b .L320 @long jump 5314 .LCB4934: 2510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5315 .loc 1 2510 5 is_stmt 1 view .LVU1647 2510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5316 .loc 1 2510 8 is_stmt 0 view .LVU1648 5317 001c 002D cmp r5, #0 5318 001e 18D0 beq .L312 2510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5319 .loc 1 2510 25 discriminator 1 view .LVU1649 5320 0020 002F cmp r7, #0 5321 0022 16D0 beq .L312 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5322 .loc 1 2517 5 is_stmt 1 view .LVU1650 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5323 .loc 1 2517 5 view .LVU1651 5324 0024 4023 movs r3, #64 5325 0026 C35C ldrb r3, [r0, r3] 5326 0028 012B cmp r3, #1 5327 002a 00D1 bne .LCB4945 5328 002c AFE0 b .L321 @long jump 5329 .LCB4945: 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5330 .loc 1 2517 5 discriminator 2 view .LVU1652 5331 002e 4023 movs r3, #64 5332 0030 0122 movs r2, #1 5333 .LVL361: 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5334 .loc 1 2517 5 is_stmt 0 discriminator 2 view .LVU1653 5335 0032 C254 strb r2, [r0, r3] 2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 240 5336 .loc 1 2520 5 is_stmt 1 discriminator 2 view .LVU1654 2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5337 .loc 1 2520 17 is_stmt 0 discriminator 2 view .LVU1655 5338 0034 FFF7FEFF bl HAL_GetTick 5339 .LVL362: 2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5340 .loc 1 2520 17 discriminator 2 view .LVU1656 5341 0038 0600 movs r6, r0 5342 .LVL363: 2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5343 .loc 1 2522 5 is_stmt 1 discriminator 2 view .LVU1657 2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5344 .loc 1 2522 9 is_stmt 0 discriminator 2 view .LVU1658 5345 003a 8021 movs r1, #128 5346 003c 0090 str r0, [sp] 5347 003e 1923 movs r3, #25 5348 0040 0122 movs r2, #1 5349 0042 0902 lsls r1, r1, #8 5350 0044 2000 movs r0, r4 5351 .LVL364: 2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5352 .loc 1 2522 9 discriminator 2 view .LVU1659 5353 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5354 .LVL365: 2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5355 .loc 1 2522 8 discriminator 2 view .LVU1660 5356 004a 0028 cmp r0, #0 5357 004c 06D0 beq .L326 2524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5358 .loc 1 2524 14 view .LVU1661 5359 004e 0120 movs r0, #1 5360 0050 9BE0 b .L311 5361 .LVL366: 5362 .L312: 2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5363 .loc 1 2512 7 is_stmt 1 view .LVU1662 2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5364 .loc 1 2512 23 is_stmt 0 view .LVU1663 5365 0052 8023 movs r3, #128 5366 0054 9B00 lsls r3, r3, #2 5367 0056 6364 str r3, [r4, #68] 2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5368 .loc 1 2513 7 is_stmt 1 view .LVU1664 2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5369 .loc 1 2513 15 is_stmt 0 view .LVU1665 5370 0058 0120 movs r0, #1 5371 .LVL367: 2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5372 .loc 1 2513 15 view .LVU1666 5373 005a 96E0 b .L311 5374 .LVL368: 5375 .L326: 2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5376 .loc 1 2527 5 is_stmt 1 view .LVU1667 2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5377 .loc 1 2527 21 is_stmt 0 view .LVU1668 5378 005c 4123 movs r3, #65 ARM GAS /tmp/ccRVAHyi.s page 241 5379 005e 2222 movs r2, #34 5380 0060 E254 strb r2, [r4, r3] 2528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5381 .loc 1 2528 5 is_stmt 1 view .LVU1669 2528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5382 .loc 1 2528 21 is_stmt 0 view .LVU1670 5383 0062 0133 adds r3, r3, #1 5384 0064 1E32 adds r2, r2, #30 5385 0066 E254 strb r2, [r4, r3] 2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5386 .loc 1 2529 5 is_stmt 1 view .LVU1671 2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5387 .loc 1 2529 21 is_stmt 0 view .LVU1672 5388 0068 0023 movs r3, #0 5389 006a 6364 str r3, [r4, #68] 2532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5390 .loc 1 2532 5 is_stmt 1 view .LVU1673 2532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5391 .loc 1 2532 21 is_stmt 0 view .LVU1674 5392 006c 6562 str r5, [r4, #36] 2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5393 .loc 1 2533 5 is_stmt 1 view .LVU1675 2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5394 .loc 1 2533 21 is_stmt 0 view .LVU1676 5395 006e 6785 strh r7, [r4, #42] 2534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5396 .loc 1 2534 5 is_stmt 1 view .LVU1677 2534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5397 .loc 1 2534 21 is_stmt 0 view .LVU1678 5398 0070 6363 str r3, [r4, #52] 2537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5399 .loc 1 2537 5 is_stmt 1 view .LVU1679 2537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5400 .loc 1 2537 9 is_stmt 0 view .LVU1680 5401 0072 0196 str r6, [sp, #4] 5402 0074 0E9B ldr r3, [sp, #56] 5403 0076 0093 str r3, [sp] 5404 0078 059B ldr r3, [sp, #20] 5405 007a 049A ldr r2, [sp, #16] 5406 007c 0399 ldr r1, [sp, #12] 5407 007e 2000 movs r0, r4 5408 0080 FFF7FEFF bl I2C_RequestMemoryRead 5409 .LVL369: 2537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5410 .loc 1 2537 8 view .LVU1681 5411 0084 0028 cmp r0, #0 5412 0086 0FD1 bne .L327 2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5413 .loc 1 2546 5 is_stmt 1 view .LVU1682 2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5414 .loc 1 2546 13 is_stmt 0 view .LVU1683 5415 0088 638D ldrh r3, [r4, #42] 5416 008a 9BB2 uxth r3, r3 2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5417 .loc 1 2546 8 view .LVU1684 5418 008c FF2B cmp r3, #255 5419 008e 10D9 bls .L315 ARM GAS /tmp/ccRVAHyi.s page 242 2548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5420 .loc 1 2548 7 is_stmt 1 view .LVU1685 2548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5421 .loc 1 2548 22 is_stmt 0 view .LVU1686 5422 0090 FF23 movs r3, #255 5423 0092 2385 strh r3, [r4, #40] 2549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5424 .loc 1 2549 7 is_stmt 1 view .LVU1687 5425 0094 7F3B subs r3, r3, #127 5426 0096 424A ldr r2, .L329 5427 0098 0092 str r2, [sp] 5428 009a 5B04 lsls r3, r3, #17 5429 009c FF22 movs r2, #255 5430 009e 0399 ldr r1, [sp, #12] 5431 00a0 2000 movs r0, r4 5432 00a2 FFF7FEFF bl I2C_TransferConfig 5433 .LVL370: 5434 00a6 21E0 b .L319 5435 .L327: 2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5436 .loc 1 2540 7 view .LVU1688 2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5437 .loc 1 2540 7 view .LVU1689 5438 00a8 4023 movs r3, #64 5439 00aa 0022 movs r2, #0 5440 00ac E254 strb r2, [r4, r3] 2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5441 .loc 1 2541 7 view .LVU1690 2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5442 .loc 1 2541 14 is_stmt 0 view .LVU1691 5443 00ae 0120 movs r0, #1 5444 00b0 6BE0 b .L311 5445 .L315: 2554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5446 .loc 1 2554 7 is_stmt 1 view .LVU1692 2554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5447 .loc 1 2554 28 is_stmt 0 view .LVU1693 5448 00b2 628D ldrh r2, [r4, #42] 5449 00b4 92B2 uxth r2, r2 2554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5450 .loc 1 2554 22 view .LVU1694 5451 00b6 2285 strh r2, [r4, #40] 2555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5452 .loc 1 2555 7 is_stmt 1 view .LVU1695 5453 00b8 8023 movs r3, #128 5454 00ba D2B2 uxtb r2, r2 5455 00bc 3849 ldr r1, .L329 5456 00be 0091 str r1, [sp] 5457 00c0 9B04 lsls r3, r3, #18 5458 00c2 0399 ldr r1, [sp, #12] 5459 00c4 2000 movs r0, r4 5460 00c6 FFF7FEFF bl I2C_TransferConfig 5461 .LVL371: 5462 00ca 0FE0 b .L319 5463 .L318: 2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5464 .loc 1 2592 11 view .LVU1696 ARM GAS /tmp/ccRVAHyi.s page 243 2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5465 .loc 1 2592 32 is_stmt 0 view .LVU1697 5466 00cc 628D ldrh r2, [r4, #42] 5467 00ce 92B2 uxth r2, r2 2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5468 .loc 1 2592 26 view .LVU1698 5469 00d0 2285 strh r2, [r4, #40] 2593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5470 .loc 1 2593 11 is_stmt 1 view .LVU1699 5471 00d2 8023 movs r3, #128 5472 00d4 D2B2 uxtb r2, r2 5473 00d6 0021 movs r1, #0 5474 00d8 0091 str r1, [sp] 5475 00da 9B04 lsls r3, r3, #18 5476 00dc 0399 ldr r1, [sp, #12] 5477 00de 2000 movs r0, r4 5478 00e0 FFF7FEFF bl I2C_TransferConfig 5479 .LVL372: 5480 .L317: 2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5481 .loc 1 2597 18 is_stmt 0 view .LVU1700 5482 00e4 638D ldrh r3, [r4, #42] 5483 00e6 9BB2 uxth r3, r3 2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5484 .loc 1 2597 5 view .LVU1701 5485 00e8 002B cmp r3, #0 5486 00ea 36D0 beq .L328 5487 .L319: 2559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5488 .loc 1 2559 5 is_stmt 1 view .LVU1702 2562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5489 .loc 1 2562 7 view .LVU1703 2562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5490 .loc 1 2562 11 is_stmt 0 view .LVU1704 5491 00ec 0096 str r6, [sp] 5492 00ee 0E9B ldr r3, [sp, #56] 5493 00f0 0022 movs r2, #0 5494 00f2 0421 movs r1, #4 5495 00f4 2000 movs r0, r4 5496 00f6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5497 .LVL373: 2562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5498 .loc 1 2562 10 view .LVU1705 5499 00fa 0028 cmp r0, #0 5500 00fc 49D1 bne .L323 2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5501 .loc 1 2568 7 is_stmt 1 view .LVU1706 2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5502 .loc 1 2568 38 is_stmt 0 view .LVU1707 5503 00fe 2368 ldr r3, [r4] 2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5504 .loc 1 2568 48 view .LVU1708 5505 0100 5B6A ldr r3, [r3, #36] 2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5506 .loc 1 2568 23 view .LVU1709 5507 0102 626A ldr r2, [r4, #36] 5508 0104 1370 strb r3, [r2] ARM GAS /tmp/ccRVAHyi.s page 244 2571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5509 .loc 1 2571 7 is_stmt 1 view .LVU1710 2571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5510 .loc 1 2571 21 is_stmt 0 view .LVU1711 5511 0106 636A ldr r3, [r4, #36] 5512 0108 0133 adds r3, r3, #1 5513 010a 6362 str r3, [r4, #36] 2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5514 .loc 1 2573 7 is_stmt 1 view .LVU1712 2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5515 .loc 1 2573 11 is_stmt 0 view .LVU1713 5516 010c 238D ldrh r3, [r4, #40] 2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5517 .loc 1 2573 21 view .LVU1714 5518 010e 013B subs r3, r3, #1 5519 0110 9BB2 uxth r3, r3 5520 0112 2385 strh r3, [r4, #40] 2574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5521 .loc 1 2574 7 is_stmt 1 view .LVU1715 2574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5522 .loc 1 2574 11 is_stmt 0 view .LVU1716 5523 0114 628D ldrh r2, [r4, #42] 2574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5524 .loc 1 2574 22 view .LVU1717 5525 0116 013A subs r2, r2, #1 5526 0118 92B2 uxth r2, r2 5527 011a 6285 strh r2, [r4, #42] 2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5528 .loc 1 2576 7 is_stmt 1 view .LVU1718 2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5529 .loc 1 2576 16 is_stmt 0 view .LVU1719 5530 011c 628D ldrh r2, [r4, #42] 5531 011e 92B2 uxth r2, r2 2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5532 .loc 1 2576 10 view .LVU1720 5533 0120 002A cmp r2, #0 5534 0122 DFD0 beq .L317 2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5535 .loc 1 2576 35 discriminator 1 view .LVU1721 5536 0124 002B cmp r3, #0 5537 0126 DDD1 bne .L317 2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5538 .loc 1 2579 9 is_stmt 1 view .LVU1722 2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5539 .loc 1 2579 13 is_stmt 0 view .LVU1723 5540 0128 0096 str r6, [sp] 5541 012a 0E9B ldr r3, [sp, #56] 5542 012c 0022 movs r2, #0 5543 012e 8021 movs r1, #128 5544 0130 2000 movs r0, r4 5545 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5546 .LVL374: 2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5547 .loc 1 2579 12 view .LVU1724 5548 0136 0028 cmp r0, #0 5549 0138 2DD1 bne .L324 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 245 5550 .loc 1 2584 9 is_stmt 1 view .LVU1725 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5551 .loc 1 2584 17 is_stmt 0 view .LVU1726 5552 013a 638D ldrh r3, [r4, #42] 5553 013c 9BB2 uxth r3, r3 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5554 .loc 1 2584 12 view .LVU1727 5555 013e FF2B cmp r3, #255 5556 0140 C4D9 bls .L318 2586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5557 .loc 1 2586 11 is_stmt 1 view .LVU1728 2586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5558 .loc 1 2586 26 is_stmt 0 view .LVU1729 5559 0142 FF23 movs r3, #255 5560 0144 2385 strh r3, [r4, #40] 2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5561 .loc 1 2587 11 is_stmt 1 view .LVU1730 5562 0146 7F3B subs r3, r3, #127 5563 0148 0022 movs r2, #0 5564 014a 0092 str r2, [sp] 5565 014c 5B04 lsls r3, r3, #17 5566 014e FF32 adds r2, r2, #255 5567 0150 0399 ldr r1, [sp, #12] 5568 0152 2000 movs r0, r4 5569 0154 FFF7FEFF bl I2C_TransferConfig 5570 .LVL375: 5571 0158 C4E7 b .L317 5572 .L328: 2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5573 .loc 1 2601 5 view .LVU1731 2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5574 .loc 1 2601 9 is_stmt 0 view .LVU1732 5575 015a 3200 movs r2, r6 5576 015c 0E99 ldr r1, [sp, #56] 5577 015e 2000 movs r0, r4 5578 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5579 .LVL376: 2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5580 .loc 1 2601 8 view .LVU1733 5581 0164 0028 cmp r0, #0 5582 0166 18D1 bne .L325 2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5583 .loc 1 2607 5 is_stmt 1 view .LVU1734 5584 0168 2368 ldr r3, [r4] 5585 016a 2022 movs r2, #32 5586 016c DA61 str r2, [r3, #28] 2610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5587 .loc 1 2610 5 view .LVU1735 5588 016e 2168 ldr r1, [r4] 5589 0170 4B68 ldr r3, [r1, #4] 5590 0172 0C4D ldr r5, .L329+4 5591 0174 2B40 ands r3, r5 5592 0176 4B60 str r3, [r1, #4] 2612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5593 .loc 1 2612 5 view .LVU1736 2612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5594 .loc 1 2612 17 is_stmt 0 view .LVU1737 ARM GAS /tmp/ccRVAHyi.s page 246 5595 0178 4123 movs r3, #65 5596 017a E254 strb r2, [r4, r3] 2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5597 .loc 1 2613 5 is_stmt 1 view .LVU1738 2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5598 .loc 1 2613 17 is_stmt 0 view .LVU1739 5599 017c 0023 movs r3, #0 5600 017e 2232 adds r2, r2, #34 5601 0180 A354 strb r3, [r4, r2] 2616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5602 .loc 1 2616 5 is_stmt 1 view .LVU1740 2616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5603 .loc 1 2616 5 view .LVU1741 5604 0182 023A subs r2, r2, #2 5605 0184 A354 strb r3, [r4, r2] 2618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5606 .loc 1 2618 5 view .LVU1742 2618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5607 .loc 1 2618 12 is_stmt 0 view .LVU1743 5608 0186 00E0 b .L311 5609 .LVL377: 5610 .L320: 2622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5611 .loc 1 2622 12 view .LVU1744 5612 0188 0220 movs r0, #2 5613 .LVL378: 5614 .L311: 2624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5615 .loc 1 2624 1 view .LVU1745 5616 018a 07B0 add sp, sp, #28 5617 @ sp needed 5618 .LVL379: 2624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5619 .loc 1 2624 1 view .LVU1746 5620 018c F0BD pop {r4, r5, r6, r7, pc} 5621 .LVL380: 5622 .L321: 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5623 .loc 1 2517 5 view .LVU1747 5624 018e 0220 movs r0, #2 5625 .LVL381: 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5626 .loc 1 2517 5 view .LVU1748 5627 0190 FBE7 b .L311 5628 .LVL382: 5629 .L323: 2564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5630 .loc 1 2564 16 view .LVU1749 5631 0192 0120 movs r0, #1 5632 0194 F9E7 b .L311 5633 .L324: 2581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5634 .loc 1 2581 18 view .LVU1750 5635 0196 0120 movs r0, #1 5636 0198 F7E7 b .L311 5637 .L325: 2603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 247 5638 .loc 1 2603 14 view .LVU1751 5639 019a 0120 movs r0, #1 5640 019c F5E7 b .L311 5641 .L330: 5642 019e C046 .align 2 5643 .L329: 5644 01a0 00240080 .word -2147474432 5645 01a4 00E800FE .word -33495040 5646 .cfi_endproc 5647 .LFE57: 5649 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5650 .align 1 5651 .global HAL_I2C_Mem_Write_IT 5652 .syntax unified 5653 .code 16 5654 .thumb_func 5655 .fpu softvfp 5657 HAL_I2C_Mem_Write_IT: 5658 .LVL383: 5659 .LFB58: 2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5660 .loc 1 2639 1 is_stmt 1 view -0 5661 .cfi_startproc 5662 @ args = 8, pretend = 0, frame = 16 5663 @ frame_needed = 0, uses_anonymous_args = 0 2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5664 .loc 1 2639 1 is_stmt 0 view .LVU1753 5665 0000 F0B5 push {r4, r5, r6, r7, lr} 5666 .LCFI37: 5667 .cfi_def_cfa_offset 20 5668 .cfi_offset 4, -20 5669 .cfi_offset 5, -16 5670 .cfi_offset 6, -12 5671 .cfi_offset 7, -8 5672 .cfi_offset 14, -4 5673 0002 C646 mov lr, r8 5674 0004 00B5 push {lr} 5675 .LCFI38: 5676 .cfi_def_cfa_offset 24 5677 .cfi_offset 8, -24 5678 0006 86B0 sub sp, sp, #24 5679 .LCFI39: 5680 .cfi_def_cfa_offset 48 5681 0008 0400 movs r4, r0 5682 000a 0391 str r1, [sp, #12] 5683 000c 0492 str r2, [sp, #16] 5684 000e 0593 str r3, [sp, #20] 5685 0010 0CAB add r3, sp, #48 5686 .LVL384: 2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5687 .loc 1 2639 1 view .LVU1754 5688 0012 80CB ldmia r3!, {r7} 5689 .LVL385: 2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5690 .loc 1 2639 1 view .LVU1755 5691 0014 1E88 ldrh r6, [r3] 2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; ARM GAS /tmp/ccRVAHyi.s page 248 5692 .loc 1 2640 3 is_stmt 1 view .LVU1756 2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5693 .loc 1 2641 3 view .LVU1757 2644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5694 .loc 1 2644 3 view .LVU1758 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5695 .loc 1 2646 3 view .LVU1759 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5696 .loc 1 2646 11 is_stmt 0 view .LVU1760 5697 0016 4123 movs r3, #65 5698 .LVL386: 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5699 .loc 1 2646 11 view .LVU1761 5700 0018 C35C ldrb r3, [r0, r3] 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5701 .loc 1 2646 6 view .LVU1762 5702 001a 202B cmp r3, #32 5703 001c 51D1 bne .L338 2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5704 .loc 1 2648 5 is_stmt 1 view .LVU1763 2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5705 .loc 1 2648 8 is_stmt 0 view .LVU1764 5706 001e 002F cmp r7, #0 5707 0020 34D0 beq .L333 2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5708 .loc 1 2648 25 discriminator 1 view .LVU1765 5709 0022 002E cmp r6, #0 5710 0024 32D0 beq .L333 2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5711 .loc 1 2654 5 is_stmt 1 view .LVU1766 2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5712 .loc 1 2654 9 is_stmt 0 view .LVU1767 5713 0026 0368 ldr r3, [r0] 5714 0028 9B69 ldr r3, [r3, #24] 2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5715 .loc 1 2654 8 view .LVU1768 5716 002a 1B04 lsls r3, r3, #16 5717 002c 4FD4 bmi .L339 2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5718 .loc 1 2660 5 is_stmt 1 view .LVU1769 2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5719 .loc 1 2660 5 view .LVU1770 5720 002e 4023 movs r3, #64 5721 0030 C35C ldrb r3, [r0, r3] 5722 0032 012B cmp r3, #1 5723 0034 4DD0 beq .L340 2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5724 .loc 1 2660 5 discriminator 2 view .LVU1771 5725 0036 4025 movs r5, #64 5726 0038 0123 movs r3, #1 5727 003a 4355 strb r3, [r0, r5] 2663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5728 .loc 1 2663 5 discriminator 2 view .LVU1772 2663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5729 .loc 1 2663 17 is_stmt 0 discriminator 2 view .LVU1773 5730 003c FFF7FEFF bl HAL_GetTick 5731 .LVL387: ARM GAS /tmp/ccRVAHyi.s page 249 2665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5732 .loc 1 2665 5 is_stmt 1 discriminator 2 view .LVU1774 2665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5733 .loc 1 2665 23 is_stmt 0 discriminator 2 view .LVU1775 5734 0040 4123 movs r3, #65 5735 0042 2122 movs r2, #33 5736 0044 E254 strb r2, [r4, r3] 2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5737 .loc 1 2666 5 is_stmt 1 discriminator 2 view .LVU1776 2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5738 .loc 1 2666 23 is_stmt 0 discriminator 2 view .LVU1777 5739 0046 0133 adds r3, r3, #1 5740 0048 E554 strb r5, [r4, r3] 2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5741 .loc 1 2667 5 is_stmt 1 discriminator 2 view .LVU1778 2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5742 .loc 1 2667 23 is_stmt 0 discriminator 2 view .LVU1779 5743 004a 0023 movs r3, #0 5744 004c 6364 str r3, [r4, #68] 2670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5745 .loc 1 2670 5 is_stmt 1 discriminator 2 view .LVU1780 2670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5746 .loc 1 2670 23 is_stmt 0 discriminator 2 view .LVU1781 5747 004e 6762 str r7, [r4, #36] 2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5748 .loc 1 2671 5 is_stmt 1 discriminator 2 view .LVU1782 2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5749 .loc 1 2671 23 is_stmt 0 discriminator 2 view .LVU1783 5750 0050 6685 strh r6, [r4, #42] 2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5751 .loc 1 2672 5 is_stmt 1 discriminator 2 view .LVU1784 2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5752 .loc 1 2672 23 is_stmt 0 discriminator 2 view .LVU1785 5753 0052 214B ldr r3, .L341 5754 0054 E362 str r3, [r4, #44] 2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5755 .loc 1 2673 5 is_stmt 1 discriminator 2 view .LVU1786 2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5756 .loc 1 2673 23 is_stmt 0 discriminator 2 view .LVU1787 5757 0056 214B ldr r3, .L341+4 5758 0058 6363 str r3, [r4, #52] 2675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5759 .loc 1 2675 5 is_stmt 1 discriminator 2 view .LVU1788 2675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5760 .loc 1 2675 13 is_stmt 0 discriminator 2 view .LVU1789 5761 005a 638D ldrh r3, [r4, #42] 5762 005c 9BB2 uxth r3, r3 2675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5763 .loc 1 2675 8 discriminator 2 view .LVU1790 5764 005e FF2B cmp r3, #255 5765 0060 19D9 bls .L335 2677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5766 .loc 1 2677 7 is_stmt 1 view .LVU1791 2677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5767 .loc 1 2677 22 is_stmt 0 view .LVU1792 5768 0062 FF23 movs r3, #255 5769 0064 2385 strh r3, [r4, #40] ARM GAS /tmp/ccRVAHyi.s page 250 2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5770 .loc 1 2678 7 is_stmt 1 view .LVU1793 5771 .LVL388: 2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5772 .loc 1 2678 16 is_stmt 0 view .LVU1794 5773 0066 8023 movs r3, #128 5774 0068 5B04 lsls r3, r3, #17 5775 006a 9846 mov r8, r3 5776 .LVL389: 5777 .L336: 2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 5778 .loc 1 2687 5 is_stmt 1 view .LVU1795 2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 5779 .loc 1 2687 9 is_stmt 0 view .LVU1796 5780 006c 0190 str r0, [sp, #4] 5781 006e 1923 movs r3, #25 5782 0070 0093 str r3, [sp] 5783 0072 059B ldr r3, [sp, #20] 5784 0074 049A ldr r2, [sp, #16] 5785 0076 0399 ldr r1, [sp, #12] 5786 0078 2000 movs r0, r4 5787 .LVL390: 2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 5788 .loc 1 2687 9 view .LVU1797 5789 007a FFF7FEFF bl I2C_RequestMemoryWrite 5790 .LVL391: 2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 5791 .loc 1 2687 9 view .LVU1798 5792 007e 061E subs r6, r0, #0 2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 5793 .loc 1 2687 8 view .LVU1799 5794 0080 0FD0 beq .L337 2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5795 .loc 1 2691 7 is_stmt 1 view .LVU1800 2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5796 .loc 1 2691 7 view .LVU1801 5797 0082 4023 movs r3, #64 5798 0084 0022 movs r2, #0 5799 0086 E254 strb r2, [r4, r3] 2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5800 .loc 1 2692 7 view .LVU1802 2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5801 .loc 1 2692 14 is_stmt 0 view .LVU1803 5802 0088 0126 movs r6, #1 5803 008a 1BE0 b .L332 5804 .LVL392: 5805 .L333: 2650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5806 .loc 1 2650 7 is_stmt 1 view .LVU1804 2650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5807 .loc 1 2650 23 is_stmt 0 view .LVU1805 5808 008c 8023 movs r3, #128 5809 008e 9B00 lsls r3, r3, #2 5810 0090 6364 str r3, [r4, #68] 2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5811 .loc 1 2651 7 is_stmt 1 view .LVU1806 2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 251 5812 .loc 1 2651 15 is_stmt 0 view .LVU1807 5813 0092 0126 movs r6, #1 5814 0094 16E0 b .L332 5815 .LVL393: 5816 .L335: 2682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5817 .loc 1 2682 7 is_stmt 1 view .LVU1808 2682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5818 .loc 1 2682 28 is_stmt 0 view .LVU1809 5819 0096 638D ldrh r3, [r4, #42] 2682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5820 .loc 1 2682 22 view .LVU1810 5821 0098 2385 strh r3, [r4, #40] 2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5822 .loc 1 2683 7 is_stmt 1 view .LVU1811 5823 .LVL394: 2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5824 .loc 1 2683 16 is_stmt 0 view .LVU1812 5825 009a 8023 movs r3, #128 5826 009c 9B04 lsls r3, r3, #18 5827 009e 9846 mov r8, r3 5828 00a0 E4E7 b .L336 5829 .LVL395: 5830 .L337: 2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5831 .loc 1 2696 5 is_stmt 1 view .LVU1813 2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5832 .loc 1 2696 55 is_stmt 0 view .LVU1814 5833 00a2 228D ldrh r2, [r4, #40] 2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5834 .loc 1 2696 5 view .LVU1815 5835 00a4 D2B2 uxtb r2, r2 5836 00a6 0027 movs r7, #0 5837 00a8 0097 str r7, [sp] 5838 00aa 4346 mov r3, r8 5839 00ac 0399 ldr r1, [sp, #12] 5840 00ae 2000 movs r0, r4 5841 00b0 FFF7FEFF bl I2C_TransferConfig 5842 .LVL396: 2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5843 .loc 1 2699 5 is_stmt 1 view .LVU1816 2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5844 .loc 1 2699 5 view .LVU1817 5845 00b4 4023 movs r3, #64 5846 00b6 E754 strb r7, [r4, r3] 2709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5847 .loc 1 2709 5 view .LVU1818 5848 00b8 0121 movs r1, #1 5849 00ba 2000 movs r0, r4 5850 00bc FFF7FEFF bl I2C_Enable_IRQ 5851 .LVL397: 2711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5852 .loc 1 2711 5 view .LVU1819 2711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5853 .loc 1 2711 12 is_stmt 0 view .LVU1820 5854 00c0 00E0 b .L332 5855 .LVL398: ARM GAS /tmp/ccRVAHyi.s page 252 5856 .L338: 2715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5857 .loc 1 2715 12 view .LVU1821 5858 00c2 0226 movs r6, #2 5859 .LVL399: 5860 .L332: 2717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5861 .loc 1 2717 1 view .LVU1822 5862 00c4 3000 movs r0, r6 5863 00c6 06B0 add sp, sp, #24 5864 @ sp needed 5865 .LVL400: 2717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5866 .loc 1 2717 1 view .LVU1823 5867 00c8 04BC pop {r2} 5868 00ca 9046 mov r8, r2 5869 00cc F0BD pop {r4, r5, r6, r7, pc} 5870 .LVL401: 5871 .L339: 2656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5872 .loc 1 2656 14 view .LVU1824 5873 00ce 0226 movs r6, #2 5874 00d0 F8E7 b .L332 5875 .L340: 2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5876 .loc 1 2660 5 view .LVU1825 5877 00d2 0226 movs r6, #2 5878 00d4 F6E7 b .L332 5879 .L342: 5880 00d6 C046 .align 2 5881 .L341: 5882 00d8 0000FFFF .word -65536 5883 00dc 00000000 .word I2C_Master_ISR_IT 5884 .cfi_endproc 5885 .LFE58: 5887 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 5888 .align 1 5889 .global HAL_I2C_Mem_Read_IT 5890 .syntax unified 5891 .code 16 5892 .thumb_func 5893 .fpu softvfp 5895 HAL_I2C_Mem_Read_IT: 5896 .LVL402: 5897 .LFB59: 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5898 .loc 1 2733 1 is_stmt 1 view -0 5899 .cfi_startproc 5900 @ args = 8, pretend = 0, frame = 16 5901 @ frame_needed = 0, uses_anonymous_args = 0 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5902 .loc 1 2733 1 is_stmt 0 view .LVU1827 5903 0000 F0B5 push {r4, r5, r6, r7, lr} 5904 .LCFI40: 5905 .cfi_def_cfa_offset 20 5906 .cfi_offset 4, -20 5907 .cfi_offset 5, -16 ARM GAS /tmp/ccRVAHyi.s page 253 5908 .cfi_offset 6, -12 5909 .cfi_offset 7, -8 5910 .cfi_offset 14, -4 5911 0002 C646 mov lr, r8 5912 0004 00B5 push {lr} 5913 .LCFI41: 5914 .cfi_def_cfa_offset 24 5915 .cfi_offset 8, -24 5916 0006 86B0 sub sp, sp, #24 5917 .LCFI42: 5918 .cfi_def_cfa_offset 48 5919 0008 0400 movs r4, r0 5920 000a 0391 str r1, [sp, #12] 5921 000c 0492 str r2, [sp, #16] 5922 000e 0593 str r3, [sp, #20] 5923 0010 0CAB add r3, sp, #48 5924 .LVL403: 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5925 .loc 1 2733 1 view .LVU1828 5926 0012 80CB ldmia r3!, {r7} 5927 .LVL404: 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5928 .loc 1 2733 1 view .LVU1829 5929 0014 1E88 ldrh r6, [r3] 2734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 5930 .loc 1 2734 3 is_stmt 1 view .LVU1830 2735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5931 .loc 1 2735 3 view .LVU1831 2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5932 .loc 1 2738 3 view .LVU1832 2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5933 .loc 1 2740 3 view .LVU1833 2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5934 .loc 1 2740 11 is_stmt 0 view .LVU1834 5935 0016 4123 movs r3, #65 5936 .LVL405: 2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5937 .loc 1 2740 11 view .LVU1835 5938 0018 C35C ldrb r3, [r0, r3] 2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5939 .loc 1 2740 6 view .LVU1836 5940 001a 202B cmp r3, #32 5941 001c 52D1 bne .L350 2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5942 .loc 1 2742 5 is_stmt 1 view .LVU1837 2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5943 .loc 1 2742 8 is_stmt 0 view .LVU1838 5944 001e 002F cmp r7, #0 5945 0020 34D0 beq .L345 2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5946 .loc 1 2742 25 discriminator 1 view .LVU1839 5947 0022 002E cmp r6, #0 5948 0024 32D0 beq .L345 2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5949 .loc 1 2748 5 is_stmt 1 view .LVU1840 2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5950 .loc 1 2748 9 is_stmt 0 view .LVU1841 ARM GAS /tmp/ccRVAHyi.s page 254 5951 0026 0368 ldr r3, [r0] 5952 0028 9B69 ldr r3, [r3, #24] 2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5953 .loc 1 2748 8 view .LVU1842 5954 002a 1B04 lsls r3, r3, #16 5955 002c 50D4 bmi .L351 2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5956 .loc 1 2754 5 is_stmt 1 view .LVU1843 2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5957 .loc 1 2754 5 view .LVU1844 5958 002e 4023 movs r3, #64 5959 0030 C35C ldrb r3, [r0, r3] 5960 0032 012B cmp r3, #1 5961 0034 4ED0 beq .L352 2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5962 .loc 1 2754 5 discriminator 2 view .LVU1845 5963 0036 4025 movs r5, #64 5964 0038 0123 movs r3, #1 5965 003a 4355 strb r3, [r0, r5] 2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5966 .loc 1 2757 5 discriminator 2 view .LVU1846 2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5967 .loc 1 2757 17 is_stmt 0 discriminator 2 view .LVU1847 5968 003c FFF7FEFF bl HAL_GetTick 5969 .LVL406: 2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5970 .loc 1 2759 5 is_stmt 1 discriminator 2 view .LVU1848 2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5971 .loc 1 2759 23 is_stmt 0 discriminator 2 view .LVU1849 5972 0040 4123 movs r3, #65 5973 0042 2222 movs r2, #34 5974 0044 E254 strb r2, [r4, r3] 2760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5975 .loc 1 2760 5 is_stmt 1 discriminator 2 view .LVU1850 2760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5976 .loc 1 2760 23 is_stmt 0 discriminator 2 view .LVU1851 5977 0046 0133 adds r3, r3, #1 5978 0048 E554 strb r5, [r4, r3] 2761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5979 .loc 1 2761 5 is_stmt 1 discriminator 2 view .LVU1852 2761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5980 .loc 1 2761 23 is_stmt 0 discriminator 2 view .LVU1853 5981 004a 0023 movs r3, #0 5982 004c 6364 str r3, [r4, #68] 2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5983 .loc 1 2764 5 is_stmt 1 discriminator 2 view .LVU1854 2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5984 .loc 1 2764 23 is_stmt 0 discriminator 2 view .LVU1855 5985 004e 6762 str r7, [r4, #36] 2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5986 .loc 1 2765 5 is_stmt 1 discriminator 2 view .LVU1856 2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5987 .loc 1 2765 23 is_stmt 0 discriminator 2 view .LVU1857 5988 0050 6685 strh r6, [r4, #42] 2766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5989 .loc 1 2766 5 is_stmt 1 discriminator 2 view .LVU1858 2766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; ARM GAS /tmp/ccRVAHyi.s page 255 5990 .loc 1 2766 23 is_stmt 0 discriminator 2 view .LVU1859 5991 0052 214B ldr r3, .L353 5992 0054 E362 str r3, [r4, #44] 2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5993 .loc 1 2767 5 is_stmt 1 discriminator 2 view .LVU1860 2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5994 .loc 1 2767 23 is_stmt 0 discriminator 2 view .LVU1861 5995 0056 214B ldr r3, .L353+4 5996 0058 6363 str r3, [r4, #52] 2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5997 .loc 1 2769 5 is_stmt 1 discriminator 2 view .LVU1862 2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5998 .loc 1 2769 13 is_stmt 0 discriminator 2 view .LVU1863 5999 005a 638D ldrh r3, [r4, #42] 6000 005c 9BB2 uxth r3, r3 2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6001 .loc 1 2769 8 discriminator 2 view .LVU1864 6002 005e FF2B cmp r3, #255 6003 0060 19D9 bls .L347 2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6004 .loc 1 2771 7 is_stmt 1 view .LVU1865 2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6005 .loc 1 2771 22 is_stmt 0 view .LVU1866 6006 0062 FF23 movs r3, #255 6007 0064 2385 strh r3, [r4, #40] 2772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6008 .loc 1 2772 7 is_stmt 1 view .LVU1867 6009 .LVL407: 2772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6010 .loc 1 2772 16 is_stmt 0 view .LVU1868 6011 0066 8023 movs r3, #128 6012 0068 5B04 lsls r3, r3, #17 6013 006a 9846 mov r8, r3 6014 .LVL408: 6015 .L348: 2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6016 .loc 1 2781 5 is_stmt 1 view .LVU1869 2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6017 .loc 1 2781 9 is_stmt 0 view .LVU1870 6018 006c 0190 str r0, [sp, #4] 6019 006e 1923 movs r3, #25 6020 0070 0093 str r3, [sp] 6021 0072 059B ldr r3, [sp, #20] 6022 0074 049A ldr r2, [sp, #16] 6023 0076 0399 ldr r1, [sp, #12] 6024 0078 2000 movs r0, r4 6025 .LVL409: 2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6026 .loc 1 2781 9 view .LVU1871 6027 007a FFF7FEFF bl I2C_RequestMemoryRead 6028 .LVL410: 2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6029 .loc 1 2781 9 view .LVU1872 6030 007e 061E subs r6, r0, #0 2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6031 .loc 1 2781 8 view .LVU1873 6032 0080 0FD0 beq .L349 ARM GAS /tmp/ccRVAHyi.s page 256 2784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6033 .loc 1 2784 7 is_stmt 1 view .LVU1874 2784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6034 .loc 1 2784 7 view .LVU1875 6035 0082 4023 movs r3, #64 6036 0084 0022 movs r2, #0 6037 0086 E254 strb r2, [r4, r3] 2785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6038 .loc 1 2785 7 view .LVU1876 2785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6039 .loc 1 2785 14 is_stmt 0 view .LVU1877 6040 0088 0126 movs r6, #1 6041 008a 1CE0 b .L344 6042 .LVL411: 6043 .L345: 2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6044 .loc 1 2744 7 is_stmt 1 view .LVU1878 2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6045 .loc 1 2744 23 is_stmt 0 view .LVU1879 6046 008c 8023 movs r3, #128 6047 008e 9B00 lsls r3, r3, #2 6048 0090 6364 str r3, [r4, #68] 2745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6049 .loc 1 2745 7 is_stmt 1 view .LVU1880 2745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6050 .loc 1 2745 15 is_stmt 0 view .LVU1881 6051 0092 0126 movs r6, #1 6052 0094 17E0 b .L344 6053 .LVL412: 6054 .L347: 2776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6055 .loc 1 2776 7 is_stmt 1 view .LVU1882 2776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6056 .loc 1 2776 28 is_stmt 0 view .LVU1883 6057 0096 638D ldrh r3, [r4, #42] 2776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6058 .loc 1 2776 22 view .LVU1884 6059 0098 2385 strh r3, [r4, #40] 2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6060 .loc 1 2777 7 is_stmt 1 view .LVU1885 6061 .LVL413: 2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6062 .loc 1 2777 16 is_stmt 0 view .LVU1886 6063 009a 8023 movs r3, #128 6064 009c 9B04 lsls r3, r3, #18 6065 009e 9846 mov r8, r3 6066 00a0 E4E7 b .L348 6067 .LVL414: 6068 .L349: 2789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6069 .loc 1 2789 5 is_stmt 1 view .LVU1887 2789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6070 .loc 1 2789 55 is_stmt 0 view .LVU1888 6071 00a2 228D ldrh r2, [r4, #40] 2789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6072 .loc 1 2789 5 view .LVU1889 6073 00a4 D2B2 uxtb r2, r2 ARM GAS /tmp/ccRVAHyi.s page 257 6074 00a6 0E4B ldr r3, .L353+8 6075 00a8 0093 str r3, [sp] 6076 00aa 4346 mov r3, r8 6077 00ac 0399 ldr r1, [sp, #12] 6078 00ae 2000 movs r0, r4 6079 00b0 FFF7FEFF bl I2C_TransferConfig 6080 .LVL415: 2792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6081 .loc 1 2792 5 is_stmt 1 view .LVU1890 2792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6082 .loc 1 2792 5 view .LVU1891 6083 00b4 4023 movs r3, #64 6084 00b6 0022 movs r2, #0 6085 00b8 E254 strb r2, [r4, r3] 2802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6086 .loc 1 2802 5 view .LVU1892 6087 00ba 0221 movs r1, #2 6088 00bc 2000 movs r0, r4 6089 00be FFF7FEFF bl I2C_Enable_IRQ 6090 .LVL416: 2804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6091 .loc 1 2804 5 view .LVU1893 2804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6092 .loc 1 2804 12 is_stmt 0 view .LVU1894 6093 00c2 00E0 b .L344 6094 .LVL417: 6095 .L350: 2808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6096 .loc 1 2808 12 view .LVU1895 6097 00c4 0226 movs r6, #2 6098 .LVL418: 6099 .L344: 2810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6100 .loc 1 2810 1 view .LVU1896 6101 00c6 3000 movs r0, r6 6102 00c8 06B0 add sp, sp, #24 6103 @ sp needed 6104 .LVL419: 2810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6105 .loc 1 2810 1 view .LVU1897 6106 00ca 04BC pop {r2} 6107 00cc 9046 mov r8, r2 6108 00ce F0BD pop {r4, r5, r6, r7, pc} 6109 .LVL420: 6110 .L351: 2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6111 .loc 1 2750 14 view .LVU1898 6112 00d0 0226 movs r6, #2 6113 00d2 F8E7 b .L344 6114 .L352: 2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6115 .loc 1 2754 5 view .LVU1899 6116 00d4 0226 movs r6, #2 6117 00d6 F6E7 b .L344 6118 .L354: 6119 .align 2 6120 .L353: ARM GAS /tmp/ccRVAHyi.s page 258 6121 00d8 0000FFFF .word -65536 6122 00dc 00000000 .word I2C_Master_ISR_IT 6123 00e0 00240080 .word -2147474432 6124 .cfi_endproc 6125 .LFE59: 6127 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6128 .align 1 6129 .global HAL_I2C_Mem_Write_DMA 6130 .syntax unified 6131 .code 16 6132 .thumb_func 6133 .fpu softvfp 6135 HAL_I2C_Mem_Write_DMA: 6136 .LVL421: 6137 .LFB60: 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6138 .loc 1 2825 1 is_stmt 1 view -0 6139 .cfi_startproc 6140 @ args = 8, pretend = 0, frame = 16 6141 @ frame_needed = 0, uses_anonymous_args = 0 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6142 .loc 1 2825 1 is_stmt 0 view .LVU1901 6143 0000 F0B5 push {r4, r5, r6, r7, lr} 6144 .LCFI43: 6145 .cfi_def_cfa_offset 20 6146 .cfi_offset 4, -20 6147 .cfi_offset 5, -16 6148 .cfi_offset 6, -12 6149 .cfi_offset 7, -8 6150 .cfi_offset 14, -4 6151 0002 CE46 mov lr, r9 6152 0004 00B5 push {lr} 6153 .LCFI44: 6154 .cfi_def_cfa_offset 24 6155 .cfi_offset 9, -24 6156 0006 86B0 sub sp, sp, #24 6157 .LCFI45: 6158 .cfi_def_cfa_offset 48 6159 0008 0400 movs r4, r0 6160 000a 0391 str r1, [sp, #12] 6161 000c 0492 str r2, [sp, #16] 6162 000e 0593 str r3, [sp, #20] 6163 0010 0CAB add r3, sp, #48 6164 .LVL422: 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6165 .loc 1 2825 1 view .LVU1902 6166 0012 40CB ldmia r3!, {r6} 6167 .LVL423: 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6168 .loc 1 2825 1 view .LVU1903 6169 0014 1F88 ldrh r7, [r3] 2826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 6170 .loc 1 2826 3 is_stmt 1 view .LVU1904 2827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6171 .loc 1 2827 3 view .LVU1905 2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6172 .loc 1 2828 3 view .LVU1906 ARM GAS /tmp/ccRVAHyi.s page 259 2831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6173 .loc 1 2831 3 view .LVU1907 2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6174 .loc 1 2833 3 view .LVU1908 2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6175 .loc 1 2833 11 is_stmt 0 view .LVU1909 6176 0016 4123 movs r3, #65 6177 .LVL424: 2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6178 .loc 1 2833 11 view .LVU1910 6179 0018 C35C ldrb r3, [r0, r3] 2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6180 .loc 1 2833 6 view .LVU1911 6181 001a 202B cmp r3, #32 6182 001c 00D0 beq .LCB5831 6183 001e 90E0 b .L365 @long jump 6184 .LCB5831: 2835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6185 .loc 1 2835 5 is_stmt 1 view .LVU1912 2835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6186 .loc 1 2835 8 is_stmt 0 view .LVU1913 6187 0020 002E cmp r6, #0 6188 0022 55D0 beq .L357 2835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6189 .loc 1 2835 25 discriminator 1 view .LVU1914 6190 0024 002F cmp r7, #0 6191 0026 53D0 beq .L357 2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6192 .loc 1 2841 5 is_stmt 1 view .LVU1915 2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6193 .loc 1 2841 9 is_stmt 0 view .LVU1916 6194 0028 0368 ldr r3, [r0] 6195 002a 9B69 ldr r3, [r3, #24] 2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6196 .loc 1 2841 8 view .LVU1917 6197 002c 1B04 lsls r3, r3, #16 6198 002e 00D5 bpl .LCB5843 6199 0030 8DE0 b .L366 @long jump 6200 .LCB5843: 2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6201 .loc 1 2847 5 is_stmt 1 view .LVU1918 2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6202 .loc 1 2847 5 view .LVU1919 6203 0032 4023 movs r3, #64 6204 0034 C35C ldrb r3, [r0, r3] 6205 0036 012B cmp r3, #1 6206 0038 00D1 bne .LCB5849 6207 003a 8AE0 b .L367 @long jump 6208 .LCB5849: 2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6209 .loc 1 2847 5 discriminator 2 view .LVU1920 6210 003c 4025 movs r5, #64 6211 003e 0123 movs r3, #1 6212 0040 4355 strb r3, [r0, r5] 2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6213 .loc 1 2850 5 discriminator 2 view .LVU1921 2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 260 6214 .loc 1 2850 17 is_stmt 0 discriminator 2 view .LVU1922 6215 0042 FFF7FEFF bl HAL_GetTick 6216 .LVL425: 2852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6217 .loc 1 2852 5 is_stmt 1 discriminator 2 view .LVU1923 2852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6218 .loc 1 2852 23 is_stmt 0 discriminator 2 view .LVU1924 6219 0046 4123 movs r3, #65 6220 0048 2122 movs r2, #33 6221 004a E254 strb r2, [r4, r3] 2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6222 .loc 1 2853 5 is_stmt 1 discriminator 2 view .LVU1925 2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6223 .loc 1 2853 23 is_stmt 0 discriminator 2 view .LVU1926 6224 004c 0133 adds r3, r3, #1 6225 004e E554 strb r5, [r4, r3] 2854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6226 .loc 1 2854 5 is_stmt 1 discriminator 2 view .LVU1927 2854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6227 .loc 1 2854 23 is_stmt 0 discriminator 2 view .LVU1928 6228 0050 0023 movs r3, #0 6229 0052 6364 str r3, [r4, #68] 2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6230 .loc 1 2857 5 is_stmt 1 discriminator 2 view .LVU1929 2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6231 .loc 1 2857 23 is_stmt 0 discriminator 2 view .LVU1930 6232 0054 6662 str r6, [r4, #36] 2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6233 .loc 1 2858 5 is_stmt 1 discriminator 2 view .LVU1931 2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6234 .loc 1 2858 23 is_stmt 0 discriminator 2 view .LVU1932 6235 0056 6785 strh r7, [r4, #42] 2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6236 .loc 1 2859 5 is_stmt 1 discriminator 2 view .LVU1933 2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6237 .loc 1 2859 23 is_stmt 0 discriminator 2 view .LVU1934 6238 0058 3F4B ldr r3, .L371 6239 005a E362 str r3, [r4, #44] 2860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6240 .loc 1 2860 5 is_stmt 1 discriminator 2 view .LVU1935 2860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6241 .loc 1 2860 23 is_stmt 0 discriminator 2 view .LVU1936 6242 005c 3F4B ldr r3, .L371+4 6243 005e 6363 str r3, [r4, #52] 2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6244 .loc 1 2862 5 is_stmt 1 discriminator 2 view .LVU1937 2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6245 .loc 1 2862 13 is_stmt 0 discriminator 2 view .LVU1938 6246 0060 638D ldrh r3, [r4, #42] 6247 0062 9BB2 uxth r3, r3 2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6248 .loc 1 2862 8 discriminator 2 view .LVU1939 6249 0064 FF2B cmp r3, #255 6250 0066 38D9 bls .L359 2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6251 .loc 1 2864 7 is_stmt 1 view .LVU1940 2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/ccRVAHyi.s page 261 6252 .loc 1 2864 22 is_stmt 0 view .LVU1941 6253 0068 FF23 movs r3, #255 6254 006a 2385 strh r3, [r4, #40] 2865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6255 .loc 1 2865 7 is_stmt 1 view .LVU1942 6256 .LVL426: 2865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6257 .loc 1 2865 16 is_stmt 0 view .LVU1943 6258 006c 8023 movs r3, #128 6259 006e 5B04 lsls r3, r3, #17 6260 0070 9946 mov r9, r3 6261 .LVL427: 6262 .L360: 2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 6263 .loc 1 2874 5 is_stmt 1 view .LVU1944 2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 6264 .loc 1 2874 9 is_stmt 0 view .LVU1945 6265 0072 0190 str r0, [sp, #4] 6266 0074 1923 movs r3, #25 6267 0076 0093 str r3, [sp] 6268 0078 059B ldr r3, [sp, #20] 6269 007a 049A ldr r2, [sp, #16] 6270 007c 0399 ldr r1, [sp, #12] 6271 007e 2000 movs r0, r4 6272 .LVL428: 2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 6273 .loc 1 2874 9 view .LVU1946 6274 0080 FFF7FEFF bl I2C_RequestMemoryWrite 6275 .LVL429: 2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** != HAL_OK) 6276 .loc 1 2874 8 view .LVU1947 6277 0084 0028 cmp r0, #0 6278 0086 2ED1 bne .L369 2883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6279 .loc 1 2883 5 is_stmt 1 view .LVU1948 2883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6280 .loc 1 2883 13 is_stmt 0 view .LVU1949 6281 0088 A36B ldr r3, [r4, #56] 2883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6282 .loc 1 2883 8 view .LVU1950 6283 008a 002B cmp r3, #0 6284 008c 30D0 beq .L362 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6285 .loc 1 2886 7 is_stmt 1 view .LVU1951 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6286 .loc 1 2886 38 is_stmt 0 view .LVU1952 6287 008e 344A ldr r2, .L371+8 6288 0090 9A62 str r2, [r3, #40] 2889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6289 .loc 1 2889 7 is_stmt 1 view .LVU1953 2889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6290 .loc 1 2889 11 is_stmt 0 view .LVU1954 6291 0092 A36B ldr r3, [r4, #56] 2889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6292 .loc 1 2889 39 view .LVU1955 6293 0094 334A ldr r2, .L371+12 6294 0096 1A63 str r2, [r3, #48] ARM GAS /tmp/ccRVAHyi.s page 262 2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6295 .loc 1 2892 7 is_stmt 1 view .LVU1956 2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6296 .loc 1 2892 11 is_stmt 0 view .LVU1957 6297 0098 A26B ldr r2, [r4, #56] 2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6298 .loc 1 2892 42 view .LVU1958 6299 009a 0023 movs r3, #0 6300 009c D362 str r3, [r2, #44] 2893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6301 .loc 1 2893 7 is_stmt 1 view .LVU1959 2893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6302 .loc 1 2893 11 is_stmt 0 view .LVU1960 6303 009e A26B ldr r2, [r4, #56] 2893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6304 .loc 1 2893 39 view .LVU1961 6305 00a0 5363 str r3, [r2, #52] 2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6306 .loc 1 2896 7 is_stmt 1 view .LVU1962 2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6307 .loc 1 2896 81 is_stmt 0 view .LVU1963 6308 00a2 2268 ldr r2, [r4] 6309 00a4 2832 adds r2, r2, #40 2897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6310 .loc 1 2897 44 view .LVU1964 6311 00a6 238D ldrh r3, [r4, #40] 2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6312 .loc 1 2896 23 view .LVU1965 6313 00a8 3100 movs r1, r6 6314 00aa A06B ldr r0, [r4, #56] 6315 00ac FFF7FEFF bl HAL_DMA_Start_IT 6316 .LVL430: 6317 00b0 061E subs r6, r0, #0 6318 .LVL431: 2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6319 .loc 1 2914 5 is_stmt 1 view .LVU1966 2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6320 .loc 1 2914 8 is_stmt 0 view .LVU1967 6321 00b2 2BD0 beq .L370 2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6322 .loc 1 2938 7 is_stmt 1 view .LVU1968 2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6323 .loc 1 2938 23 is_stmt 0 view .LVU1969 6324 00b4 4123 movs r3, #65 6325 00b6 2022 movs r2, #32 6326 00b8 E254 strb r2, [r4, r3] 2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6327 .loc 1 2939 7 is_stmt 1 view .LVU1970 2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6328 .loc 1 2939 23 is_stmt 0 view .LVU1971 6329 00ba 0022 movs r2, #0 6330 00bc 0133 adds r3, r3, #1 6331 00be E254 strb r2, [r4, r3] 2942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6332 .loc 1 2942 7 is_stmt 1 view .LVU1972 2942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6333 .loc 1 2942 23 is_stmt 0 view .LVU1973 ARM GAS /tmp/ccRVAHyi.s page 263 6334 00c0 636C ldr r3, [r4, #68] 6335 00c2 1021 movs r1, #16 6336 00c4 0B43 orrs r3, r1 6337 00c6 6364 str r3, [r4, #68] 2945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6338 .loc 1 2945 7 is_stmt 1 view .LVU1974 2945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6339 .loc 1 2945 7 view .LVU1975 6340 00c8 4023 movs r3, #64 6341 00ca E254 strb r2, [r4, r3] 2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6342 .loc 1 2947 7 view .LVU1976 2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6343 .loc 1 2947 14 is_stmt 0 view .LVU1977 6344 00cc 0126 movs r6, #1 6345 00ce 39E0 b .L356 6346 .LVL432: 6347 .L357: 2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6348 .loc 1 2837 7 is_stmt 1 view .LVU1978 2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6349 .loc 1 2837 23 is_stmt 0 view .LVU1979 6350 00d0 8023 movs r3, #128 6351 00d2 9B00 lsls r3, r3, #2 6352 00d4 6364 str r3, [r4, #68] 2838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6353 .loc 1 2838 7 is_stmt 1 view .LVU1980 2838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6354 .loc 1 2838 15 is_stmt 0 view .LVU1981 6355 00d6 0126 movs r6, #1 6356 00d8 34E0 b .L356 6357 .LVL433: 6358 .L359: 2869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6359 .loc 1 2869 7 is_stmt 1 view .LVU1982 2869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6360 .loc 1 2869 28 is_stmt 0 view .LVU1983 6361 00da 638D ldrh r3, [r4, #42] 2869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6362 .loc 1 2869 22 view .LVU1984 6363 00dc 2385 strh r3, [r4, #40] 2870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6364 .loc 1 2870 7 is_stmt 1 view .LVU1985 6365 .LVL434: 2870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6366 .loc 1 2870 16 is_stmt 0 view .LVU1986 6367 00de 8023 movs r3, #128 6368 00e0 9B04 lsls r3, r3, #18 6369 00e2 9946 mov r9, r3 6370 00e4 C5E7 b .L360 6371 .LVL435: 6372 .L369: 2878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6373 .loc 1 2878 7 is_stmt 1 view .LVU1987 2878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6374 .loc 1 2878 7 view .LVU1988 6375 00e6 4023 movs r3, #64 ARM GAS /tmp/ccRVAHyi.s page 264 6376 00e8 0022 movs r2, #0 6377 00ea E254 strb r2, [r4, r3] 2879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6378 .loc 1 2879 7 view .LVU1989 2879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6379 .loc 1 2879 14 is_stmt 0 view .LVU1990 6380 00ec 0126 movs r6, #1 6381 00ee 29E0 b .L356 6382 .L362: 2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6383 .loc 1 2902 7 is_stmt 1 view .LVU1991 2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6384 .loc 1 2902 23 is_stmt 0 view .LVU1992 6385 00f0 4123 movs r3, #65 6386 00f2 2022 movs r2, #32 6387 00f4 E254 strb r2, [r4, r3] 2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6388 .loc 1 2903 7 is_stmt 1 view .LVU1993 2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6389 .loc 1 2903 23 is_stmt 0 view .LVU1994 6390 00f6 0022 movs r2, #0 6391 00f8 0133 adds r3, r3, #1 6392 00fa E254 strb r2, [r4, r3] 2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6393 .loc 1 2906 7 is_stmt 1 view .LVU1995 2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6394 .loc 1 2906 23 is_stmt 0 view .LVU1996 6395 00fc 636C ldr r3, [r4, #68] 6396 00fe 8021 movs r1, #128 6397 0100 0B43 orrs r3, r1 6398 0102 6364 str r3, [r4, #68] 2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6399 .loc 1 2909 7 is_stmt 1 view .LVU1997 2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6400 .loc 1 2909 7 view .LVU1998 6401 0104 4023 movs r3, #64 6402 0106 E254 strb r2, [r4, r3] 2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6403 .loc 1 2911 7 view .LVU1999 2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6404 .loc 1 2911 14 is_stmt 0 view .LVU2000 6405 0108 0126 movs r6, #1 6406 010a 1BE0 b .L356 6407 .LVL436: 6408 .L370: 2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6409 .loc 1 2918 7 is_stmt 1 view .LVU2001 2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6410 .loc 1 2918 57 is_stmt 0 view .LVU2002 6411 010c 228D ldrh r2, [r4, #40] 2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6412 .loc 1 2918 7 view .LVU2003 6413 010e D2B2 uxtb r2, r2 6414 0110 0027 movs r7, #0 6415 0112 0097 str r7, [sp] 6416 0114 4B46 mov r3, r9 6417 0116 0399 ldr r1, [sp, #12] ARM GAS /tmp/ccRVAHyi.s page 265 6418 0118 2000 movs r0, r4 6419 .LVL437: 2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6420 .loc 1 2918 7 view .LVU2004 6421 011a FFF7FEFF bl I2C_TransferConfig 6422 .LVL438: 2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6423 .loc 1 2921 7 is_stmt 1 view .LVU2005 2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6424 .loc 1 2921 23 is_stmt 0 view .LVU2006 6425 011e 638D ldrh r3, [r4, #42] 2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6426 .loc 1 2921 30 view .LVU2007 6427 0120 228D ldrh r2, [r4, #40] 2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6428 .loc 1 2921 23 view .LVU2008 6429 0122 9B1A subs r3, r3, r2 6430 0124 9BB2 uxth r3, r3 6431 0126 6385 strh r3, [r4, #42] 2924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6432 .loc 1 2924 7 is_stmt 1 view .LVU2009 2924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6433 .loc 1 2924 7 view .LVU2010 6434 0128 4023 movs r3, #64 6435 012a E754 strb r7, [r4, r3] 2930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6436 .loc 1 2930 7 view .LVU2011 6437 012c 1021 movs r1, #16 6438 012e 2000 movs r0, r4 6439 0130 FFF7FEFF bl I2C_Enable_IRQ 6440 .LVL439: 2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6441 .loc 1 2933 7 view .LVU2012 2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6442 .loc 1 2933 11 is_stmt 0 view .LVU2013 6443 0134 2268 ldr r2, [r4] 2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6444 .loc 1 2933 27 view .LVU2014 6445 0136 1168 ldr r1, [r2] 6446 0138 8023 movs r3, #128 6447 013a DB01 lsls r3, r3, #7 6448 013c 0B43 orrs r3, r1 6449 013e 1360 str r3, [r2] 2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6450 .loc 1 2950 5 is_stmt 1 view .LVU2015 2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6451 .loc 1 2950 12 is_stmt 0 view .LVU2016 6452 0140 00E0 b .L356 6453 .LVL440: 6454 .L365: 2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6455 .loc 1 2954 12 view .LVU2017 6456 0142 0226 movs r6, #2 6457 .LVL441: 6458 .L356: 2956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6459 .loc 1 2956 1 view .LVU2018 ARM GAS /tmp/ccRVAHyi.s page 266 6460 0144 3000 movs r0, r6 6461 0146 06B0 add sp, sp, #24 6462 @ sp needed 6463 .LVL442: 2956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6464 .loc 1 2956 1 view .LVU2019 6465 0148 04BC pop {r2} 6466 014a 9146 mov r9, r2 6467 014c F0BD pop {r4, r5, r6, r7, pc} 6468 .LVL443: 6469 .L366: 2843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6470 .loc 1 2843 14 view .LVU2020 6471 014e 0226 movs r6, #2 6472 0150 F8E7 b .L356 6473 .L367: 2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6474 .loc 1 2847 5 view .LVU2021 6475 0152 0226 movs r6, #2 6476 0154 F6E7 b .L356 6477 .L372: 6478 0156 C046 .align 2 6479 .L371: 6480 0158 0000FFFF .word -65536 6481 015c 00000000 .word I2C_Master_ISR_DMA 6482 0160 00000000 .word I2C_DMAMasterTransmitCplt 6483 0164 00000000 .word I2C_DMAError 6484 .cfi_endproc 6485 .LFE60: 6487 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6488 .align 1 6489 .global HAL_I2C_Mem_Read_DMA 6490 .syntax unified 6491 .code 16 6492 .thumb_func 6493 .fpu softvfp 6495 HAL_I2C_Mem_Read_DMA: 6496 .LVL444: 6497 .LFB61: 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6498 .loc 1 2972 1 is_stmt 1 view -0 6499 .cfi_startproc 6500 @ args = 8, pretend = 0, frame = 16 6501 @ frame_needed = 0, uses_anonymous_args = 0 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6502 .loc 1 2972 1 is_stmt 0 view .LVU2023 6503 0000 F0B5 push {r4, r5, r6, r7, lr} 6504 .LCFI46: 6505 .cfi_def_cfa_offset 20 6506 .cfi_offset 4, -20 6507 .cfi_offset 5, -16 6508 .cfi_offset 6, -12 6509 .cfi_offset 7, -8 6510 .cfi_offset 14, -4 6511 0002 CE46 mov lr, r9 6512 0004 00B5 push {lr} 6513 .LCFI47: ARM GAS /tmp/ccRVAHyi.s page 267 6514 .cfi_def_cfa_offset 24 6515 .cfi_offset 9, -24 6516 0006 86B0 sub sp, sp, #24 6517 .LCFI48: 6518 .cfi_def_cfa_offset 48 6519 0008 0400 movs r4, r0 6520 000a 0391 str r1, [sp, #12] 6521 000c 0492 str r2, [sp, #16] 6522 000e 0593 str r3, [sp, #20] 6523 0010 0CAB add r3, sp, #48 6524 .LVL445: 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6525 .loc 1 2972 1 view .LVU2024 6526 0012 40CB ldmia r3!, {r6} 6527 .LVL446: 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6528 .loc 1 2972 1 view .LVU2025 6529 0014 1F88 ldrh r7, [r3] 2973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 6530 .loc 1 2973 3 is_stmt 1 view .LVU2026 2974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6531 .loc 1 2974 3 view .LVU2027 2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6532 .loc 1 2975 3 view .LVU2028 2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6533 .loc 1 2978 3 view .LVU2029 2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6534 .loc 1 2980 3 view .LVU2030 2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6535 .loc 1 2980 11 is_stmt 0 view .LVU2031 6536 0016 4123 movs r3, #65 6537 .LVL447: 2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6538 .loc 1 2980 11 view .LVU2032 6539 0018 C35C ldrb r3, [r0, r3] 2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6540 .loc 1 2980 6 view .LVU2033 6541 001a 202B cmp r3, #32 6542 001c 00D0 beq .LCB6183 6543 001e 91E0 b .L383 @long jump 6544 .LCB6183: 2982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6545 .loc 1 2982 5 is_stmt 1 view .LVU2034 2982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6546 .loc 1 2982 8 is_stmt 0 view .LVU2035 6547 0020 002E cmp r6, #0 6548 0022 55D0 beq .L375 2982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6549 .loc 1 2982 25 discriminator 1 view .LVU2036 6550 0024 002F cmp r7, #0 6551 0026 53D0 beq .L375 2988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6552 .loc 1 2988 5 is_stmt 1 view .LVU2037 2988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6553 .loc 1 2988 9 is_stmt 0 view .LVU2038 6554 0028 0368 ldr r3, [r0] 6555 002a 9B69 ldr r3, [r3, #24] ARM GAS /tmp/ccRVAHyi.s page 268 2988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6556 .loc 1 2988 8 view .LVU2039 6557 002c 1B04 lsls r3, r3, #16 6558 002e 00D5 bpl .LCB6195 6559 0030 8EE0 b .L384 @long jump 6560 .LCB6195: 2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6561 .loc 1 2994 5 is_stmt 1 view .LVU2040 2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6562 .loc 1 2994 5 view .LVU2041 6563 0032 4023 movs r3, #64 6564 0034 C35C ldrb r3, [r0, r3] 6565 0036 012B cmp r3, #1 6566 0038 00D1 bne .LCB6201 6567 003a 8BE0 b .L385 @long jump 6568 .LCB6201: 2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6569 .loc 1 2994 5 discriminator 2 view .LVU2042 6570 003c 4025 movs r5, #64 6571 003e 0123 movs r3, #1 6572 0040 4355 strb r3, [r0, r5] 2997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6573 .loc 1 2997 5 discriminator 2 view .LVU2043 2997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6574 .loc 1 2997 17 is_stmt 0 discriminator 2 view .LVU2044 6575 0042 FFF7FEFF bl HAL_GetTick 6576 .LVL448: 2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6577 .loc 1 2999 5 is_stmt 1 discriminator 2 view .LVU2045 2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6578 .loc 1 2999 23 is_stmt 0 discriminator 2 view .LVU2046 6579 0046 4123 movs r3, #65 6580 0048 2222 movs r2, #34 6581 004a E254 strb r2, [r4, r3] 3000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6582 .loc 1 3000 5 is_stmt 1 discriminator 2 view .LVU2047 3000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6583 .loc 1 3000 23 is_stmt 0 discriminator 2 view .LVU2048 6584 004c 0133 adds r3, r3, #1 6585 004e E554 strb r5, [r4, r3] 3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6586 .loc 1 3001 5 is_stmt 1 discriminator 2 view .LVU2049 3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6587 .loc 1 3001 23 is_stmt 0 discriminator 2 view .LVU2050 6588 0050 0023 movs r3, #0 6589 0052 6364 str r3, [r4, #68] 3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6590 .loc 1 3004 5 is_stmt 1 discriminator 2 view .LVU2051 3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6591 .loc 1 3004 23 is_stmt 0 discriminator 2 view .LVU2052 6592 0054 6662 str r6, [r4, #36] 3005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6593 .loc 1 3005 5 is_stmt 1 discriminator 2 view .LVU2053 3005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6594 .loc 1 3005 23 is_stmt 0 discriminator 2 view .LVU2054 6595 0056 6785 strh r7, [r4, #42] 3006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; ARM GAS /tmp/ccRVAHyi.s page 269 6596 .loc 1 3006 5 is_stmt 1 discriminator 2 view .LVU2055 3006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6597 .loc 1 3006 23 is_stmt 0 discriminator 2 view .LVU2056 6598 0058 3F4B ldr r3, .L389 6599 005a E362 str r3, [r4, #44] 3007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6600 .loc 1 3007 5 is_stmt 1 discriminator 2 view .LVU2057 3007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6601 .loc 1 3007 23 is_stmt 0 discriminator 2 view .LVU2058 6602 005c 3F4B ldr r3, .L389+4 6603 005e 6363 str r3, [r4, #52] 3009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6604 .loc 1 3009 5 is_stmt 1 discriminator 2 view .LVU2059 3009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6605 .loc 1 3009 13 is_stmt 0 discriminator 2 view .LVU2060 6606 0060 638D ldrh r3, [r4, #42] 6607 0062 9BB2 uxth r3, r3 3009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6608 .loc 1 3009 8 discriminator 2 view .LVU2061 6609 0064 FF2B cmp r3, #255 6610 0066 38D9 bls .L377 3011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6611 .loc 1 3011 7 is_stmt 1 view .LVU2062 3011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6612 .loc 1 3011 22 is_stmt 0 view .LVU2063 6613 0068 FF23 movs r3, #255 6614 006a 2385 strh r3, [r4, #40] 3012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6615 .loc 1 3012 7 is_stmt 1 view .LVU2064 6616 .LVL449: 3012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6617 .loc 1 3012 16 is_stmt 0 view .LVU2065 6618 006c 8023 movs r3, #128 6619 006e 5B04 lsls r3, r3, #17 6620 0070 9946 mov r9, r3 6621 .LVL450: 6622 .L378: 3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6623 .loc 1 3021 5 is_stmt 1 view .LVU2066 3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6624 .loc 1 3021 9 is_stmt 0 view .LVU2067 6625 0072 0190 str r0, [sp, #4] 6626 0074 1923 movs r3, #25 6627 0076 0093 str r3, [sp] 6628 0078 059B ldr r3, [sp, #20] 6629 007a 049A ldr r2, [sp, #16] 6630 007c 0399 ldr r1, [sp, #12] 6631 007e 2000 movs r0, r4 6632 .LVL451: 3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6633 .loc 1 3021 9 view .LVU2068 6634 0080 FFF7FEFF bl I2C_RequestMemoryRead 6635 .LVL452: 3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6636 .loc 1 3021 8 view .LVU2069 6637 0084 0028 cmp r0, #0 6638 0086 2ED1 bne .L387 ARM GAS /tmp/ccRVAHyi.s page 270 3028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6639 .loc 1 3028 5 is_stmt 1 view .LVU2070 3028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6640 .loc 1 3028 13 is_stmt 0 view .LVU2071 6641 0088 E36B ldr r3, [r4, #60] 3028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6642 .loc 1 3028 8 view .LVU2072 6643 008a 002B cmp r3, #0 6644 008c 30D0 beq .L380 3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6645 .loc 1 3031 7 is_stmt 1 view .LVU2073 3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6646 .loc 1 3031 38 is_stmt 0 view .LVU2074 6647 008e 344A ldr r2, .L389+8 6648 0090 9A62 str r2, [r3, #40] 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6649 .loc 1 3034 7 is_stmt 1 view .LVU2075 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6650 .loc 1 3034 11 is_stmt 0 view .LVU2076 6651 0092 E36B ldr r3, [r4, #60] 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6652 .loc 1 3034 39 view .LVU2077 6653 0094 334A ldr r2, .L389+12 6654 0096 1A63 str r2, [r3, #48] 3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6655 .loc 1 3037 7 is_stmt 1 view .LVU2078 3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6656 .loc 1 3037 11 is_stmt 0 view .LVU2079 6657 0098 E26B ldr r2, [r4, #60] 3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6658 .loc 1 3037 42 view .LVU2080 6659 009a 0023 movs r3, #0 6660 009c D362 str r3, [r2, #44] 3038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6661 .loc 1 3038 7 is_stmt 1 view .LVU2081 3038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6662 .loc 1 3038 11 is_stmt 0 view .LVU2082 6663 009e E26B ldr r2, [r4, #60] 3038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6664 .loc 1 3038 39 view .LVU2083 6665 00a0 5363 str r3, [r2, #52] 3041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6666 .loc 1 3041 7 is_stmt 1 view .LVU2084 3041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6667 .loc 1 3041 64 is_stmt 0 view .LVU2085 6668 00a2 2168 ldr r1, [r4] 6669 00a4 2431 adds r1, r1, #36 3042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6670 .loc 1 3042 44 view .LVU2086 6671 00a6 238D ldrh r3, [r4, #40] 3041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6672 .loc 1 3041 23 view .LVU2087 6673 00a8 3200 movs r2, r6 6674 00aa E06B ldr r0, [r4, #60] 6675 00ac FFF7FEFF bl HAL_DMA_Start_IT 6676 .LVL453: 6677 00b0 061E subs r6, r0, #0 ARM GAS /tmp/ccRVAHyi.s page 271 6678 .LVL454: 3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6679 .loc 1 3059 5 is_stmt 1 view .LVU2088 3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6680 .loc 1 3059 8 is_stmt 0 view .LVU2089 6681 00b2 2BD0 beq .L388 3082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6682 .loc 1 3082 7 is_stmt 1 view .LVU2090 3082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6683 .loc 1 3082 23 is_stmt 0 view .LVU2091 6684 00b4 4123 movs r3, #65 6685 00b6 2022 movs r2, #32 6686 00b8 E254 strb r2, [r4, r3] 3083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6687 .loc 1 3083 7 is_stmt 1 view .LVU2092 3083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6688 .loc 1 3083 23 is_stmt 0 view .LVU2093 6689 00ba 0022 movs r2, #0 6690 00bc 0133 adds r3, r3, #1 6691 00be E254 strb r2, [r4, r3] 3086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6692 .loc 1 3086 7 is_stmt 1 view .LVU2094 3086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6693 .loc 1 3086 23 is_stmt 0 view .LVU2095 6694 00c0 636C ldr r3, [r4, #68] 6695 00c2 1021 movs r1, #16 6696 00c4 0B43 orrs r3, r1 6697 00c6 6364 str r3, [r4, #68] 3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6698 .loc 1 3089 7 is_stmt 1 view .LVU2096 3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6699 .loc 1 3089 7 view .LVU2097 6700 00c8 4023 movs r3, #64 6701 00ca E254 strb r2, [r4, r3] 3091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6702 .loc 1 3091 7 view .LVU2098 3091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6703 .loc 1 3091 14 is_stmt 0 view .LVU2099 6704 00cc 0126 movs r6, #1 6705 00ce 3AE0 b .L374 6706 .LVL455: 6707 .L375: 2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6708 .loc 1 2984 7 is_stmt 1 view .LVU2100 2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6709 .loc 1 2984 23 is_stmt 0 view .LVU2101 6710 00d0 8023 movs r3, #128 6711 00d2 9B00 lsls r3, r3, #2 6712 00d4 6364 str r3, [r4, #68] 2985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6713 .loc 1 2985 7 is_stmt 1 view .LVU2102 2985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6714 .loc 1 2985 15 is_stmt 0 view .LVU2103 6715 00d6 0126 movs r6, #1 6716 00d8 35E0 b .L374 6717 .LVL456: 6718 .L377: ARM GAS /tmp/ccRVAHyi.s page 272 3016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6719 .loc 1 3016 7 is_stmt 1 view .LVU2104 3016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6720 .loc 1 3016 28 is_stmt 0 view .LVU2105 6721 00da 638D ldrh r3, [r4, #42] 3016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6722 .loc 1 3016 22 view .LVU2106 6723 00dc 2385 strh r3, [r4, #40] 3017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6724 .loc 1 3017 7 is_stmt 1 view .LVU2107 6725 .LVL457: 3017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6726 .loc 1 3017 16 is_stmt 0 view .LVU2108 6727 00de 8023 movs r3, #128 6728 00e0 9B04 lsls r3, r3, #18 6729 00e2 9946 mov r9, r3 6730 00e4 C5E7 b .L378 6731 .LVL458: 6732 .L387: 3024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6733 .loc 1 3024 7 is_stmt 1 view .LVU2109 3024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6734 .loc 1 3024 7 view .LVU2110 6735 00e6 4023 movs r3, #64 6736 00e8 0022 movs r2, #0 6737 00ea E254 strb r2, [r4, r3] 3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6738 .loc 1 3025 7 view .LVU2111 3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6739 .loc 1 3025 14 is_stmt 0 view .LVU2112 6740 00ec 0126 movs r6, #1 6741 00ee 2AE0 b .L374 6742 .L380: 3047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6743 .loc 1 3047 7 is_stmt 1 view .LVU2113 3047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6744 .loc 1 3047 23 is_stmt 0 view .LVU2114 6745 00f0 4123 movs r3, #65 6746 00f2 2022 movs r2, #32 6747 00f4 E254 strb r2, [r4, r3] 3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6748 .loc 1 3048 7 is_stmt 1 view .LVU2115 3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6749 .loc 1 3048 23 is_stmt 0 view .LVU2116 6750 00f6 0022 movs r2, #0 6751 00f8 0133 adds r3, r3, #1 6752 00fa E254 strb r2, [r4, r3] 3051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6753 .loc 1 3051 7 is_stmt 1 view .LVU2117 3051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6754 .loc 1 3051 23 is_stmt 0 view .LVU2118 6755 00fc 636C ldr r3, [r4, #68] 6756 00fe 8021 movs r1, #128 6757 0100 0B43 orrs r3, r1 6758 0102 6364 str r3, [r4, #68] 3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6759 .loc 1 3054 7 is_stmt 1 view .LVU2119 ARM GAS /tmp/ccRVAHyi.s page 273 3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6760 .loc 1 3054 7 view .LVU2120 6761 0104 4023 movs r3, #64 6762 0106 E254 strb r2, [r4, r3] 3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6763 .loc 1 3056 7 view .LVU2121 3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6764 .loc 1 3056 14 is_stmt 0 view .LVU2122 6765 0108 0126 movs r6, #1 6766 010a 1CE0 b .L374 6767 .LVL459: 6768 .L388: 3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6769 .loc 1 3062 7 is_stmt 1 view .LVU2123 3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6770 .loc 1 3062 57 is_stmt 0 view .LVU2124 6771 010c 228D ldrh r2, [r4, #40] 3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6772 .loc 1 3062 7 view .LVU2125 6773 010e D2B2 uxtb r2, r2 6774 0110 154B ldr r3, .L389+16 6775 0112 0093 str r3, [sp] 6776 0114 4B46 mov r3, r9 6777 0116 0399 ldr r1, [sp, #12] 6778 0118 2000 movs r0, r4 6779 .LVL460: 3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6780 .loc 1 3062 7 view .LVU2126 6781 011a FFF7FEFF bl I2C_TransferConfig 6782 .LVL461: 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6783 .loc 1 3065 7 is_stmt 1 view .LVU2127 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6784 .loc 1 3065 23 is_stmt 0 view .LVU2128 6785 011e 638D ldrh r3, [r4, #42] 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6786 .loc 1 3065 30 view .LVU2129 6787 0120 228D ldrh r2, [r4, #40] 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6788 .loc 1 3065 23 view .LVU2130 6789 0122 9B1A subs r3, r3, r2 6790 0124 9BB2 uxth r3, r3 6791 0126 6385 strh r3, [r4, #42] 3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6792 .loc 1 3068 7 is_stmt 1 view .LVU2131 3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6793 .loc 1 3068 7 view .LVU2132 6794 0128 4023 movs r3, #64 6795 012a 0022 movs r2, #0 6796 012c E254 strb r2, [r4, r3] 3074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6797 .loc 1 3074 7 view .LVU2133 6798 012e 1021 movs r1, #16 6799 0130 2000 movs r0, r4 6800 0132 FFF7FEFF bl I2C_Enable_IRQ 6801 .LVL462: 3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 274 6802 .loc 1 3077 7 view .LVU2134 3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6803 .loc 1 3077 11 is_stmt 0 view .LVU2135 6804 0136 2268 ldr r2, [r4] 3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6805 .loc 1 3077 27 view .LVU2136 6806 0138 1168 ldr r1, [r2] 6807 013a 8023 movs r3, #128 6808 013c 1B02 lsls r3, r3, #8 6809 013e 0B43 orrs r3, r1 6810 0140 1360 str r3, [r2] 3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6811 .loc 1 3094 5 is_stmt 1 view .LVU2137 3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6812 .loc 1 3094 12 is_stmt 0 view .LVU2138 6813 0142 00E0 b .L374 6814 .LVL463: 6815 .L383: 3098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6816 .loc 1 3098 12 view .LVU2139 6817 0144 0226 movs r6, #2 6818 .LVL464: 6819 .L374: 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6820 .loc 1 3100 1 view .LVU2140 6821 0146 3000 movs r0, r6 6822 0148 06B0 add sp, sp, #24 6823 @ sp needed 6824 .LVL465: 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6825 .loc 1 3100 1 view .LVU2141 6826 014a 04BC pop {r2} 6827 014c 9146 mov r9, r2 6828 014e F0BD pop {r4, r5, r6, r7, pc} 6829 .LVL466: 6830 .L384: 2990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6831 .loc 1 2990 14 view .LVU2142 6832 0150 0226 movs r6, #2 6833 0152 F8E7 b .L374 6834 .L385: 2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6835 .loc 1 2994 5 view .LVU2143 6836 0154 0226 movs r6, #2 6837 0156 F6E7 b .L374 6838 .L390: 6839 .align 2 6840 .L389: 6841 0158 0000FFFF .word -65536 6842 015c 00000000 .word I2C_Master_ISR_DMA 6843 0160 00000000 .word I2C_DMAMasterReceiveCplt 6844 0164 00000000 .word I2C_DMAError 6845 0168 00240080 .word -2147474432 6846 .cfi_endproc 6847 .LFE61: 6849 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6850 .align 1 ARM GAS /tmp/ccRVAHyi.s page 275 6851 .global HAL_I2C_IsDeviceReady 6852 .syntax unified 6853 .code 16 6854 .thumb_func 6855 .fpu softvfp 6857 HAL_I2C_IsDeviceReady: 6858 .LVL467: 6859 .LFB62: 3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6860 .loc 1 3115 1 is_stmt 1 view -0 6861 .cfi_startproc 6862 @ args = 0, pretend = 0, frame = 8 6863 @ frame_needed = 0, uses_anonymous_args = 0 3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 6864 .loc 1 3115 1 is_stmt 0 view .LVU2145 6865 0000 F0B5 push {r4, r5, r6, r7, lr} 6866 .LCFI49: 6867 .cfi_def_cfa_offset 20 6868 .cfi_offset 4, -20 6869 .cfi_offset 5, -16 6870 .cfi_offset 6, -12 6871 .cfi_offset 7, -8 6872 .cfi_offset 14, -4 6873 0002 C646 mov lr, r8 6874 0004 00B5 push {lr} 6875 .LCFI50: 6876 .cfi_def_cfa_offset 24 6877 .cfi_offset 8, -24 6878 0006 84B0 sub sp, sp, #16 6879 .LCFI51: 6880 .cfi_def_cfa_offset 40 6881 0008 0500 movs r5, r0 6882 000a 8846 mov r8, r1 6883 000c 1700 movs r7, r2 6884 000e 1C00 movs r4, r3 3116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6885 .loc 1 3116 3 is_stmt 1 view .LVU2146 3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6886 .loc 1 3118 3 view .LVU2147 3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6887 .loc 1 3118 17 is_stmt 0 view .LVU2148 6888 0010 0023 movs r3, #0 6889 .LVL468: 3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6890 .loc 1 3118 17 view .LVU2149 6891 0012 0393 str r3, [sp, #12] 3120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp2; 6892 .loc 1 3120 3 is_stmt 1 view .LVU2150 3121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6893 .loc 1 3121 3 view .LVU2151 3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6894 .loc 1 3123 3 view .LVU2152 3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6895 .loc 1 3123 11 is_stmt 0 view .LVU2153 6896 0014 4133 adds r3, r3, #65 6897 0016 C35C ldrb r3, [r0, r3] 3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 276 6898 .loc 1 3123 6 view .LVU2154 6899 0018 202B cmp r3, #32 6900 001a 00D0 beq .LCB6528 6901 001c A5E0 b .L402 @long jump 6902 .LCB6528: 3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6903 .loc 1 3125 5 is_stmt 1 view .LVU2155 3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6904 .loc 1 3125 9 is_stmt 0 view .LVU2156 6905 001e 0368 ldr r3, [r0] 6906 0020 9B69 ldr r3, [r3, #24] 3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6907 .loc 1 3125 8 view .LVU2157 6908 0022 1B04 lsls r3, r3, #16 6909 0024 00D5 bpl .LCB6535 6910 0026 A2E0 b .L403 @long jump 6911 .LCB6535: 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6912 .loc 1 3131 5 is_stmt 1 view .LVU2158 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6913 .loc 1 3131 5 view .LVU2159 6914 0028 4023 movs r3, #64 6915 002a C35C ldrb r3, [r0, r3] 6916 002c 012B cmp r3, #1 6917 002e 00D1 bne .LCB6541 6918 0030 9FE0 b .L404 @long jump 6919 .LCB6541: 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6920 .loc 1 3131 5 discriminator 2 view .LVU2160 6921 0032 4023 movs r3, #64 6922 0034 0122 movs r2, #1 6923 .LVL469: 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6924 .loc 1 3131 5 is_stmt 0 discriminator 2 view .LVU2161 6925 0036 C254 strb r2, [r0, r3] 3133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6926 .loc 1 3133 5 is_stmt 1 discriminator 2 view .LVU2162 3133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6927 .loc 1 3133 17 is_stmt 0 discriminator 2 view .LVU2163 6928 0038 0133 adds r3, r3, #1 6929 003a 2332 adds r2, r2, #35 6930 003c C254 strb r2, [r0, r3] 3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6931 .loc 1 3134 5 is_stmt 1 discriminator 2 view .LVU2164 3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6932 .loc 1 3134 21 is_stmt 0 discriminator 2 view .LVU2165 6933 003e 0023 movs r3, #0 6934 0040 4364 str r3, [r0, #68] 6935 .LVL470: 6936 .L401: 3136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6937 .loc 1 3136 5 is_stmt 1 view .LVU2166 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6938 .loc 1 3139 7 view .LVU2167 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6939 .loc 1 3139 29 is_stmt 0 view .LVU2168 6940 0042 EB68 ldr r3, [r5, #12] ARM GAS /tmp/ccRVAHyi.s page 277 6941 0044 012B cmp r3, #1 6942 0046 18D0 beq .L408 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6943 .loc 1 3139 29 discriminator 2 view .LVU2169 6944 0048 4346 mov r3, r8 6945 004a 9A05 lsls r2, r3, #22 6946 004c 920D lsrs r2, r2, #22 6947 004e A023 movs r3, #160 6948 0050 9B01 lsls r3, r3, #6 6949 0052 1343 orrs r3, r2 6950 .L394: 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6951 .loc 1 3139 11 discriminator 4 view .LVU2170 6952 0054 2A68 ldr r2, [r5] 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6953 .loc 1 3139 27 discriminator 4 view .LVU2171 6954 0056 5360 str r3, [r2, #4] 3143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6955 .loc 1 3143 7 is_stmt 1 discriminator 4 view .LVU2172 3143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6956 .loc 1 3143 19 is_stmt 0 discriminator 4 view .LVU2173 6957 0058 FFF7FEFF bl HAL_GetTick 6958 .LVL471: 6959 005c 0600 movs r6, r0 6960 .LVL472: 3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6961 .loc 1 3145 7 is_stmt 1 discriminator 4 view .LVU2174 3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6962 .loc 1 3145 14 is_stmt 0 discriminator 4 view .LVU2175 6963 005e 2A68 ldr r2, [r5] 6964 0060 9169 ldr r1, [r2, #24] 6965 0062 2023 movs r3, #32 6966 0064 0B40 ands r3, r1 6967 0066 591E subs r1, r3, #1 6968 0068 8B41 sbcs r3, r3, r1 6969 006a D9B2 uxtb r1, r3 6970 .LVL473: 3146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6971 .loc 1 3146 7 is_stmt 1 discriminator 4 view .LVU2176 3146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6972 .loc 1 3146 14 is_stmt 0 discriminator 4 view .LVU2177 6973 006c 9369 ldr r3, [r2, #24] 6974 006e 1022 movs r2, #16 6975 0070 1A40 ands r2, r3 6976 0072 531E subs r3, r2, #1 6977 0074 9A41 sbcs r2, r2, r3 6978 0076 D3B2 uxtb r3, r2 6979 .LVL474: 3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6980 .loc 1 3148 7 is_stmt 1 discriminator 4 view .LVU2178 3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6981 .loc 1 3148 13 is_stmt 0 discriminator 4 view .LVU2179 6982 0078 12E0 b .L395 6983 .LVL475: 6984 .L408: 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6985 .loc 1 3139 29 discriminator 1 view .LVU2180 ARM GAS /tmp/ccRVAHyi.s page 278 6986 007a 4346 mov r3, r8 6987 007c 9A05 lsls r2, r3, #22 6988 007e 920D lsrs r2, r2, #22 6989 0080 404B ldr r3, .L412 6990 0082 1343 orrs r3, r2 6991 0084 E6E7 b .L394 6992 .LVL476: 6993 .L396: 3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6994 .loc 1 3167 9 is_stmt 1 view .LVU2181 3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6995 .loc 1 3167 16 is_stmt 0 view .LVU2182 6996 0086 2A68 ldr r2, [r5] 6997 0088 9169 ldr r1, [r2, #24] 6998 008a 2023 movs r3, #32 6999 008c 0B40 ands r3, r1 7000 008e 591E subs r1, r3, #1 7001 0090 8B41 sbcs r3, r3, r1 7002 0092 D9B2 uxtb r1, r3 7003 .LVL477: 3168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7004 .loc 1 3168 9 is_stmt 1 view .LVU2183 3168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7005 .loc 1 3168 16 is_stmt 0 view .LVU2184 7006 0094 9269 ldr r2, [r2, #24] 7007 0096 1023 movs r3, #16 7008 0098 1340 ands r3, r2 7009 009a 5A1E subs r2, r3, #1 7010 009c 9341 sbcs r3, r3, r2 7011 009e DBB2 uxtb r3, r3 7012 .LVL478: 7013 .L395: 3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7014 .loc 1 3148 30 view .LVU2185 7015 00a0 0B43 orrs r3, r1 7016 .LVL479: 3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7017 .loc 1 3148 13 view .LVU2186 7018 00a2 16D1 bne .L409 3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7019 .loc 1 3150 9 is_stmt 1 view .LVU2187 3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7020 .loc 1 3150 12 is_stmt 0 view .LVU2188 7021 00a4 631C adds r3, r4, #1 7022 00a6 EED0 beq .L396 3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7023 .loc 1 3152 11 is_stmt 1 view .LVU2189 3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7024 .loc 1 3152 17 is_stmt 0 view .LVU2190 7025 00a8 FFF7FEFF bl HAL_GetTick 7026 .LVL480: 3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7027 .loc 1 3152 31 view .LVU2191 7028 00ac 801B subs r0, r0, r6 3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7029 .loc 1 3152 14 view .LVU2192 7030 00ae A042 cmp r0, r4 ARM GAS /tmp/ccRVAHyi.s page 279 7031 00b0 01D8 bhi .L397 3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7032 .loc 1 3152 55 discriminator 1 view .LVU2193 7033 00b2 002C cmp r4, #0 7034 00b4 E7D1 bne .L396 7035 .L397: 3155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7036 .loc 1 3155 13 is_stmt 1 view .LVU2194 3155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7037 .loc 1 3155 25 is_stmt 0 view .LVU2195 7038 00b6 2022 movs r2, #32 7039 00b8 4123 movs r3, #65 7040 00ba EA54 strb r2, [r5, r3] 3158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7041 .loc 1 3158 13 is_stmt 1 view .LVU2196 3158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7042 .loc 1 3158 29 is_stmt 0 view .LVU2197 7043 00bc 6B6C ldr r3, [r5, #68] 7044 00be 1343 orrs r3, r2 7045 00c0 6B64 str r3, [r5, #68] 3161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7046 .loc 1 3161 13 is_stmt 1 view .LVU2198 3161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7047 .loc 1 3161 13 view .LVU2199 7048 00c2 4023 movs r3, #64 7049 00c4 0022 movs r2, #0 7050 00c6 EA54 strb r2, [r5, r3] 3163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7051 .loc 1 3163 13 view .LVU2200 3163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7052 .loc 1 3163 20 is_stmt 0 view .LVU2201 7053 00c8 0120 movs r0, #1 7054 .LVL481: 7055 .L392: 3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7056 .loc 1 3241 1 view .LVU2202 7057 00ca 04B0 add sp, sp, #16 7058 @ sp needed 7059 .LVL482: 7060 .LVL483: 7061 .LVL484: 3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7062 .loc 1 3241 1 view .LVU2203 7063 00cc 04BC pop {r2} 7064 00ce 9046 mov r8, r2 7065 00d0 F0BD pop {r4, r5, r6, r7, pc} 7066 .LVL485: 7067 .L409: 3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7068 .loc 1 3172 7 is_stmt 1 view .LVU2204 3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7069 .loc 1 3172 11 is_stmt 0 view .LVU2205 7070 00d2 2B68 ldr r3, [r5] 7071 00d4 9B69 ldr r3, [r3, #24] 3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7072 .loc 1 3172 10 view .LVU2206 7073 00d6 DB06 lsls r3, r3, #27 ARM GAS /tmp/ccRVAHyi.s page 280 7074 00d8 22D5 bpl .L410 3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7075 .loc 1 3194 9 is_stmt 1 view .LVU2207 3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7076 .loc 1 3194 13 is_stmt 0 view .LVU2208 7077 00da 0096 str r6, [sp] 7078 00dc 2300 movs r3, r4 7079 00de 0022 movs r2, #0 7080 00e0 2021 movs r1, #32 7081 .LVL486: 3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7082 .loc 1 3194 13 view .LVU2209 7083 00e2 2800 movs r0, r5 7084 00e4 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7085 .LVL487: 3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7086 .loc 1 3194 12 view .LVU2210 7087 00e8 0028 cmp r0, #0 7088 00ea 46D1 bne .L406 3200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7089 .loc 1 3200 9 is_stmt 1 view .LVU2211 7090 00ec 2B68 ldr r3, [r5] 7091 00ee 1022 movs r2, #16 7092 00f0 DA61 str r2, [r3, #28] 3203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7093 .loc 1 3203 9 view .LVU2212 7094 00f2 2B68 ldr r3, [r5] 7095 00f4 1032 adds r2, r2, #16 7096 00f6 DA61 str r2, [r3, #28] 3207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7097 .loc 1 3207 7 view .LVU2213 3207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7098 .loc 1 3207 22 is_stmt 0 view .LVU2214 7099 00f8 039B ldr r3, [sp, #12] 3207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7100 .loc 1 3207 10 view .LVU2215 7101 00fa BB42 cmp r3, r7 7102 00fc 22D0 beq .L411 7103 .L400: 3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7104 .loc 1 3223 7 is_stmt 1 view .LVU2216 3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7105 .loc 1 3223 17 is_stmt 0 view .LVU2217 7106 00fe 039B ldr r3, [sp, #12] 7107 0100 0133 adds r3, r3, #1 7108 0102 0393 str r3, [sp, #12] 3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7109 .loc 1 3224 25 view .LVU2218 7110 0104 039B ldr r3, [sp, #12] 3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7111 .loc 1 3224 5 view .LVU2219 7112 0106 BB42 cmp r3, r7 7113 0108 9BD3 bcc .L401 3227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7114 .loc 1 3227 5 is_stmt 1 view .LVU2220 3227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7115 .loc 1 3227 17 is_stmt 0 view .LVU2221 ARM GAS /tmp/ccRVAHyi.s page 281 7116 010a 2022 movs r2, #32 7117 010c 4123 movs r3, #65 7118 010e EA54 strb r2, [r5, r3] 3230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7119 .loc 1 3230 5 is_stmt 1 view .LVU2222 3230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7120 .loc 1 3230 21 is_stmt 0 view .LVU2223 7121 0110 6B6C ldr r3, [r5, #68] 7122 0112 1343 orrs r3, r2 7123 0114 6B64 str r3, [r5, #68] 3233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7124 .loc 1 3233 5 is_stmt 1 view .LVU2224 3233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7125 .loc 1 3233 5 view .LVU2225 7126 0116 4023 movs r3, #64 7127 0118 0022 movs r2, #0 7128 011a EA54 strb r2, [r5, r3] 3235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7129 .loc 1 3235 5 view .LVU2226 3235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7130 .loc 1 3235 12 is_stmt 0 view .LVU2227 7131 011c 0120 movs r0, #1 7132 011e D4E7 b .L392 7133 .LVL488: 7134 .L410: 3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7135 .loc 1 3175 9 is_stmt 1 view .LVU2228 3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7136 .loc 1 3175 13 is_stmt 0 view .LVU2229 7137 0120 0096 str r6, [sp] 7138 0122 2300 movs r3, r4 7139 0124 0022 movs r2, #0 7140 0126 2021 movs r1, #32 7141 .LVL489: 3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7142 .loc 1 3175 13 view .LVU2230 7143 0128 2800 movs r0, r5 7144 012a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7145 .LVL490: 3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7146 .loc 1 3175 12 view .LVU2231 7147 012e 0028 cmp r0, #0 7148 0130 21D1 bne .L405 3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7149 .loc 1 3181 9 is_stmt 1 view .LVU2232 7150 0132 2A68 ldr r2, [r5] 7151 0134 2023 movs r3, #32 7152 0136 D361 str r3, [r2, #28] 3184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7153 .loc 1 3184 9 view .LVU2233 3184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7154 .loc 1 3184 21 is_stmt 0 view .LVU2234 7155 0138 4122 movs r2, #65 7156 013a AB54 strb r3, [r5, r2] 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7157 .loc 1 3187 9 is_stmt 1 view .LVU2235 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 282 7158 .loc 1 3187 9 view .LVU2236 7159 013c 2033 adds r3, r3, #32 7160 013e 0022 movs r2, #0 7161 0140 EA54 strb r2, [r5, r3] 3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7162 .loc 1 3189 9 view .LVU2237 3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7163 .loc 1 3189 16 is_stmt 0 view .LVU2238 7164 0142 C2E7 b .L392 7165 .L411: 3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7166 .loc 1 3210 9 is_stmt 1 view .LVU2239 3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7167 .loc 1 3210 13 is_stmt 0 view .LVU2240 7168 0144 2A68 ldr r2, [r5] 3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7169 .loc 1 3210 29 view .LVU2241 7170 0146 5168 ldr r1, [r2, #4] 7171 0148 8023 movs r3, #128 7172 014a DB01 lsls r3, r3, #7 7173 014c 0B43 orrs r3, r1 7174 014e 5360 str r3, [r2, #4] 3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7175 .loc 1 3213 9 is_stmt 1 view .LVU2242 3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7176 .loc 1 3213 13 is_stmt 0 view .LVU2243 7177 0150 0096 str r6, [sp] 7178 0152 2300 movs r3, r4 7179 0154 0022 movs r2, #0 7180 0156 2021 movs r1, #32 7181 0158 2800 movs r0, r5 7182 015a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7183 .LVL491: 3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7184 .loc 1 3213 12 view .LVU2244 7185 015e 0028 cmp r0, #0 7186 0160 0DD1 bne .L407 3219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7187 .loc 1 3219 9 is_stmt 1 view .LVU2245 7188 0162 2B68 ldr r3, [r5] 7189 0164 2022 movs r2, #32 7190 0166 DA61 str r2, [r3, #28] 7191 0168 C9E7 b .L400 7192 .LVL492: 7193 .L402: 3239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7194 .loc 1 3239 12 is_stmt 0 view .LVU2246 7195 016a 0220 movs r0, #2 7196 .LVL493: 3239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7197 .loc 1 3239 12 view .LVU2247 7198 016c ADE7 b .L392 7199 .LVL494: 7200 .L403: 3127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7201 .loc 1 3127 14 view .LVU2248 7202 016e 0220 movs r0, #2 ARM GAS /tmp/ccRVAHyi.s page 283 7203 .LVL495: 3127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7204 .loc 1 3127 14 view .LVU2249 7205 0170 ABE7 b .L392 7206 .LVL496: 7207 .L404: 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7208 .loc 1 3131 5 view .LVU2250 7209 0172 0220 movs r0, #2 7210 .LVL497: 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7211 .loc 1 3131 5 view .LVU2251 7212 0174 A9E7 b .L392 7213 .LVL498: 7214 .L405: 3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7215 .loc 1 3177 18 view .LVU2252 7216 0176 0120 movs r0, #1 7217 0178 A7E7 b .L392 7218 .L406: 3196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7219 .loc 1 3196 18 view .LVU2253 7220 017a 0120 movs r0, #1 7221 017c A5E7 b .L392 7222 .L407: 3215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7223 .loc 1 3215 18 view .LVU2254 7224 017e 0120 movs r0, #1 7225 0180 A3E7 b .L392 7226 .L413: 7227 0182 C046 .align 2 7228 .L412: 7229 0184 00200002 .word 33562624 7230 .cfi_endproc 7231 .LFE62: 7233 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7234 .align 1 7235 .global HAL_I2C_Master_Seq_Transmit_IT 7236 .syntax unified 7237 .code 16 7238 .thumb_func 7239 .fpu softvfp 7241 HAL_I2C_Master_Seq_Transmit_IT: 7242 .LVL499: 7243 .LFB63: 3257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7244 .loc 1 3257 1 is_stmt 1 view -0 7245 .cfi_startproc 7246 @ args = 4, pretend = 0, frame = 0 7247 @ frame_needed = 0, uses_anonymous_args = 0 3257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7248 .loc 1 3257 1 is_stmt 0 view .LVU2256 7249 0000 70B5 push {r4, r5, r6, lr} 7250 .LCFI52: 7251 .cfi_def_cfa_offset 16 7252 .cfi_offset 4, -16 7253 .cfi_offset 5, -12 ARM GAS /tmp/ccRVAHyi.s page 284 7254 .cfi_offset 6, -8 7255 .cfi_offset 14, -4 7256 0002 82B0 sub sp, sp, #8 7257 .LCFI53: 7258 .cfi_def_cfa_offset 24 7259 0004 0400 movs r4, r0 7260 0006 0D00 movs r5, r1 3258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7261 .loc 1 3258 3 is_stmt 1 view .LVU2257 3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7262 .loc 1 3259 3 view .LVU2258 7263 .LVL500: 3262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7264 .loc 1 3262 3 view .LVU2259 3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7265 .loc 1 3264 3 view .LVU2260 3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7266 .loc 1 3264 11 is_stmt 0 view .LVU2261 7267 0008 4121 movs r1, #65 7268 .LVL501: 3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7269 .loc 1 3264 11 view .LVU2262 7270 000a 415C ldrb r1, [r0, r1] 3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7271 .loc 1 3264 6 view .LVU2263 7272 000c 2029 cmp r1, #32 7273 000e 4AD1 bne .L420 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7274 .loc 1 3267 5 is_stmt 1 view .LVU2264 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7275 .loc 1 3267 5 view .LVU2265 7276 0010 2031 adds r1, r1, #32 7277 0012 415C ldrb r1, [r0, r1] 7278 0014 0129 cmp r1, #1 7279 0016 48D0 beq .L421 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7280 .loc 1 3267 5 discriminator 2 view .LVU2266 7281 0018 4021 movs r1, #64 7282 001a 0120 movs r0, #1 7283 .LVL502: 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7284 .loc 1 3267 5 is_stmt 0 discriminator 2 view .LVU2267 7285 001c 6054 strb r0, [r4, r1] 3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7286 .loc 1 3269 5 is_stmt 1 discriminator 2 view .LVU2268 3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7287 .loc 1 3269 21 is_stmt 0 discriminator 2 view .LVU2269 7288 001e 0131 adds r1, r1, #1 7289 0020 2030 adds r0, r0, #32 7290 0022 6054 strb r0, [r4, r1] 3270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7291 .loc 1 3270 5 is_stmt 1 discriminator 2 view .LVU2270 3270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7292 .loc 1 3270 21 is_stmt 0 discriminator 2 view .LVU2271 7293 0024 0131 adds r1, r1, #1 7294 0026 1138 subs r0, r0, #17 7295 0028 6054 strb r0, [r4, r1] ARM GAS /tmp/ccRVAHyi.s page 285 3271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7296 .loc 1 3271 5 is_stmt 1 discriminator 2 view .LVU2272 3271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7297 .loc 1 3271 21 is_stmt 0 discriminator 2 view .LVU2273 7298 002a 0021 movs r1, #0 7299 002c 6164 str r1, [r4, #68] 3274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7300 .loc 1 3274 5 is_stmt 1 discriminator 2 view .LVU2274 3274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7301 .loc 1 3274 23 is_stmt 0 discriminator 2 view .LVU2275 7302 002e 6262 str r2, [r4, #36] 3275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7303 .loc 1 3275 5 is_stmt 1 discriminator 2 view .LVU2276 3275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7304 .loc 1 3275 23 is_stmt 0 discriminator 2 view .LVU2277 7305 0030 6385 strh r3, [r4, #42] 3276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7306 .loc 1 3276 5 is_stmt 1 discriminator 2 view .LVU2278 3276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7307 .loc 1 3276 23 is_stmt 0 discriminator 2 view .LVU2279 7308 0032 069B ldr r3, [sp, #24] 7309 .LVL503: 3276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7310 .loc 1 3276 23 discriminator 2 view .LVU2280 7311 0034 E362 str r3, [r4, #44] 7312 .LVL504: 3277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7313 .loc 1 3277 5 is_stmt 1 discriminator 2 view .LVU2281 3277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7314 .loc 1 3277 23 is_stmt 0 discriminator 2 view .LVU2282 7315 0036 1E4B ldr r3, .L424 7316 0038 6363 str r3, [r4, #52] 3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7317 .loc 1 3280 5 is_stmt 1 discriminator 2 view .LVU2283 3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7318 .loc 1 3280 13 is_stmt 0 discriminator 2 view .LVU2284 7319 003a 638D ldrh r3, [r4, #42] 7320 003c 9BB2 uxth r3, r3 3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7321 .loc 1 3280 8 discriminator 2 view .LVU2285 7322 003e FF2B cmp r3, #255 7323 0040 10D9 bls .L416 3282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7324 .loc 1 3282 7 is_stmt 1 view .LVU2286 3282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7325 .loc 1 3282 22 is_stmt 0 view .LVU2287 7326 0042 FF23 movs r3, #255 7327 0044 2385 strh r3, [r4, #40] 3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7328 .loc 1 3283 7 is_stmt 1 view .LVU2288 7329 .LVL505: 3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7330 .loc 1 3283 16 is_stmt 0 view .LVU2289 7331 0046 8026 movs r6, #128 7332 0048 7604 lsls r6, r6, #17 7333 .LVL506: 7334 .L417: ARM GAS /tmp/ccRVAHyi.s page 286 3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7335 .loc 1 3294 5 is_stmt 1 view .LVU2290 3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7336 .loc 1 3294 14 is_stmt 0 view .LVU2291 7337 004a 236B ldr r3, [r4, #48] 3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7338 .loc 1 3294 8 view .LVU2292 7339 004c 112B cmp r3, #17 7340 004e 0DD1 bne .L418 3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7341 .loc 1 3295 10 view .LVU2293 7342 0050 069B ldr r3, [sp, #24] 7343 0052 AA2B cmp r3, #170 7344 0054 0AD0 beq .L418 3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7345 .loc 1 3295 10 discriminator 2 view .LVU2294 7346 0056 AA23 movs r3, #170 7347 0058 1B02 lsls r3, r3, #8 7348 005a 069A ldr r2, [sp, #24] 7349 .LVL507: 3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7350 .loc 1 3295 10 discriminator 2 view .LVU2295 7351 005c 9A42 cmp r2, r3 7352 005e 05D0 beq .L418 3297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7353 .loc 1 3297 19 view .LVU2296 7354 0060 0023 movs r3, #0 7355 0062 0CE0 b .L419 7356 .LVL508: 7357 .L416: 3287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7358 .loc 1 3287 7 is_stmt 1 view .LVU2297 3287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7359 .loc 1 3287 28 is_stmt 0 view .LVU2298 7360 0064 638D ldrh r3, [r4, #42] 3287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7361 .loc 1 3287 22 view .LVU2299 7362 0066 2385 strh r3, [r4, #40] 3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7363 .loc 1 3288 7 is_stmt 1 view .LVU2300 3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7364 .loc 1 3288 16 is_stmt 0 view .LVU2301 7365 0068 E66A ldr r6, [r4, #44] 7366 .LVL509: 3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7367 .loc 1 3288 16 view .LVU2302 7368 006a EEE7 b .L417 7369 .LVL510: 7370 .L418: 3302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7371 .loc 1 3302 7 is_stmt 1 view .LVU2303 7372 006c 2000 movs r0, r4 7373 006e FFF7FEFF bl I2C_ConvertOtherXferOptions 7374 .LVL511: 3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7375 .loc 1 3305 7 view .LVU2304 3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 287 7376 .loc 1 3305 15 is_stmt 0 view .LVU2305 7377 0072 638D ldrh r3, [r4, #42] 7378 0074 9BB2 uxth r3, r3 3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7379 .loc 1 3305 10 view .LVU2306 7380 0076 FF2B cmp r3, #255 7381 0078 13D8 bhi .L423 3307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7382 .loc 1 3307 9 is_stmt 1 view .LVU2307 3307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7383 .loc 1 3307 18 is_stmt 0 view .LVU2308 7384 007a E66A ldr r6, [r4, #44] 7385 .LVL512: 3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7386 .loc 1 3259 12 view .LVU2309 7387 007c 0D4B ldr r3, .L424+4 7388 .L419: 7389 .LVL513: 3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7390 .loc 1 3312 5 is_stmt 1 view .LVU2310 3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7391 .loc 1 3312 55 is_stmt 0 view .LVU2311 7392 007e 228D ldrh r2, [r4, #40] 3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7393 .loc 1 3312 5 view .LVU2312 7394 0080 D2B2 uxtb r2, r2 7395 0082 0093 str r3, [sp] 7396 0084 3300 movs r3, r6 7397 .LVL514: 3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7398 .loc 1 3312 5 view .LVU2313 7399 0086 2900 movs r1, r5 7400 0088 2000 movs r0, r4 7401 008a FFF7FEFF bl I2C_TransferConfig 7402 .LVL515: 3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7403 .loc 1 3315 5 is_stmt 1 view .LVU2314 3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7404 .loc 1 3315 5 view .LVU2315 7405 008e 4023 movs r3, #64 7406 0090 0022 movs r2, #0 7407 0092 E254 strb r2, [r4, r3] 3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7408 .loc 1 3320 5 view .LVU2316 7409 0094 0121 movs r1, #1 7410 0096 2000 movs r0, r4 7411 0098 FFF7FEFF bl I2C_Enable_IRQ 7412 .LVL516: 3322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7413 .loc 1 3322 5 view .LVU2317 3322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7414 .loc 1 3322 12 is_stmt 0 view .LVU2318 7415 009c 0020 movs r0, #0 7416 .LVL517: 7417 .L415: 3328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7418 .loc 1 3328 1 view .LVU2319 ARM GAS /tmp/ccRVAHyi.s page 288 7419 009e 02B0 add sp, sp, #8 7420 @ sp needed 7421 .LVL518: 3328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7422 .loc 1 3328 1 view .LVU2320 7423 00a0 70BD pop {r4, r5, r6, pc} 7424 .LVL519: 7425 .L423: 3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7426 .loc 1 3259 12 view .LVU2321 7427 00a2 044B ldr r3, .L424+4 7428 00a4 EBE7 b .L419 7429 .LVL520: 7430 .L420: 3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7431 .loc 1 3326 12 view .LVU2322 7432 00a6 0220 movs r0, #2 7433 .LVL521: 3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7434 .loc 1 3326 12 view .LVU2323 7435 00a8 F9E7 b .L415 7436 .LVL522: 7437 .L421: 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7438 .loc 1 3267 5 view .LVU2324 7439 00aa 0220 movs r0, #2 7440 .LVL523: 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7441 .loc 1 3267 5 view .LVU2325 7442 00ac F7E7 b .L415 7443 .L425: 7444 00ae C046 .align 2 7445 .L424: 7446 00b0 00000000 .word I2C_Master_ISR_IT 7447 00b4 00200080 .word -2147475456 7448 .cfi_endproc 7449 .LFE63: 7451 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7452 .align 1 7453 .global HAL_I2C_Master_Seq_Transmit_DMA 7454 .syntax unified 7455 .code 16 7456 .thumb_func 7457 .fpu softvfp 7459 HAL_I2C_Master_Seq_Transmit_DMA: 7460 .LVL524: 7461 .LFB64: 3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7462 .loc 1 3344 1 is_stmt 1 view -0 7463 .cfi_startproc 7464 @ args = 4, pretend = 0, frame = 8 7465 @ frame_needed = 0, uses_anonymous_args = 0 3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7466 .loc 1 3344 1 is_stmt 0 view .LVU2327 7467 0000 F0B5 push {r4, r5, r6, r7, lr} 7468 .LCFI54: 7469 .cfi_def_cfa_offset 20 ARM GAS /tmp/ccRVAHyi.s page 289 7470 .cfi_offset 4, -20 7471 .cfi_offset 5, -16 7472 .cfi_offset 6, -12 7473 .cfi_offset 7, -8 7474 .cfi_offset 14, -4 7475 0002 85B0 sub sp, sp, #20 7476 .LCFI55: 7477 .cfi_def_cfa_offset 40 7478 0004 0400 movs r4, r0 7479 0006 0391 str r1, [sp, #12] 7480 0008 1500 movs r5, r2 3345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7481 .loc 1 3345 3 is_stmt 1 view .LVU2328 3346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7482 .loc 1 3346 3 view .LVU2329 7483 .LVL525: 3347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7484 .loc 1 3347 3 view .LVU2330 3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7485 .loc 1 3350 3 view .LVU2331 3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7486 .loc 1 3352 3 view .LVU2332 3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7487 .loc 1 3352 11 is_stmt 0 view .LVU2333 7488 000a 4122 movs r2, #65 7489 .LVL526: 3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7490 .loc 1 3352 11 view .LVU2334 7491 000c 825C ldrb r2, [r0, r2] 3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7492 .loc 1 3352 6 view .LVU2335 7493 000e 202A cmp r2, #32 7494 0010 00D0 beq .LCB7118 7495 0012 9DE0 b .L437 @long jump 7496 .LCB7118: 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7497 .loc 1 3355 5 is_stmt 1 view .LVU2336 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7498 .loc 1 3355 5 view .LVU2337 7499 0014 2032 adds r2, r2, #32 7500 0016 825C ldrb r2, [r0, r2] 7501 0018 012A cmp r2, #1 7502 001a 00D1 bne .LCB7124 7503 001c 9BE0 b .L438 @long jump 7504 .LCB7124: 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7505 .loc 1 3355 5 discriminator 2 view .LVU2338 7506 001e 4022 movs r2, #64 7507 0020 0121 movs r1, #1 7508 .LVL527: 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7509 .loc 1 3355 5 is_stmt 0 discriminator 2 view .LVU2339 7510 0022 8154 strb r1, [r0, r2] 3357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7511 .loc 1 3357 5 is_stmt 1 discriminator 2 view .LVU2340 3357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7512 .loc 1 3357 21 is_stmt 0 discriminator 2 view .LVU2341 ARM GAS /tmp/ccRVAHyi.s page 290 7513 0024 0132 adds r2, r2, #1 7514 0026 2031 adds r1, r1, #32 7515 0028 8154 strb r1, [r0, r2] 3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7516 .loc 1 3358 5 is_stmt 1 discriminator 2 view .LVU2342 3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7517 .loc 1 3358 21 is_stmt 0 discriminator 2 view .LVU2343 7518 002a 0132 adds r2, r2, #1 7519 002c 1139 subs r1, r1, #17 7520 002e 8154 strb r1, [r0, r2] 3359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7521 .loc 1 3359 5 is_stmt 1 discriminator 2 view .LVU2344 3359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7522 .loc 1 3359 21 is_stmt 0 discriminator 2 view .LVU2345 7523 0030 0022 movs r2, #0 7524 0032 4264 str r2, [r0, #68] 3362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7525 .loc 1 3362 5 is_stmt 1 discriminator 2 view .LVU2346 3362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7526 .loc 1 3362 23 is_stmt 0 discriminator 2 view .LVU2347 7527 0034 4562 str r5, [r0, #36] 3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7528 .loc 1 3363 5 is_stmt 1 discriminator 2 view .LVU2348 3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7529 .loc 1 3363 23 is_stmt 0 discriminator 2 view .LVU2349 7530 0036 4385 strh r3, [r0, #42] 3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7531 .loc 1 3364 5 is_stmt 1 discriminator 2 view .LVU2350 3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7532 .loc 1 3364 23 is_stmt 0 discriminator 2 view .LVU2351 7533 0038 0A9B ldr r3, [sp, #40] 7534 .LVL528: 3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7535 .loc 1 3364 23 discriminator 2 view .LVU2352 7536 003a C362 str r3, [r0, #44] 7537 .LVL529: 3365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7538 .loc 1 3365 5 is_stmt 1 discriminator 2 view .LVU2353 3365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7539 .loc 1 3365 23 is_stmt 0 discriminator 2 view .LVU2354 7540 003c 474B ldr r3, .L443 7541 003e 4363 str r3, [r0, #52] 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7542 .loc 1 3368 5 is_stmt 1 discriminator 2 view .LVU2355 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7543 .loc 1 3368 13 is_stmt 0 discriminator 2 view .LVU2356 7544 0040 438D ldrh r3, [r0, #42] 7545 0042 9BB2 uxth r3, r3 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7546 .loc 1 3368 8 discriminator 2 view .LVU2357 7547 0044 FF2B cmp r3, #255 7548 0046 10D9 bls .L428 3370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7549 .loc 1 3370 7 is_stmt 1 view .LVU2358 3370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7550 .loc 1 3370 22 is_stmt 0 view .LVU2359 7551 0048 FF23 movs r3, #255 ARM GAS /tmp/ccRVAHyi.s page 291 7552 004a 0385 strh r3, [r0, #40] 3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7553 .loc 1 3371 7 is_stmt 1 view .LVU2360 7554 .LVL530: 3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7555 .loc 1 3371 16 is_stmt 0 view .LVU2361 7556 004c 8027 movs r7, #128 7557 004e 7F04 lsls r7, r7, #17 7558 .LVL531: 7559 .L429: 3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7560 .loc 1 3382 5 is_stmt 1 view .LVU2362 3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7561 .loc 1 3382 14 is_stmt 0 view .LVU2363 7562 0050 236B ldr r3, [r4, #48] 3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7563 .loc 1 3382 8 view .LVU2364 7564 0052 112B cmp r3, #17 7565 0054 0DD1 bne .L430 3383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7566 .loc 1 3383 10 view .LVU2365 7567 0056 0A9B ldr r3, [sp, #40] 7568 0058 AA2B cmp r3, #170 7569 005a 0AD0 beq .L430 3383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7570 .loc 1 3383 10 discriminator 2 view .LVU2366 7571 005c AA23 movs r3, #170 7572 005e 1B02 lsls r3, r3, #8 7573 0060 0A9A ldr r2, [sp, #40] 7574 0062 9A42 cmp r2, r3 7575 0064 05D0 beq .L430 3385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7576 .loc 1 3385 19 view .LVU2367 7577 0066 0026 movs r6, #0 7578 0068 0CE0 b .L431 7579 .LVL532: 7580 .L428: 3375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7581 .loc 1 3375 7 is_stmt 1 view .LVU2368 3375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7582 .loc 1 3375 28 is_stmt 0 view .LVU2369 7583 006a 438D ldrh r3, [r0, #42] 3375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7584 .loc 1 3375 22 view .LVU2370 7585 006c 0385 strh r3, [r0, #40] 3376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7586 .loc 1 3376 7 is_stmt 1 view .LVU2371 3376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7587 .loc 1 3376 16 is_stmt 0 view .LVU2372 7588 006e C76A ldr r7, [r0, #44] 7589 .LVL533: 3376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7590 .loc 1 3376 16 view .LVU2373 7591 0070 EEE7 b .L429 7592 .L430: 3390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7593 .loc 1 3390 7 is_stmt 1 view .LVU2374 ARM GAS /tmp/ccRVAHyi.s page 292 7594 0072 2000 movs r0, r4 7595 .LVL534: 3390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7596 .loc 1 3390 7 is_stmt 0 view .LVU2375 7597 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 7598 .LVL535: 3393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7599 .loc 1 3393 7 is_stmt 1 view .LVU2376 3393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7600 .loc 1 3393 15 is_stmt 0 view .LVU2377 7601 0078 638D ldrh r3, [r4, #42] 7602 007a 9BB2 uxth r3, r3 3393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7603 .loc 1 3393 10 view .LVU2378 7604 007c FF2B cmp r3, #255 7605 007e 28D8 bhi .L440 3395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7606 .loc 1 3395 9 is_stmt 1 view .LVU2379 3395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7607 .loc 1 3395 18 is_stmt 0 view .LVU2380 7608 0080 E76A ldr r7, [r4, #44] 7609 .LVL536: 3346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7610 .loc 1 3346 12 view .LVU2381 7611 0082 374E ldr r6, .L443+4 7612 .L431: 7613 .LVL537: 3399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7614 .loc 1 3399 5 is_stmt 1 view .LVU2382 3399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7615 .loc 1 3399 13 is_stmt 0 view .LVU2383 7616 0084 228D ldrh r2, [r4, #40] 3399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7617 .loc 1 3399 8 view .LVU2384 7618 0086 002A cmp r2, #0 7619 0088 4ED0 beq .L432 3401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7620 .loc 1 3401 7 is_stmt 1 view .LVU2385 3401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7621 .loc 1 3401 15 is_stmt 0 view .LVU2386 7622 008a A36B ldr r3, [r4, #56] 3401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7623 .loc 1 3401 10 view .LVU2387 7624 008c 002B cmp r3, #0 7625 008e 22D0 beq .L433 3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7626 .loc 1 3404 9 is_stmt 1 view .LVU2388 3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7627 .loc 1 3404 40 is_stmt 0 view .LVU2389 7628 0090 344A ldr r2, .L443+8 7629 0092 9A62 str r2, [r3, #40] 3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7630 .loc 1 3407 9 is_stmt 1 view .LVU2390 3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7631 .loc 1 3407 13 is_stmt 0 view .LVU2391 7632 0094 A36B ldr r3, [r4, #56] 3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 293 7633 .loc 1 3407 41 view .LVU2392 7634 0096 344A ldr r2, .L443+12 7635 0098 1A63 str r2, [r3, #48] 3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7636 .loc 1 3410 9 is_stmt 1 view .LVU2393 3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7637 .loc 1 3410 13 is_stmt 0 view .LVU2394 7638 009a A26B ldr r2, [r4, #56] 3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7639 .loc 1 3410 44 view .LVU2395 7640 009c 0023 movs r3, #0 7641 009e D362 str r3, [r2, #44] 3411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7642 .loc 1 3411 9 is_stmt 1 view .LVU2396 3411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7643 .loc 1 3411 13 is_stmt 0 view .LVU2397 7644 00a0 A26B ldr r2, [r4, #56] 3411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7645 .loc 1 3411 41 view .LVU2398 7646 00a2 5363 str r3, [r2, #52] 3414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 7647 .loc 1 3414 9 is_stmt 1 view .LVU2399 3414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 7648 .loc 1 3414 83 is_stmt 0 view .LVU2400 7649 00a4 2268 ldr r2, [r4] 7650 00a6 2832 adds r2, r2, #40 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7651 .loc 1 3415 46 view .LVU2401 7652 00a8 238D ldrh r3, [r4, #40] 3414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 7653 .loc 1 3414 25 view .LVU2402 7654 00aa 2900 movs r1, r5 7655 00ac A06B ldr r0, [r4, #56] 7656 00ae FFF7FEFF bl HAL_DMA_Start_IT 7657 .LVL538: 3432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7658 .loc 1 3432 7 is_stmt 1 view .LVU2403 3432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7659 .loc 1 3432 10 is_stmt 0 view .LVU2404 7660 00b2 0028 cmp r0, #0 7661 00b4 1DD0 beq .L442 3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7662 .loc 1 3455 9 is_stmt 1 view .LVU2405 3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7663 .loc 1 3455 25 is_stmt 0 view .LVU2406 7664 00b6 4123 movs r3, #65 7665 00b8 2022 movs r2, #32 7666 00ba E254 strb r2, [r4, r3] 3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7667 .loc 1 3456 9 is_stmt 1 view .LVU2407 3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7668 .loc 1 3456 25 is_stmt 0 view .LVU2408 7669 00bc 0022 movs r2, #0 7670 00be 0133 adds r3, r3, #1 7671 00c0 E254 strb r2, [r4, r3] 3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7672 .loc 1 3459 9 is_stmt 1 view .LVU2409 ARM GAS /tmp/ccRVAHyi.s page 294 3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7673 .loc 1 3459 25 is_stmt 0 view .LVU2410 7674 00c2 636C ldr r3, [r4, #68] 7675 00c4 1021 movs r1, #16 7676 00c6 0B43 orrs r3, r1 7677 00c8 6364 str r3, [r4, #68] 3462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7678 .loc 1 3462 9 is_stmt 1 view .LVU2411 3462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7679 .loc 1 3462 9 view .LVU2412 7680 00ca 4023 movs r3, #64 7681 00cc E254 strb r2, [r4, r3] 3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7682 .loc 1 3464 9 view .LVU2413 3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7683 .loc 1 3464 16 is_stmt 0 view .LVU2414 7684 00ce 0120 movs r0, #1 7685 .LVL539: 3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7686 .loc 1 3464 16 view .LVU2415 7687 00d0 3FE0 b .L427 7688 .LVL540: 7689 .L440: 3346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7690 .loc 1 3346 12 view .LVU2416 7691 00d2 234E ldr r6, .L443+4 7692 00d4 D6E7 b .L431 7693 .LVL541: 7694 .L433: 3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7695 .loc 1 3420 9 is_stmt 1 view .LVU2417 3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7696 .loc 1 3420 25 is_stmt 0 view .LVU2418 7697 00d6 4123 movs r3, #65 7698 00d8 2022 movs r2, #32 7699 00da E254 strb r2, [r4, r3] 3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7700 .loc 1 3421 9 is_stmt 1 view .LVU2419 3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7701 .loc 1 3421 25 is_stmt 0 view .LVU2420 7702 00dc 0022 movs r2, #0 7703 00de 0133 adds r3, r3, #1 7704 00e0 E254 strb r2, [r4, r3] 3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7705 .loc 1 3424 9 is_stmt 1 view .LVU2421 3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7706 .loc 1 3424 25 is_stmt 0 view .LVU2422 7707 00e2 636C ldr r3, [r4, #68] 7708 00e4 8021 movs r1, #128 7709 00e6 0B43 orrs r3, r1 7710 00e8 6364 str r3, [r4, #68] 3427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7711 .loc 1 3427 9 is_stmt 1 view .LVU2423 3427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7712 .loc 1 3427 9 view .LVU2424 7713 00ea 4023 movs r3, #64 7714 00ec E254 strb r2, [r4, r3] ARM GAS /tmp/ccRVAHyi.s page 295 3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7715 .loc 1 3429 9 view .LVU2425 3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7716 .loc 1 3429 16 is_stmt 0 view .LVU2426 7717 00ee 0120 movs r0, #1 7718 00f0 2FE0 b .L427 7719 .LVL542: 7720 .L442: 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7721 .loc 1 3435 9 is_stmt 1 view .LVU2427 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7722 .loc 1 3435 59 is_stmt 0 view .LVU2428 7723 00f2 228D ldrh r2, [r4, #40] 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7724 .loc 1 3435 9 view .LVU2429 7725 00f4 D2B2 uxtb r2, r2 7726 00f6 0096 str r6, [sp] 7727 00f8 3B00 movs r3, r7 7728 00fa 0399 ldr r1, [sp, #12] 7729 00fc 2000 movs r0, r4 7730 .LVL543: 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7731 .loc 1 3435 9 view .LVU2430 7732 00fe FFF7FEFF bl I2C_TransferConfig 7733 .LVL544: 3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7734 .loc 1 3438 9 is_stmt 1 view .LVU2431 3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7735 .loc 1 3438 25 is_stmt 0 view .LVU2432 7736 0102 638D ldrh r3, [r4, #42] 3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7737 .loc 1 3438 32 view .LVU2433 7738 0104 228D ldrh r2, [r4, #40] 3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7739 .loc 1 3438 25 view .LVU2434 7740 0106 9B1A subs r3, r3, r2 7741 0108 9BB2 uxth r3, r3 7742 010a 6385 strh r3, [r4, #42] 3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7743 .loc 1 3441 9 is_stmt 1 view .LVU2435 3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7744 .loc 1 3441 9 view .LVU2436 7745 010c 4023 movs r3, #64 7746 010e 0022 movs r2, #0 7747 0110 E254 strb r2, [r4, r3] 3447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7748 .loc 1 3447 9 view .LVU2437 7749 0112 1021 movs r1, #16 7750 0114 2000 movs r0, r4 7751 0116 FFF7FEFF bl I2C_Enable_IRQ 7752 .LVL545: 3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7753 .loc 1 3450 9 view .LVU2438 3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7754 .loc 1 3450 13 is_stmt 0 view .LVU2439 7755 011a 2268 ldr r2, [r4] 3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 296 7756 .loc 1 3450 29 view .LVU2440 7757 011c 1168 ldr r1, [r2] 7758 011e 8023 movs r3, #128 7759 0120 DB01 lsls r3, r3, #7 7760 0122 0B43 orrs r3, r1 7761 0124 1360 str r3, [r2] 7762 0126 11E0 b .L436 7763 .L432: 3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7764 .loc 1 3470 7 is_stmt 1 view .LVU2441 3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7765 .loc 1 3470 21 is_stmt 0 view .LVU2442 7766 0128 104B ldr r3, .L443+16 7767 012a 6363 str r3, [r4, #52] 3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 7768 .loc 1 3474 7 is_stmt 1 view .LVU2443 7769 012c 8023 movs r3, #128 7770 012e D2B2 uxtb r2, r2 7771 0130 0B49 ldr r1, .L443+4 7772 0132 0091 str r1, [sp] 7773 0134 9B04 lsls r3, r3, #18 7774 0136 0399 ldr r1, [sp, #12] 7775 0138 2000 movs r0, r4 7776 013a FFF7FEFF bl I2C_TransferConfig 7777 .LVL546: 3478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7778 .loc 1 3478 7 view .LVU2444 3478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7779 .loc 1 3478 7 view .LVU2445 7780 013e 4023 movs r3, #64 7781 0140 0022 movs r2, #0 7782 0142 E254 strb r2, [r4, r3] 3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7783 .loc 1 3487 7 view .LVU2446 7784 0144 0121 movs r1, #1 7785 0146 2000 movs r0, r4 7786 0148 FFF7FEFF bl I2C_Enable_IRQ 7787 .LVL547: 7788 .L436: 3490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7789 .loc 1 3490 5 view .LVU2447 3490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7790 .loc 1 3490 12 is_stmt 0 view .LVU2448 7791 014c 0020 movs r0, #0 7792 014e 00E0 b .L427 7793 .LVL548: 7794 .L437: 3494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7795 .loc 1 3494 12 view .LVU2449 7796 0150 0220 movs r0, #2 7797 .LVL549: 7798 .L427: 3496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7799 .loc 1 3496 1 view .LVU2450 7800 0152 05B0 add sp, sp, #20 7801 @ sp needed 7802 .LVL550: ARM GAS /tmp/ccRVAHyi.s page 297 7803 .LVL551: 3496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7804 .loc 1 3496 1 view .LVU2451 7805 0154 F0BD pop {r4, r5, r6, r7, pc} 7806 .LVL552: 7807 .L438: 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7808 .loc 1 3355 5 view .LVU2452 7809 0156 0220 movs r0, #2 7810 .LVL553: 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7811 .loc 1 3355 5 view .LVU2453 7812 0158 FBE7 b .L427 7813 .L444: 7814 015a C046 .align 2 7815 .L443: 7816 015c 00000000 .word I2C_Master_ISR_DMA 7817 0160 00200080 .word -2147475456 7818 0164 00000000 .word I2C_DMAMasterTransmitCplt 7819 0168 00000000 .word I2C_DMAError 7820 016c 00000000 .word I2C_Master_ISR_IT 7821 .cfi_endproc 7822 .LFE64: 7824 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7825 .align 1 7826 .global HAL_I2C_Master_Seq_Receive_IT 7827 .syntax unified 7828 .code 16 7829 .thumb_func 7830 .fpu softvfp 7832 HAL_I2C_Master_Seq_Receive_IT: 7833 .LVL554: 7834 .LFB65: 3512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7835 .loc 1 3512 1 is_stmt 1 view -0 7836 .cfi_startproc 7837 @ args = 4, pretend = 0, frame = 0 7838 @ frame_needed = 0, uses_anonymous_args = 0 3512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7839 .loc 1 3512 1 is_stmt 0 view .LVU2455 7840 0000 70B5 push {r4, r5, r6, lr} 7841 .LCFI56: 7842 .cfi_def_cfa_offset 16 7843 .cfi_offset 4, -16 7844 .cfi_offset 5, -12 7845 .cfi_offset 6, -8 7846 .cfi_offset 14, -4 7847 0002 82B0 sub sp, sp, #8 7848 .LCFI57: 7849 .cfi_def_cfa_offset 24 7850 0004 0400 movs r4, r0 7851 0006 0D00 movs r5, r1 3513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7852 .loc 1 3513 3 is_stmt 1 view .LVU2456 3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7853 .loc 1 3514 3 view .LVU2457 7854 .LVL555: ARM GAS /tmp/ccRVAHyi.s page 298 3517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7855 .loc 1 3517 3 view .LVU2458 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7856 .loc 1 3519 3 view .LVU2459 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7857 .loc 1 3519 11 is_stmt 0 view .LVU2460 7858 0008 4121 movs r1, #65 7859 .LVL556: 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7860 .loc 1 3519 11 view .LVU2461 7861 000a 415C ldrb r1, [r0, r1] 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7862 .loc 1 3519 6 view .LVU2462 7863 000c 2029 cmp r1, #32 7864 000e 4AD1 bne .L451 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7865 .loc 1 3522 5 is_stmt 1 view .LVU2463 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7866 .loc 1 3522 5 view .LVU2464 7867 0010 2031 adds r1, r1, #32 7868 0012 415C ldrb r1, [r0, r1] 7869 0014 0129 cmp r1, #1 7870 0016 48D0 beq .L452 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7871 .loc 1 3522 5 discriminator 2 view .LVU2465 7872 0018 4021 movs r1, #64 7873 001a 0120 movs r0, #1 7874 .LVL557: 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7875 .loc 1 3522 5 is_stmt 0 discriminator 2 view .LVU2466 7876 001c 6054 strb r0, [r4, r1] 3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7877 .loc 1 3524 5 is_stmt 1 discriminator 2 view .LVU2467 3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7878 .loc 1 3524 21 is_stmt 0 discriminator 2 view .LVU2468 7879 001e 0131 adds r1, r1, #1 7880 0020 2130 adds r0, r0, #33 7881 0022 6054 strb r0, [r4, r1] 3525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7882 .loc 1 3525 5 is_stmt 1 discriminator 2 view .LVU2469 3525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7883 .loc 1 3525 21 is_stmt 0 discriminator 2 view .LVU2470 7884 0024 0131 adds r1, r1, #1 7885 0026 1238 subs r0, r0, #18 7886 0028 6054 strb r0, [r4, r1] 3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7887 .loc 1 3526 5 is_stmt 1 discriminator 2 view .LVU2471 3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7888 .loc 1 3526 21 is_stmt 0 discriminator 2 view .LVU2472 7889 002a 0021 movs r1, #0 7890 002c 6164 str r1, [r4, #68] 3529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7891 .loc 1 3529 5 is_stmt 1 discriminator 2 view .LVU2473 3529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7892 .loc 1 3529 23 is_stmt 0 discriminator 2 view .LVU2474 7893 002e 6262 str r2, [r4, #36] 3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; ARM GAS /tmp/ccRVAHyi.s page 299 7894 .loc 1 3530 5 is_stmt 1 discriminator 2 view .LVU2475 3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7895 .loc 1 3530 23 is_stmt 0 discriminator 2 view .LVU2476 7896 0030 6385 strh r3, [r4, #42] 3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7897 .loc 1 3531 5 is_stmt 1 discriminator 2 view .LVU2477 3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7898 .loc 1 3531 23 is_stmt 0 discriminator 2 view .LVU2478 7899 0032 069B ldr r3, [sp, #24] 7900 .LVL558: 3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7901 .loc 1 3531 23 discriminator 2 view .LVU2479 7902 0034 E362 str r3, [r4, #44] 7903 .LVL559: 3532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7904 .loc 1 3532 5 is_stmt 1 discriminator 2 view .LVU2480 3532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7905 .loc 1 3532 23 is_stmt 0 discriminator 2 view .LVU2481 7906 0036 1E4B ldr r3, .L455 7907 0038 6363 str r3, [r4, #52] 3535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7908 .loc 1 3535 5 is_stmt 1 discriminator 2 view .LVU2482 3535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7909 .loc 1 3535 13 is_stmt 0 discriminator 2 view .LVU2483 7910 003a 638D ldrh r3, [r4, #42] 7911 003c 9BB2 uxth r3, r3 3535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7912 .loc 1 3535 8 discriminator 2 view .LVU2484 7913 003e FF2B cmp r3, #255 7914 0040 10D9 bls .L447 3537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7915 .loc 1 3537 7 is_stmt 1 view .LVU2485 3537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7916 .loc 1 3537 22 is_stmt 0 view .LVU2486 7917 0042 FF23 movs r3, #255 7918 0044 2385 strh r3, [r4, #40] 3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7919 .loc 1 3538 7 is_stmt 1 view .LVU2487 7920 .LVL560: 3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7921 .loc 1 3538 16 is_stmt 0 view .LVU2488 7922 0046 8026 movs r6, #128 7923 0048 7604 lsls r6, r6, #17 7924 .LVL561: 7925 .L448: 3549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7926 .loc 1 3549 5 is_stmt 1 view .LVU2489 3549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7927 .loc 1 3549 14 is_stmt 0 view .LVU2490 7928 004a 236B ldr r3, [r4, #48] 3549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7929 .loc 1 3549 8 view .LVU2491 7930 004c 122B cmp r3, #18 7931 004e 0DD1 bne .L449 3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7932 .loc 1 3550 10 view .LVU2492 7933 0050 069B ldr r3, [sp, #24] ARM GAS /tmp/ccRVAHyi.s page 300 7934 0052 AA2B cmp r3, #170 7935 0054 0AD0 beq .L449 3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7936 .loc 1 3550 10 discriminator 2 view .LVU2493 7937 0056 AA23 movs r3, #170 7938 0058 1B02 lsls r3, r3, #8 7939 005a 069A ldr r2, [sp, #24] 7940 .LVL562: 3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7941 .loc 1 3550 10 discriminator 2 view .LVU2494 7942 005c 9A42 cmp r2, r3 7943 005e 05D0 beq .L449 3552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7944 .loc 1 3552 19 view .LVU2495 7945 0060 0023 movs r3, #0 7946 0062 0CE0 b .L450 7947 .LVL563: 7948 .L447: 3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7949 .loc 1 3542 7 is_stmt 1 view .LVU2496 3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7950 .loc 1 3542 28 is_stmt 0 view .LVU2497 7951 0064 638D ldrh r3, [r4, #42] 3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7952 .loc 1 3542 22 view .LVU2498 7953 0066 2385 strh r3, [r4, #40] 3543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7954 .loc 1 3543 7 is_stmt 1 view .LVU2499 3543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7955 .loc 1 3543 16 is_stmt 0 view .LVU2500 7956 0068 E66A ldr r6, [r4, #44] 7957 .LVL564: 3543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7958 .loc 1 3543 16 view .LVU2501 7959 006a EEE7 b .L448 7960 .LVL565: 7961 .L449: 3557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7962 .loc 1 3557 7 is_stmt 1 view .LVU2502 7963 006c 2000 movs r0, r4 7964 006e FFF7FEFF bl I2C_ConvertOtherXferOptions 7965 .LVL566: 3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7966 .loc 1 3560 7 view .LVU2503 3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7967 .loc 1 3560 15 is_stmt 0 view .LVU2504 7968 0072 638D ldrh r3, [r4, #42] 7969 0074 9BB2 uxth r3, r3 3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7970 .loc 1 3560 10 view .LVU2505 7971 0076 FF2B cmp r3, #255 7972 0078 13D8 bhi .L454 3562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7973 .loc 1 3562 9 is_stmt 1 view .LVU2506 3562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7974 .loc 1 3562 18 is_stmt 0 view .LVU2507 7975 007a E66A ldr r6, [r4, #44] ARM GAS /tmp/ccRVAHyi.s page 301 7976 .LVL567: 3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7977 .loc 1 3514 12 view .LVU2508 7978 007c 0D4B ldr r3, .L455+4 7979 .L450: 7980 .LVL568: 3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7981 .loc 1 3567 5 is_stmt 1 view .LVU2509 3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7982 .loc 1 3567 55 is_stmt 0 view .LVU2510 7983 007e 228D ldrh r2, [r4, #40] 3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7984 .loc 1 3567 5 view .LVU2511 7985 0080 D2B2 uxtb r2, r2 7986 0082 0093 str r3, [sp] 7987 0084 3300 movs r3, r6 7988 .LVL569: 3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7989 .loc 1 3567 5 view .LVU2512 7990 0086 2900 movs r1, r5 7991 0088 2000 movs r0, r4 7992 008a FFF7FEFF bl I2C_TransferConfig 7993 .LVL570: 3570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7994 .loc 1 3570 5 is_stmt 1 view .LVU2513 3570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7995 .loc 1 3570 5 view .LVU2514 7996 008e 4023 movs r3, #64 7997 0090 0022 movs r2, #0 7998 0092 E254 strb r2, [r4, r3] 3575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7999 .loc 1 3575 5 view .LVU2515 8000 0094 0221 movs r1, #2 8001 0096 2000 movs r0, r4 8002 0098 FFF7FEFF bl I2C_Enable_IRQ 8003 .LVL571: 3577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8004 .loc 1 3577 5 view .LVU2516 3577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8005 .loc 1 3577 12 is_stmt 0 view .LVU2517 8006 009c 0020 movs r0, #0 8007 .LVL572: 8008 .L446: 3583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8009 .loc 1 3583 1 view .LVU2518 8010 009e 02B0 add sp, sp, #8 8011 @ sp needed 8012 .LVL573: 3583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8013 .loc 1 3583 1 view .LVU2519 8014 00a0 70BD pop {r4, r5, r6, pc} 8015 .LVL574: 8016 .L454: 3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8017 .loc 1 3514 12 view .LVU2520 8018 00a2 044B ldr r3, .L455+4 8019 00a4 EBE7 b .L450 ARM GAS /tmp/ccRVAHyi.s page 302 8020 .LVL575: 8021 .L451: 3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8022 .loc 1 3581 12 view .LVU2521 8023 00a6 0220 movs r0, #2 8024 .LVL576: 3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8025 .loc 1 3581 12 view .LVU2522 8026 00a8 F9E7 b .L446 8027 .LVL577: 8028 .L452: 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8029 .loc 1 3522 5 view .LVU2523 8030 00aa 0220 movs r0, #2 8031 .LVL578: 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8032 .loc 1 3522 5 view .LVU2524 8033 00ac F7E7 b .L446 8034 .L456: 8035 00ae C046 .align 2 8036 .L455: 8037 00b0 00000000 .word I2C_Master_ISR_IT 8038 00b4 00240080 .word -2147474432 8039 .cfi_endproc 8040 .LFE65: 8042 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8043 .align 1 8044 .global HAL_I2C_Master_Seq_Receive_DMA 8045 .syntax unified 8046 .code 16 8047 .thumb_func 8048 .fpu softvfp 8050 HAL_I2C_Master_Seq_Receive_DMA: 8051 .LVL579: 8052 .LFB66: 3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 8053 .loc 1 3599 1 is_stmt 1 view -0 8054 .cfi_startproc 8055 @ args = 4, pretend = 0, frame = 8 8056 @ frame_needed = 0, uses_anonymous_args = 0 3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 8057 .loc 1 3599 1 is_stmt 0 view .LVU2526 8058 0000 F0B5 push {r4, r5, r6, r7, lr} 8059 .LCFI58: 8060 .cfi_def_cfa_offset 20 8061 .cfi_offset 4, -20 8062 .cfi_offset 5, -16 8063 .cfi_offset 6, -12 8064 .cfi_offset 7, -8 8065 .cfi_offset 14, -4 8066 0002 85B0 sub sp, sp, #20 8067 .LCFI59: 8068 .cfi_def_cfa_offset 40 8069 0004 0400 movs r4, r0 8070 0006 0391 str r1, [sp, #12] 8071 0008 1500 movs r5, r2 3600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; ARM GAS /tmp/ccRVAHyi.s page 303 8072 .loc 1 3600 3 is_stmt 1 view .LVU2527 3601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8073 .loc 1 3601 3 view .LVU2528 8074 .LVL580: 3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8075 .loc 1 3602 3 view .LVU2529 3605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8076 .loc 1 3605 3 view .LVU2530 3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8077 .loc 1 3607 3 view .LVU2531 3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8078 .loc 1 3607 11 is_stmt 0 view .LVU2532 8079 000a 4122 movs r2, #65 8080 .LVL581: 3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8081 .loc 1 3607 11 view .LVU2533 8082 000c 825C ldrb r2, [r0, r2] 3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8083 .loc 1 3607 6 view .LVU2534 8084 000e 202A cmp r2, #32 8085 0010 00D0 beq .LCB7683 8086 0012 9DE0 b .L468 @long jump 8087 .LCB7683: 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8088 .loc 1 3610 5 is_stmt 1 view .LVU2535 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8089 .loc 1 3610 5 view .LVU2536 8090 0014 2032 adds r2, r2, #32 8091 0016 825C ldrb r2, [r0, r2] 8092 0018 012A cmp r2, #1 8093 001a 00D1 bne .LCB7689 8094 001c 9BE0 b .L469 @long jump 8095 .LCB7689: 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8096 .loc 1 3610 5 discriminator 2 view .LVU2537 8097 001e 4022 movs r2, #64 8098 0020 0121 movs r1, #1 8099 .LVL582: 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8100 .loc 1 3610 5 is_stmt 0 discriminator 2 view .LVU2538 8101 0022 8154 strb r1, [r0, r2] 3612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8102 .loc 1 3612 5 is_stmt 1 discriminator 2 view .LVU2539 3612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8103 .loc 1 3612 21 is_stmt 0 discriminator 2 view .LVU2540 8104 0024 0132 adds r2, r2, #1 8105 0026 2131 adds r1, r1, #33 8106 0028 8154 strb r1, [r0, r2] 3613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8107 .loc 1 3613 5 is_stmt 1 discriminator 2 view .LVU2541 3613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8108 .loc 1 3613 21 is_stmt 0 discriminator 2 view .LVU2542 8109 002a 0132 adds r2, r2, #1 8110 002c 1239 subs r1, r1, #18 8111 002e 8154 strb r1, [r0, r2] 3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8112 .loc 1 3614 5 is_stmt 1 discriminator 2 view .LVU2543 ARM GAS /tmp/ccRVAHyi.s page 304 3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8113 .loc 1 3614 21 is_stmt 0 discriminator 2 view .LVU2544 8114 0030 0022 movs r2, #0 8115 0032 4264 str r2, [r0, #68] 3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8116 .loc 1 3617 5 is_stmt 1 discriminator 2 view .LVU2545 3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8117 .loc 1 3617 23 is_stmt 0 discriminator 2 view .LVU2546 8118 0034 4562 str r5, [r0, #36] 3618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8119 .loc 1 3618 5 is_stmt 1 discriminator 2 view .LVU2547 3618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8120 .loc 1 3618 23 is_stmt 0 discriminator 2 view .LVU2548 8121 0036 4385 strh r3, [r0, #42] 3619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8122 .loc 1 3619 5 is_stmt 1 discriminator 2 view .LVU2549 3619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8123 .loc 1 3619 23 is_stmt 0 discriminator 2 view .LVU2550 8124 0038 0A9B ldr r3, [sp, #40] 8125 .LVL583: 3619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8126 .loc 1 3619 23 discriminator 2 view .LVU2551 8127 003a C362 str r3, [r0, #44] 8128 .LVL584: 3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8129 .loc 1 3620 5 is_stmt 1 discriminator 2 view .LVU2552 3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8130 .loc 1 3620 23 is_stmt 0 discriminator 2 view .LVU2553 8131 003c 474B ldr r3, .L474 8132 003e 4363 str r3, [r0, #52] 3623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8133 .loc 1 3623 5 is_stmt 1 discriminator 2 view .LVU2554 3623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8134 .loc 1 3623 13 is_stmt 0 discriminator 2 view .LVU2555 8135 0040 438D ldrh r3, [r0, #42] 8136 0042 9BB2 uxth r3, r3 3623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8137 .loc 1 3623 8 discriminator 2 view .LVU2556 8138 0044 FF2B cmp r3, #255 8139 0046 10D9 bls .L459 3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8140 .loc 1 3625 7 is_stmt 1 view .LVU2557 3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8141 .loc 1 3625 22 is_stmt 0 view .LVU2558 8142 0048 FF23 movs r3, #255 8143 004a 0385 strh r3, [r0, #40] 3626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8144 .loc 1 3626 7 is_stmt 1 view .LVU2559 8145 .LVL585: 3626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8146 .loc 1 3626 16 is_stmt 0 view .LVU2560 8147 004c 8027 movs r7, #128 8148 004e 7F04 lsls r7, r7, #17 8149 .LVL586: 8150 .L460: 3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8151 .loc 1 3637 5 is_stmt 1 view .LVU2561 ARM GAS /tmp/ccRVAHyi.s page 305 3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8152 .loc 1 3637 14 is_stmt 0 view .LVU2562 8153 0050 236B ldr r3, [r4, #48] 3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8154 .loc 1 3637 8 view .LVU2563 8155 0052 122B cmp r3, #18 8156 0054 0DD1 bne .L461 3638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8157 .loc 1 3638 10 view .LVU2564 8158 0056 0A9B ldr r3, [sp, #40] 8159 0058 AA2B cmp r3, #170 8160 005a 0AD0 beq .L461 3638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8161 .loc 1 3638 10 discriminator 2 view .LVU2565 8162 005c AA23 movs r3, #170 8163 005e 1B02 lsls r3, r3, #8 8164 0060 0A9A ldr r2, [sp, #40] 8165 0062 9A42 cmp r2, r3 8166 0064 05D0 beq .L461 3640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8167 .loc 1 3640 19 view .LVU2566 8168 0066 0026 movs r6, #0 8169 0068 0CE0 b .L462 8170 .LVL587: 8171 .L459: 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8172 .loc 1 3630 7 is_stmt 1 view .LVU2567 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8173 .loc 1 3630 28 is_stmt 0 view .LVU2568 8174 006a 438D ldrh r3, [r0, #42] 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8175 .loc 1 3630 22 view .LVU2569 8176 006c 0385 strh r3, [r0, #40] 3631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8177 .loc 1 3631 7 is_stmt 1 view .LVU2570 3631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8178 .loc 1 3631 16 is_stmt 0 view .LVU2571 8179 006e C76A ldr r7, [r0, #44] 8180 .LVL588: 3631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8181 .loc 1 3631 16 view .LVU2572 8182 0070 EEE7 b .L460 8183 .L461: 3645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8184 .loc 1 3645 7 is_stmt 1 view .LVU2573 8185 0072 2000 movs r0, r4 8186 .LVL589: 3645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8187 .loc 1 3645 7 is_stmt 0 view .LVU2574 8188 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 8189 .LVL590: 3648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8190 .loc 1 3648 7 is_stmt 1 view .LVU2575 3648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8191 .loc 1 3648 15 is_stmt 0 view .LVU2576 8192 0078 638D ldrh r3, [r4, #42] 8193 007a 9BB2 uxth r3, r3 ARM GAS /tmp/ccRVAHyi.s page 306 3648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8194 .loc 1 3648 10 view .LVU2577 8195 007c FF2B cmp r3, #255 8196 007e 28D8 bhi .L471 3650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8197 .loc 1 3650 9 is_stmt 1 view .LVU2578 3650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8198 .loc 1 3650 18 is_stmt 0 view .LVU2579 8199 0080 E76A ldr r7, [r4, #44] 8200 .LVL591: 3601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8201 .loc 1 3601 12 view .LVU2580 8202 0082 374E ldr r6, .L474+4 8203 .L462: 8204 .LVL592: 3654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8205 .loc 1 3654 5 is_stmt 1 view .LVU2581 3654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8206 .loc 1 3654 13 is_stmt 0 view .LVU2582 8207 0084 228D ldrh r2, [r4, #40] 3654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8208 .loc 1 3654 8 view .LVU2583 8209 0086 002A cmp r2, #0 8210 0088 4ED0 beq .L463 3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8211 .loc 1 3656 7 is_stmt 1 view .LVU2584 3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8212 .loc 1 3656 15 is_stmt 0 view .LVU2585 8213 008a E36B ldr r3, [r4, #60] 3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8214 .loc 1 3656 10 view .LVU2586 8215 008c 002B cmp r3, #0 8216 008e 22D0 beq .L464 3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8217 .loc 1 3659 9 is_stmt 1 view .LVU2587 3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8218 .loc 1 3659 40 is_stmt 0 view .LVU2588 8219 0090 344A ldr r2, .L474+8 8220 0092 9A62 str r2, [r3, #40] 3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8221 .loc 1 3662 9 is_stmt 1 view .LVU2589 3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8222 .loc 1 3662 13 is_stmt 0 view .LVU2590 8223 0094 E36B ldr r3, [r4, #60] 3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8224 .loc 1 3662 41 view .LVU2591 8225 0096 344A ldr r2, .L474+12 8226 0098 1A63 str r2, [r3, #48] 3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8227 .loc 1 3665 9 is_stmt 1 view .LVU2592 3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8228 .loc 1 3665 13 is_stmt 0 view .LVU2593 8229 009a E26B ldr r2, [r4, #60] 3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8230 .loc 1 3665 44 view .LVU2594 8231 009c 0023 movs r3, #0 8232 009e D362 str r3, [r2, #44] ARM GAS /tmp/ccRVAHyi.s page 307 3666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8233 .loc 1 3666 9 is_stmt 1 view .LVU2595 3666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8234 .loc 1 3666 13 is_stmt 0 view .LVU2596 8235 00a0 E26B ldr r2, [r4, #60] 3666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8236 .loc 1 3666 41 view .LVU2597 8237 00a2 5363 str r3, [r2, #52] 3669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8238 .loc 1 3669 9 is_stmt 1 view .LVU2598 3669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8239 .loc 1 3669 66 is_stmt 0 view .LVU2599 8240 00a4 2168 ldr r1, [r4] 8241 00a6 2431 adds r1, r1, #36 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8242 .loc 1 3670 46 view .LVU2600 8243 00a8 238D ldrh r3, [r4, #40] 3669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8244 .loc 1 3669 25 view .LVU2601 8245 00aa 2A00 movs r2, r5 8246 00ac E06B ldr r0, [r4, #60] 8247 00ae FFF7FEFF bl HAL_DMA_Start_IT 8248 .LVL593: 3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8249 .loc 1 3687 7 is_stmt 1 view .LVU2602 3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8250 .loc 1 3687 10 is_stmt 0 view .LVU2603 8251 00b2 0028 cmp r0, #0 8252 00b4 1DD0 beq .L473 3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8253 .loc 1 3710 9 is_stmt 1 view .LVU2604 3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8254 .loc 1 3710 25 is_stmt 0 view .LVU2605 8255 00b6 4123 movs r3, #65 8256 00b8 2022 movs r2, #32 8257 00ba E254 strb r2, [r4, r3] 3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8258 .loc 1 3711 9 is_stmt 1 view .LVU2606 3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8259 .loc 1 3711 25 is_stmt 0 view .LVU2607 8260 00bc 0022 movs r2, #0 8261 00be 0133 adds r3, r3, #1 8262 00c0 E254 strb r2, [r4, r3] 3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8263 .loc 1 3714 9 is_stmt 1 view .LVU2608 3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8264 .loc 1 3714 25 is_stmt 0 view .LVU2609 8265 00c2 636C ldr r3, [r4, #68] 8266 00c4 1021 movs r1, #16 8267 00c6 0B43 orrs r3, r1 8268 00c8 6364 str r3, [r4, #68] 3717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8269 .loc 1 3717 9 is_stmt 1 view .LVU2610 3717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8270 .loc 1 3717 9 view .LVU2611 8271 00ca 4023 movs r3, #64 8272 00cc E254 strb r2, [r4, r3] ARM GAS /tmp/ccRVAHyi.s page 308 3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8273 .loc 1 3719 9 view .LVU2612 3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8274 .loc 1 3719 16 is_stmt 0 view .LVU2613 8275 00ce 0120 movs r0, #1 8276 .LVL594: 3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8277 .loc 1 3719 16 view .LVU2614 8278 00d0 3FE0 b .L458 8279 .LVL595: 8280 .L471: 3601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8281 .loc 1 3601 12 view .LVU2615 8282 00d2 234E ldr r6, .L474+4 8283 00d4 D6E7 b .L462 8284 .LVL596: 8285 .L464: 3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8286 .loc 1 3675 9 is_stmt 1 view .LVU2616 3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8287 .loc 1 3675 25 is_stmt 0 view .LVU2617 8288 00d6 4123 movs r3, #65 8289 00d8 2022 movs r2, #32 8290 00da E254 strb r2, [r4, r3] 3676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8291 .loc 1 3676 9 is_stmt 1 view .LVU2618 3676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8292 .loc 1 3676 25 is_stmt 0 view .LVU2619 8293 00dc 0022 movs r2, #0 8294 00de 0133 adds r3, r3, #1 8295 00e0 E254 strb r2, [r4, r3] 3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8296 .loc 1 3679 9 is_stmt 1 view .LVU2620 3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8297 .loc 1 3679 25 is_stmt 0 view .LVU2621 8298 00e2 636C ldr r3, [r4, #68] 8299 00e4 8021 movs r1, #128 8300 00e6 0B43 orrs r3, r1 8301 00e8 6364 str r3, [r4, #68] 3682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8302 .loc 1 3682 9 is_stmt 1 view .LVU2622 3682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8303 .loc 1 3682 9 view .LVU2623 8304 00ea 4023 movs r3, #64 8305 00ec E254 strb r2, [r4, r3] 3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8306 .loc 1 3684 9 view .LVU2624 3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8307 .loc 1 3684 16 is_stmt 0 view .LVU2625 8308 00ee 0120 movs r0, #1 8309 00f0 2FE0 b .L458 8310 .LVL597: 8311 .L473: 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8312 .loc 1 3690 9 is_stmt 1 view .LVU2626 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8313 .loc 1 3690 59 is_stmt 0 view .LVU2627 ARM GAS /tmp/ccRVAHyi.s page 309 8314 00f2 228D ldrh r2, [r4, #40] 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8315 .loc 1 3690 9 view .LVU2628 8316 00f4 D2B2 uxtb r2, r2 8317 00f6 0096 str r6, [sp] 8318 00f8 3B00 movs r3, r7 8319 00fa 0399 ldr r1, [sp, #12] 8320 00fc 2000 movs r0, r4 8321 .LVL598: 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8322 .loc 1 3690 9 view .LVU2629 8323 00fe FFF7FEFF bl I2C_TransferConfig 8324 .LVL599: 3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8325 .loc 1 3693 9 is_stmt 1 view .LVU2630 3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8326 .loc 1 3693 25 is_stmt 0 view .LVU2631 8327 0102 638D ldrh r3, [r4, #42] 3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8328 .loc 1 3693 32 view .LVU2632 8329 0104 228D ldrh r2, [r4, #40] 3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8330 .loc 1 3693 25 view .LVU2633 8331 0106 9B1A subs r3, r3, r2 8332 0108 9BB2 uxth r3, r3 8333 010a 6385 strh r3, [r4, #42] 3696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8334 .loc 1 3696 9 is_stmt 1 view .LVU2634 3696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8335 .loc 1 3696 9 view .LVU2635 8336 010c 4023 movs r3, #64 8337 010e 0022 movs r2, #0 8338 0110 E254 strb r2, [r4, r3] 3702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8339 .loc 1 3702 9 view .LVU2636 8340 0112 1021 movs r1, #16 8341 0114 2000 movs r0, r4 8342 0116 FFF7FEFF bl I2C_Enable_IRQ 8343 .LVL600: 3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8344 .loc 1 3705 9 view .LVU2637 3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8345 .loc 1 3705 13 is_stmt 0 view .LVU2638 8346 011a 2268 ldr r2, [r4] 3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8347 .loc 1 3705 29 view .LVU2639 8348 011c 1168 ldr r1, [r2] 8349 011e 8023 movs r3, #128 8350 0120 1B02 lsls r3, r3, #8 8351 0122 0B43 orrs r3, r1 8352 0124 1360 str r3, [r2] 8353 0126 11E0 b .L467 8354 .L463: 3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8355 .loc 1 3725 7 is_stmt 1 view .LVU2640 3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8356 .loc 1 3725 21 is_stmt 0 view .LVU2641 ARM GAS /tmp/ccRVAHyi.s page 310 8357 0128 104B ldr r3, .L474+16 8358 012a 6363 str r3, [r4, #52] 3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8359 .loc 1 3729 7 is_stmt 1 view .LVU2642 8360 012c 8023 movs r3, #128 8361 012e D2B2 uxtb r2, r2 8362 0130 0B49 ldr r1, .L474+4 8363 0132 0091 str r1, [sp] 8364 0134 9B04 lsls r3, r3, #18 8365 0136 0399 ldr r1, [sp, #12] 8366 0138 2000 movs r0, r4 8367 013a FFF7FEFF bl I2C_TransferConfig 8368 .LVL601: 3733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8369 .loc 1 3733 7 view .LVU2643 3733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8370 .loc 1 3733 7 view .LVU2644 8371 013e 4023 movs r3, #64 8372 0140 0022 movs r2, #0 8373 0142 E254 strb r2, [r4, r3] 3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8374 .loc 1 3742 7 view .LVU2645 8375 0144 0121 movs r1, #1 8376 0146 2000 movs r0, r4 8377 0148 FFF7FEFF bl I2C_Enable_IRQ 8378 .LVL602: 8379 .L467: 3745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8380 .loc 1 3745 5 view .LVU2646 3745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8381 .loc 1 3745 12 is_stmt 0 view .LVU2647 8382 014c 0020 movs r0, #0 8383 014e 00E0 b .L458 8384 .LVL603: 8385 .L468: 3749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8386 .loc 1 3749 12 view .LVU2648 8387 0150 0220 movs r0, #2 8388 .LVL604: 8389 .L458: 3751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8390 .loc 1 3751 1 view .LVU2649 8391 0152 05B0 add sp, sp, #20 8392 @ sp needed 8393 .LVL605: 8394 .LVL606: 3751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8395 .loc 1 3751 1 view .LVU2650 8396 0154 F0BD pop {r4, r5, r6, r7, pc} 8397 .LVL607: 8398 .L469: 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8399 .loc 1 3610 5 view .LVU2651 8400 0156 0220 movs r0, #2 8401 .LVL608: 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8402 .loc 1 3610 5 view .LVU2652 ARM GAS /tmp/ccRVAHyi.s page 311 8403 0158 FBE7 b .L458 8404 .L475: 8405 015a C046 .align 2 8406 .L474: 8407 015c 00000000 .word I2C_Master_ISR_DMA 8408 0160 00240080 .word -2147474432 8409 0164 00000000 .word I2C_DMAMasterReceiveCplt 8410 0168 00000000 .word I2C_DMAError 8411 016c 00000000 .word I2C_Master_ISR_IT 8412 .cfi_endproc 8413 .LFE66: 8415 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8416 .align 1 8417 .global HAL_I2C_Slave_Seq_Transmit_IT 8418 .syntax unified 8419 .code 16 8420 .thumb_func 8421 .fpu softvfp 8423 HAL_I2C_Slave_Seq_Transmit_IT: 8424 .LVL609: 8425 .LFB67: 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 8426 .loc 1 3765 1 is_stmt 1 view -0 8427 .cfi_startproc 8428 @ args = 0, pretend = 0, frame = 0 8429 @ frame_needed = 0, uses_anonymous_args = 0 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 8430 .loc 1 3765 1 is_stmt 0 view .LVU2654 8431 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8432 .LCFI60: 8433 .cfi_def_cfa_offset 24 8434 .cfi_offset 3, -24 8435 .cfi_offset 4, -20 8436 .cfi_offset 5, -16 8437 .cfi_offset 6, -12 8438 .cfi_offset 7, -8 8439 .cfi_offset 14, -4 8440 0002 0400 movs r4, r0 8441 0004 0D00 movs r5, r1 8442 0006 1600 movs r6, r2 8443 0008 1F00 movs r7, r3 3767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8444 .loc 1 3767 3 is_stmt 1 view .LVU2655 3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8445 .loc 1 3769 3 view .LVU2656 3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8446 .loc 1 3769 22 is_stmt 0 view .LVU2657 8447 000a 4123 movs r3, #65 8448 .LVL610: 3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8449 .loc 1 3769 22 view .LVU2658 8450 000c C35C ldrb r3, [r0, r3] 3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8451 .loc 1 3769 6 view .LVU2659 8452 000e 2822 movs r2, #40 8453 .LVL611: 3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 312 8454 .loc 1 3769 6 view .LVU2660 8455 0010 1340 ands r3, r2 8456 0012 282B cmp r3, #40 8457 0014 53D1 bne .L482 3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8458 .loc 1 3771 5 is_stmt 1 view .LVU2661 3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8459 .loc 1 3771 8 is_stmt 0 view .LVU2662 8460 0016 0029 cmp r1, #0 8461 0018 01D0 beq .L478 3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8462 .loc 1 3771 25 discriminator 1 view .LVU2663 8463 001a 002E cmp r6, #0 8464 001c 04D1 bne .L479 8465 .L478: 3773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 8466 .loc 1 3773 7 is_stmt 1 view .LVU2664 3773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 8467 .loc 1 3773 23 is_stmt 0 view .LVU2665 8468 001e 8023 movs r3, #128 8469 0020 9B00 lsls r3, r3, #2 8470 0022 6364 str r3, [r4, #68] 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8471 .loc 1 3774 7 is_stmt 1 view .LVU2666 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8472 .loc 1 3774 15 is_stmt 0 view .LVU2667 8473 0024 0120 movs r0, #1 8474 .LVL612: 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8475 .loc 1 3774 15 view .LVU2668 8476 0026 4BE0 b .L477 8477 .LVL613: 8478 .L479: 3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8479 .loc 1 3778 5 is_stmt 1 view .LVU2669 8480 0028 2749 ldr r1, .L485 8481 .LVL614: 3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8482 .loc 1 3778 5 is_stmt 0 view .LVU2670 8483 002a FFF7FEFF bl I2C_Disable_IRQ 8484 .LVL615: 3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8485 .loc 1 3781 5 is_stmt 1 view .LVU2671 3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8486 .loc 1 3781 5 view .LVU2672 8487 002e 4023 movs r3, #64 8488 0030 E35C ldrb r3, [r4, r3] 8489 0032 012B cmp r3, #1 8490 0034 45D0 beq .L483 3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8491 .loc 1 3781 5 discriminator 2 view .LVU2673 8492 0036 4023 movs r3, #64 8493 0038 0122 movs r2, #1 8494 003a E254 strb r2, [r4, r3] 3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8495 .loc 1 3785 5 discriminator 2 view .LVU2674 3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 313 8496 .loc 1 3785 13 is_stmt 0 discriminator 2 view .LVU2675 8497 003c 0133 adds r3, r3, #1 8498 003e E35C ldrb r3, [r4, r3] 3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8499 .loc 1 3785 8 discriminator 2 view .LVU2676 8500 0040 2A2B cmp r3, #42 8501 0042 22D0 beq .L484 8502 .L480: 3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8503 .loc 1 3811 5 is_stmt 1 view .LVU2677 3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8504 .loc 1 3811 21 is_stmt 0 view .LVU2678 8505 0044 4123 movs r3, #65 8506 0046 2922 movs r2, #41 8507 0048 E254 strb r2, [r4, r3] 3812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8508 .loc 1 3812 5 is_stmt 1 view .LVU2679 3812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8509 .loc 1 3812 21 is_stmt 0 view .LVU2680 8510 004a 0133 adds r3, r3, #1 8511 004c 093A subs r2, r2, #9 8512 004e E254 strb r2, [r4, r3] 3813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8513 .loc 1 3813 5 is_stmt 1 view .LVU2681 3813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8514 .loc 1 3813 21 is_stmt 0 view .LVU2682 8515 0050 0023 movs r3, #0 8516 0052 6364 str r3, [r4, #68] 3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8517 .loc 1 3816 5 is_stmt 1 view .LVU2683 3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8518 .loc 1 3816 9 is_stmt 0 view .LVU2684 8519 0054 2268 ldr r2, [r4] 3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8520 .loc 1 3816 25 view .LVU2685 8521 0056 5368 ldr r3, [r2, #4] 8522 0058 1C49 ldr r1, .L485+4 8523 005a 0B40 ands r3, r1 8524 005c 5360 str r3, [r2, #4] 3819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8525 .loc 1 3819 5 is_stmt 1 view .LVU2686 3819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8526 .loc 1 3819 23 is_stmt 0 view .LVU2687 8527 005e 6562 str r5, [r4, #36] 3820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8528 .loc 1 3820 5 is_stmt 1 view .LVU2688 3820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8529 .loc 1 3820 23 is_stmt 0 view .LVU2689 8530 0060 6685 strh r6, [r4, #42] 3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8531 .loc 1 3821 5 is_stmt 1 view .LVU2690 3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8532 .loc 1 3821 29 is_stmt 0 view .LVU2691 8533 0062 638D ldrh r3, [r4, #42] 3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8534 .loc 1 3821 23 view .LVU2692 8535 0064 2385 strh r3, [r4, #40] ARM GAS /tmp/ccRVAHyi.s page 314 3822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8536 .loc 1 3822 5 is_stmt 1 view .LVU2693 3822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8537 .loc 1 3822 23 is_stmt 0 view .LVU2694 8538 0066 E762 str r7, [r4, #44] 3823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8539 .loc 1 3823 5 is_stmt 1 view .LVU2695 3823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8540 .loc 1 3823 23 is_stmt 0 view .LVU2696 8541 0068 194B ldr r3, .L485+8 8542 006a 6363 str r3, [r4, #52] 3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8543 .loc 1 3825 5 is_stmt 1 view .LVU2697 3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8544 .loc 1 3825 9 is_stmt 0 view .LVU2698 8545 006c 2368 ldr r3, [r4] 8546 006e 9A69 ldr r2, [r3, #24] 3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8547 .loc 1 3825 8 view .LVU2699 8548 0070 D203 lsls r2, r2, #15 8549 0072 01D5 bpl .L481 3829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8550 .loc 1 3829 7 is_stmt 1 view .LVU2700 8551 0074 0822 movs r2, #8 8552 0076 DA61 str r2, [r3, #28] 8553 .L481: 3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8554 .loc 1 3833 5 view .LVU2701 3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8555 .loc 1 3833 5 view .LVU2702 8556 0078 4023 movs r3, #64 8557 007a 0022 movs r2, #0 8558 007c E254 strb r2, [r4, r3] 3839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8559 .loc 1 3839 5 view .LVU2703 8560 007e 1249 ldr r1, .L485 8561 0080 2000 movs r0, r4 8562 0082 FFF7FEFF bl I2C_Enable_IRQ 8563 .LVL616: 3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8564 .loc 1 3841 5 view .LVU2704 3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8565 .loc 1 3841 12 is_stmt 0 view .LVU2705 8566 0086 0020 movs r0, #0 8567 0088 1AE0 b .L477 8568 .L484: 3788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8569 .loc 1 3788 7 is_stmt 1 view .LVU2706 8570 008a 0221 movs r1, #2 8571 008c 2000 movs r0, r4 8572 008e FFF7FEFF bl I2C_Disable_IRQ 8573 .LVL617: 3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8574 .loc 1 3791 7 view .LVU2707 3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8575 .loc 1 3791 16 is_stmt 0 view .LVU2708 8576 0092 2368 ldr r3, [r4] ARM GAS /tmp/ccRVAHyi.s page 315 3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8577 .loc 1 3791 26 view .LVU2709 8578 0094 1A68 ldr r2, [r3] 3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8579 .loc 1 3791 10 view .LVU2710 8580 0096 1204 lsls r2, r2, #16 8581 0098 D4D5 bpl .L480 3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8582 .loc 1 3793 9 is_stmt 1 view .LVU2711 3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8583 .loc 1 3793 29 is_stmt 0 view .LVU2712 8584 009a 1A68 ldr r2, [r3] 8585 009c 0B49 ldr r1, .L485+4 8586 009e 0A40 ands r2, r1 8587 00a0 1A60 str r2, [r3] 3795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8588 .loc 1 3795 9 is_stmt 1 view .LVU2713 3795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8589 .loc 1 3795 17 is_stmt 0 view .LVU2714 8590 00a2 E36B ldr r3, [r4, #60] 3795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8591 .loc 1 3795 12 view .LVU2715 8592 00a4 002B cmp r3, #0 8593 00a6 CDD0 beq .L480 3799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8594 .loc 1 3799 11 is_stmt 1 view .LVU2716 3799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8595 .loc 1 3799 43 is_stmt 0 view .LVU2717 8596 00a8 0A4A ldr r2, .L485+12 8597 00aa 5A63 str r2, [r3, #52] 3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8598 .loc 1 3802 11 is_stmt 1 view .LVU2718 3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8599 .loc 1 3802 15 is_stmt 0 view .LVU2719 8600 00ac E06B ldr r0, [r4, #60] 8601 00ae FFF7FEFF bl HAL_DMA_Abort_IT 8602 .LVL618: 3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8603 .loc 1 3802 14 view .LVU2720 8604 00b2 0028 cmp r0, #0 8605 00b4 C6D0 beq .L480 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8606 .loc 1 3805 13 is_stmt 1 view .LVU2721 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8607 .loc 1 3805 17 is_stmt 0 view .LVU2722 8608 00b6 E06B ldr r0, [r4, #60] 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8609 .loc 1 3805 25 view .LVU2723 8610 00b8 436B ldr r3, [r0, #52] 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8611 .loc 1 3805 13 view .LVU2724 8612 00ba 9847 blx r3 8613 .LVL619: 8614 00bc C2E7 b .L480 8615 .LVL620: 8616 .L482: 3845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccRVAHyi.s page 316 8617 .loc 1 3845 12 view .LVU2725 8618 00be 0120 movs r0, #1 8619 .LVL621: 8620 .L477: 3847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8621 .loc 1 3847 1 view .LVU2726 8622 @ sp needed 8623 .LVL622: 8624 .LVL623: 8625 .LVL624: 3847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8626 .loc 1 3847 1 view .LVU2727 8627 00c0 F8BD pop {r3, r4, r5, r6, r7, pc} 8628 .LVL625: 8629 .L483: 3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8630 .loc 1 3781 5 view .LVU2728 8631 00c2 0220 movs r0, #2 8632 00c4 FCE7 b .L477 8633 .L486: 8634 00c6 C046 .align 2 8635 .L485: 8636 00c8 01800000 .word 32769 8637 00cc FF7FFFFF .word -32769 8638 00d0 00000000 .word I2C_Slave_ISR_IT 8639 00d4 00000000 .word I2C_DMAAbort 8640 .cfi_endproc 8641 .LFE67: 8643 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8644 .align 1 8645 .global HAL_I2C_Slave_Seq_Transmit_DMA 8646 .syntax unified 8647 .code 16 8648 .thumb_func 8649 .fpu softvfp 8651 HAL_I2C_Slave_Seq_Transmit_DMA: 8652 .LVL626: 8653 .LFB68: 3861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8654 .loc 1 3861 1 is_stmt 1 view -0 8655 .cfi_startproc 8656 @ args = 0, pretend = 0, frame = 0 8657 @ frame_needed = 0, uses_anonymous_args = 0 3861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8658 .loc 1 3861 1 is_stmt 0 view .LVU2730 8659 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8660 .LCFI61: 8661 .cfi_def_cfa_offset 24 8662 .cfi_offset 3, -24 8663 .cfi_offset 4, -20 8664 .cfi_offset 5, -16 8665 .cfi_offset 6, -12 8666 .cfi_offset 7, -8 8667 .cfi_offset 14, -4 8668 0002 0400 movs r4, r0 8669 0004 0D00 movs r5, r1 8670 0006 1600 movs r6, r2 ARM GAS /tmp/ccRVAHyi.s page 317 8671 0008 1F00 movs r7, r3 3862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8672 .loc 1 3862 3 is_stmt 1 view .LVU2731 3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8673 .loc 1 3865 3 view .LVU2732 3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8674 .loc 1 3867 3 view .LVU2733 3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8675 .loc 1 3867 22 is_stmt 0 view .LVU2734 8676 000a 4123 movs r3, #65 8677 .LVL627: 3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8678 .loc 1 3867 22 view .LVU2735 8679 000c C35C ldrb r3, [r0, r3] 3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8680 .loc 1 3867 6 view .LVU2736 8681 000e 2822 movs r2, #40 8682 .LVL628: 3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8683 .loc 1 3867 6 view .LVU2737 8684 0010 1340 ands r3, r2 8685 0012 282B cmp r3, #40 8686 0014 00D0 beq .LCB8249 8687 0016 AFE0 b .L498 @long jump 8688 .LCB8249: 3869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8689 .loc 1 3869 5 is_stmt 1 view .LVU2738 3869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8690 .loc 1 3869 8 is_stmt 0 view .LVU2739 8691 0018 0029 cmp r1, #0 8692 001a 4CD0 beq .L489 3869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8693 .loc 1 3869 25 discriminator 1 view .LVU2740 8694 001c 002E cmp r6, #0 8695 001e 4AD0 beq .L489 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8696 .loc 1 3876 5 is_stmt 1 view .LVU2741 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8697 .loc 1 3876 5 view .LVU2742 8698 0020 4023 movs r3, #64 8699 0022 C35C ldrb r3, [r0, r3] 8700 0024 012B cmp r3, #1 8701 0026 00D1 bne .LCB8260 8702 0028 A9E0 b .L499 @long jump 8703 .LCB8260: 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8704 .loc 1 3876 5 discriminator 2 view .LVU2743 8705 002a 4023 movs r3, #64 8706 002c 0122 movs r2, #1 8707 002e C254 strb r2, [r0, r3] 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8708 .loc 1 3879 5 discriminator 2 view .LVU2744 8709 0030 5449 ldr r1, .L503 8710 .LVL629: 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8711 .loc 1 3879 5 is_stmt 0 discriminator 2 view .LVU2745 8712 0032 FFF7FEFF bl I2C_Disable_IRQ ARM GAS /tmp/ccRVAHyi.s page 318 8713 .LVL630: 3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8714 .loc 1 3883 5 is_stmt 1 discriminator 2 view .LVU2746 3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8715 .loc 1 3883 13 is_stmt 0 discriminator 2 view .LVU2747 8716 0036 4123 movs r3, #65 8717 0038 E35C ldrb r3, [r4, r3] 3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8718 .loc 1 3883 8 discriminator 2 view .LVU2748 8719 003a 2A2B cmp r3, #42 8720 003c 40D0 beq .L501 3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8721 .loc 1 3908 10 is_stmt 1 view .LVU2749 3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8722 .loc 1 3908 18 is_stmt 0 view .LVU2750 8723 003e 4123 movs r3, #65 8724 0040 E35C ldrb r3, [r4, r3] 3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8725 .loc 1 3908 13 view .LVU2751 8726 0042 292B cmp r3, #41 8727 0044 57D0 beq .L502 8728 .L492: 3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8729 .loc 1 3933 5 is_stmt 1 view .LVU2752 3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8730 .loc 1 3935 5 view .LVU2753 3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8731 .loc 1 3935 21 is_stmt 0 view .LVU2754 8732 0046 4123 movs r3, #65 8733 0048 2922 movs r2, #41 8734 004a E254 strb r2, [r4, r3] 3936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8735 .loc 1 3936 5 is_stmt 1 view .LVU2755 3936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8736 .loc 1 3936 21 is_stmt 0 view .LVU2756 8737 004c 0133 adds r3, r3, #1 8738 004e 093A subs r2, r2, #9 8739 0050 E254 strb r2, [r4, r3] 3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8740 .loc 1 3937 5 is_stmt 1 view .LVU2757 3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8741 .loc 1 3937 21 is_stmt 0 view .LVU2758 8742 0052 0023 movs r3, #0 8743 0054 6364 str r3, [r4, #68] 3940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8744 .loc 1 3940 5 is_stmt 1 view .LVU2759 3940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8745 .loc 1 3940 9 is_stmt 0 view .LVU2760 8746 0056 2268 ldr r2, [r4] 3940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8747 .loc 1 3940 25 view .LVU2761 8748 0058 5368 ldr r3, [r2, #4] 8749 005a 4B49 ldr r1, .L503+4 8750 005c 0B40 ands r3, r1 8751 005e 5360 str r3, [r2, #4] 3943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8752 .loc 1 3943 5 is_stmt 1 view .LVU2762 ARM GAS /tmp/ccRVAHyi.s page 319 3943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8753 .loc 1 3943 23 is_stmt 0 view .LVU2763 8754 0060 6562 str r5, [r4, #36] 3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8755 .loc 1 3944 5 is_stmt 1 view .LVU2764 3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8756 .loc 1 3944 23 is_stmt 0 view .LVU2765 8757 0062 6685 strh r6, [r4, #42] 3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8758 .loc 1 3945 5 is_stmt 1 view .LVU2766 3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8759 .loc 1 3945 29 is_stmt 0 view .LVU2767 8760 0064 638D ldrh r3, [r4, #42] 3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8761 .loc 1 3945 23 view .LVU2768 8762 0066 2385 strh r3, [r4, #40] 3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8763 .loc 1 3946 5 is_stmt 1 view .LVU2769 3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8764 .loc 1 3946 23 is_stmt 0 view .LVU2770 8765 0068 E762 str r7, [r4, #44] 3947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8766 .loc 1 3947 5 is_stmt 1 view .LVU2771 3947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8767 .loc 1 3947 23 is_stmt 0 view .LVU2772 8768 006a 484B ldr r3, .L503+8 8769 006c 6363 str r3, [r4, #52] 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8770 .loc 1 3949 5 is_stmt 1 view .LVU2773 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8771 .loc 1 3949 13 is_stmt 0 view .LVU2774 8772 006e A36B ldr r3, [r4, #56] 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8773 .loc 1 3949 8 view .LVU2775 8774 0070 002B cmp r3, #0 8775 0072 56D0 beq .L493 3952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8776 .loc 1 3952 7 is_stmt 1 view .LVU2776 3952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8777 .loc 1 3952 38 is_stmt 0 view .LVU2777 8778 0074 464A ldr r2, .L503+12 8779 0076 9A62 str r2, [r3, #40] 3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8780 .loc 1 3955 7 is_stmt 1 view .LVU2778 3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8781 .loc 1 3955 11 is_stmt 0 view .LVU2779 8782 0078 A36B ldr r3, [r4, #56] 3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8783 .loc 1 3955 39 view .LVU2780 8784 007a 464A ldr r2, .L503+16 8785 007c 1A63 str r2, [r3, #48] 3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8786 .loc 1 3958 7 is_stmt 1 view .LVU2781 3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8787 .loc 1 3958 11 is_stmt 0 view .LVU2782 8788 007e A26B ldr r2, [r4, #56] 3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; ARM GAS /tmp/ccRVAHyi.s page 320 8789 .loc 1 3958 42 view .LVU2783 8790 0080 0023 movs r3, #0 8791 0082 D362 str r3, [r2, #44] 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8792 .loc 1 3959 7 is_stmt 1 view .LVU2784 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8793 .loc 1 3959 11 is_stmt 0 view .LVU2785 8794 0084 A26B ldr r2, [r4, #56] 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8795 .loc 1 3959 39 view .LVU2786 8796 0086 5363 str r3, [r2, #52] 3962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8797 .loc 1 3962 7 is_stmt 1 view .LVU2787 3962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8798 .loc 1 3962 81 is_stmt 0 view .LVU2788 8799 0088 2268 ldr r2, [r4] 8800 008a 2832 adds r2, r2, #40 3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8801 .loc 1 3963 44 view .LVU2789 8802 008c 238D ldrh r3, [r4, #40] 3962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8803 .loc 1 3962 23 view .LVU2790 8804 008e 2900 movs r1, r5 8805 0090 A06B ldr r0, [r4, #56] 8806 0092 FFF7FEFF bl HAL_DMA_Start_IT 8807 .LVL631: 8808 0096 051E subs r5, r0, #0 8809 .LVL632: 3980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8810 .loc 1 3980 5 is_stmt 1 view .LVU2791 3980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8811 .loc 1 3980 8 is_stmt 0 view .LVU2792 8812 0098 51D0 beq .L494 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8813 .loc 1 3991 7 is_stmt 1 view .LVU2793 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8814 .loc 1 3991 23 is_stmt 0 view .LVU2794 8815 009a 4123 movs r3, #65 8816 009c 2822 movs r2, #40 8817 009e E254 strb r2, [r4, r3] 3992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8818 .loc 1 3992 7 is_stmt 1 view .LVU2795 3992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8819 .loc 1 3992 23 is_stmt 0 view .LVU2796 8820 00a0 0022 movs r2, #0 8821 00a2 0133 adds r3, r3, #1 8822 00a4 E254 strb r2, [r4, r3] 3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8823 .loc 1 3995 7 is_stmt 1 view .LVU2797 3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8824 .loc 1 3995 23 is_stmt 0 view .LVU2798 8825 00a6 636C ldr r3, [r4, #68] 8826 00a8 1021 movs r1, #16 8827 00aa 0B43 orrs r3, r1 8828 00ac 6364 str r3, [r4, #68] 3998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8829 .loc 1 3998 7 is_stmt 1 view .LVU2799 ARM GAS /tmp/ccRVAHyi.s page 321 3998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8830 .loc 1 3998 7 view .LVU2800 8831 00ae 4023 movs r3, #64 8832 00b0 E254 strb r2, [r4, r3] 4000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8833 .loc 1 4000 7 view .LVU2801 4000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8834 .loc 1 4000 14 is_stmt 0 view .LVU2802 8835 00b2 0125 movs r5, #1 8836 00b4 61E0 b .L488 8837 .LVL633: 8838 .L489: 3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 8839 .loc 1 3871 7 is_stmt 1 view .LVU2803 3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 8840 .loc 1 3871 23 is_stmt 0 view .LVU2804 8841 00b6 8023 movs r3, #128 8842 00b8 9B00 lsls r3, r3, #2 8843 00ba 6364 str r3, [r4, #68] 3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8844 .loc 1 3872 7 is_stmt 1 view .LVU2805 3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8845 .loc 1 3872 15 is_stmt 0 view .LVU2806 8846 00bc 0125 movs r5, #1 8847 00be 5CE0 b .L488 8848 .LVL634: 8849 .L501: 3886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8850 .loc 1 3886 7 is_stmt 1 view .LVU2807 8851 00c0 0221 movs r1, #2 8852 00c2 2000 movs r0, r4 8853 00c4 FFF7FEFF bl I2C_Disable_IRQ 8854 .LVL635: 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8855 .loc 1 3888 7 view .LVU2808 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8856 .loc 1 3888 16 is_stmt 0 view .LVU2809 8857 00c8 2368 ldr r3, [r4] 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8858 .loc 1 3888 26 view .LVU2810 8859 00ca 1A68 ldr r2, [r3] 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8860 .loc 1 3888 10 view .LVU2811 8861 00cc 1204 lsls r2, r2, #16 8862 00ce BAD5 bpl .L492 3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8863 .loc 1 3891 9 is_stmt 1 view .LVU2812 3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8864 .loc 1 3891 12 is_stmt 0 view .LVU2813 8865 00d0 E26B ldr r2, [r4, #60] 8866 00d2 002A cmp r2, #0 8867 00d4 B7D0 beq .L492 3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8868 .loc 1 3893 11 is_stmt 1 view .LVU2814 3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8869 .loc 1 3893 31 is_stmt 0 view .LVU2815 8870 00d6 1A68 ldr r2, [r3] ARM GAS /tmp/ccRVAHyi.s page 322 8871 00d8 2B49 ldr r1, .L503+4 8872 00da 0A40 ands r2, r1 8873 00dc 1A60 str r2, [r3] 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8874 .loc 1 3897 11 is_stmt 1 view .LVU2816 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8875 .loc 1 3897 15 is_stmt 0 view .LVU2817 8876 00de E36B ldr r3, [r4, #60] 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8877 .loc 1 3897 43 view .LVU2818 8878 00e0 2D4A ldr r2, .L503+20 8879 00e2 5A63 str r2, [r3, #52] 3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8880 .loc 1 3900 11 is_stmt 1 view .LVU2819 3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8881 .loc 1 3900 15 is_stmt 0 view .LVU2820 8882 00e4 E06B ldr r0, [r4, #60] 8883 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 8884 .LVL636: 3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8885 .loc 1 3900 14 view .LVU2821 8886 00ea 0028 cmp r0, #0 8887 00ec ABD0 beq .L492 3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8888 .loc 1 3903 13 is_stmt 1 view .LVU2822 3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8889 .loc 1 3903 17 is_stmt 0 view .LVU2823 8890 00ee E06B ldr r0, [r4, #60] 3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8891 .loc 1 3903 25 view .LVU2824 8892 00f0 436B ldr r3, [r0, #52] 3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8893 .loc 1 3903 13 view .LVU2825 8894 00f2 9847 blx r3 8895 .LVL637: 8896 00f4 A7E7 b .L492 8897 .L502: 3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8898 .loc 1 3910 7 is_stmt 1 view .LVU2826 3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8899 .loc 1 3910 16 is_stmt 0 view .LVU2827 8900 00f6 2368 ldr r3, [r4] 3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8901 .loc 1 3910 26 view .LVU2828 8902 00f8 1A68 ldr r2, [r3] 3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8903 .loc 1 3910 10 view .LVU2829 8904 00fa 5204 lsls r2, r2, #17 8905 00fc A3D5 bpl .L492 3912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8906 .loc 1 3912 9 is_stmt 1 view .LVU2830 3912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8907 .loc 1 3912 29 is_stmt 0 view .LVU2831 8908 00fe 1A68 ldr r2, [r3] 8909 0100 2649 ldr r1, .L503+24 8910 0102 0A40 ands r2, r1 8911 0104 1A60 str r2, [r3] ARM GAS /tmp/ccRVAHyi.s page 323 3915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8912 .loc 1 3915 9 is_stmt 1 view .LVU2832 3915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8913 .loc 1 3915 17 is_stmt 0 view .LVU2833 8914 0106 A36B ldr r3, [r4, #56] 3915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8915 .loc 1 3915 12 view .LVU2834 8916 0108 002B cmp r3, #0 8917 010a 9CD0 beq .L492 3919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8918 .loc 1 3919 11 is_stmt 1 view .LVU2835 3919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8919 .loc 1 3919 43 is_stmt 0 view .LVU2836 8920 010c 224A ldr r2, .L503+20 8921 010e 5A63 str r2, [r3, #52] 3922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8922 .loc 1 3922 11 is_stmt 1 view .LVU2837 3922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8923 .loc 1 3922 15 is_stmt 0 view .LVU2838 8924 0110 A06B ldr r0, [r4, #56] 8925 0112 FFF7FEFF bl HAL_DMA_Abort_IT 8926 .LVL638: 3922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8927 .loc 1 3922 14 view .LVU2839 8928 0116 0028 cmp r0, #0 8929 0118 95D0 beq .L492 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8930 .loc 1 3925 13 is_stmt 1 view .LVU2840 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8931 .loc 1 3925 17 is_stmt 0 view .LVU2841 8932 011a A06B ldr r0, [r4, #56] 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8933 .loc 1 3925 25 view .LVU2842 8934 011c 436B ldr r3, [r0, #52] 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8935 .loc 1 3925 13 view .LVU2843 8936 011e 9847 blx r3 8937 .LVL639: 8938 0120 91E7 b .L492 8939 .L493: 3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8940 .loc 1 3968 7 is_stmt 1 view .LVU2844 3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8941 .loc 1 3968 23 is_stmt 0 view .LVU2845 8942 0122 4123 movs r3, #65 8943 0124 2822 movs r2, #40 8944 0126 E254 strb r2, [r4, r3] 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8945 .loc 1 3969 7 is_stmt 1 view .LVU2846 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8946 .loc 1 3969 23 is_stmt 0 view .LVU2847 8947 0128 0022 movs r2, #0 8948 012a 0133 adds r3, r3, #1 8949 012c E254 strb r2, [r4, r3] 3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8950 .loc 1 3972 7 is_stmt 1 view .LVU2848 3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 324 8951 .loc 1 3972 23 is_stmt 0 view .LVU2849 8952 012e 636C ldr r3, [r4, #68] 8953 0130 8021 movs r1, #128 8954 0132 0B43 orrs r3, r1 8955 0134 6364 str r3, [r4, #68] 3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8956 .loc 1 3975 7 is_stmt 1 view .LVU2850 3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8957 .loc 1 3975 7 view .LVU2851 8958 0136 4023 movs r3, #64 8959 0138 E254 strb r2, [r4, r3] 3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8960 .loc 1 3977 7 view .LVU2852 3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8961 .loc 1 3977 14 is_stmt 0 view .LVU2853 8962 013a 0125 movs r5, #1 8963 .LVL640: 3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8964 .loc 1 3977 14 view .LVU2854 8965 013c 1DE0 b .L488 8966 .LVL641: 8967 .L494: 3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8968 .loc 1 3983 7 is_stmt 1 view .LVU2855 3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8969 .loc 1 3983 23 is_stmt 0 view .LVU2856 8970 013e 638D ldrh r3, [r4, #42] 3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8971 .loc 1 3983 30 view .LVU2857 8972 0140 228D ldrh r2, [r4, #40] 3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8973 .loc 1 3983 23 view .LVU2858 8974 0142 9B1A subs r3, r3, r2 8975 0144 9BB2 uxth r3, r3 8976 0146 6385 strh r3, [r4, #42] 3986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8977 .loc 1 3986 7 is_stmt 1 view .LVU2859 3986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8978 .loc 1 3986 22 is_stmt 0 view .LVU2860 8979 0148 0023 movs r3, #0 8980 014a 2385 strh r3, [r4, #40] 4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8981 .loc 1 4003 5 is_stmt 1 view .LVU2861 4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8982 .loc 1 4003 9 is_stmt 0 view .LVU2862 8983 014c 2368 ldr r3, [r4] 8984 014e 9A69 ldr r2, [r3, #24] 4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8985 .loc 1 4003 8 view .LVU2863 8986 0150 D203 lsls r2, r2, #15 8987 0152 0ED4 bmi .L496 8988 .L497: 4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8989 .loc 1 4011 5 is_stmt 1 view .LVU2864 4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8990 .loc 1 4011 5 view .LVU2865 8991 0154 4023 movs r3, #64 ARM GAS /tmp/ccRVAHyi.s page 325 8992 0156 0022 movs r2, #0 8993 0158 E254 strb r2, [r4, r3] 4017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8994 .loc 1 4017 5 view .LVU2866 8995 015a 8021 movs r1, #128 8996 015c 0902 lsls r1, r1, #8 8997 015e 2000 movs r0, r4 8998 .LVL642: 4017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8999 .loc 1 4017 5 is_stmt 0 view .LVU2867 9000 0160 FFF7FEFF bl I2C_Enable_IRQ 9001 .LVL643: 4020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9002 .loc 1 4020 5 is_stmt 1 view .LVU2868 4020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9003 .loc 1 4020 9 is_stmt 0 view .LVU2869 9004 0164 2268 ldr r2, [r4] 4020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9005 .loc 1 4020 25 view .LVU2870 9006 0166 1168 ldr r1, [r2] 9007 0168 8023 movs r3, #128 9008 016a DB01 lsls r3, r3, #7 9009 016c 0B43 orrs r3, r1 9010 016e 1360 str r3, [r2] 4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9011 .loc 1 4022 5 is_stmt 1 view .LVU2871 4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9012 .loc 1 4022 12 is_stmt 0 view .LVU2872 9013 0170 03E0 b .L488 9014 .LVL644: 9015 .L496: 4007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9016 .loc 1 4007 7 is_stmt 1 view .LVU2873 9017 0172 0822 movs r2, #8 9018 0174 DA61 str r2, [r3, #28] 9019 0176 EDE7 b .L497 9020 .LVL645: 9021 .L498: 4026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9022 .loc 1 4026 12 is_stmt 0 view .LVU2874 9023 0178 0125 movs r5, #1 9024 .LVL646: 9025 .L488: 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9026 .loc 1 4028 1 view .LVU2875 9027 017a 2800 movs r0, r5 9028 @ sp needed 9029 .LVL647: 9030 .LVL648: 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9031 .loc 1 4028 1 view .LVU2876 9032 017c F8BD pop {r3, r4, r5, r6, r7, pc} 9033 .LVL649: 9034 .L499: 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9035 .loc 1 3876 5 view .LVU2877 9036 017e 0225 movs r5, #2 ARM GAS /tmp/ccRVAHyi.s page 326 9037 0180 FBE7 b .L488 9038 .L504: 9039 0182 C046 .align 2 9040 .L503: 9041 0184 01800000 .word 32769 9042 0188 FF7FFFFF .word -32769 9043 018c 00000000 .word I2C_Slave_ISR_DMA 9044 0190 00000000 .word I2C_DMASlaveTransmitCplt 9045 0194 00000000 .word I2C_DMAError 9046 0198 00000000 .word I2C_DMAAbort 9047 019c FFBFFFFF .word -16385 9048 .cfi_endproc 9049 .LFE68: 9051 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9052 .align 1 9053 .global HAL_I2C_Slave_Seq_Receive_IT 9054 .syntax unified 9055 .code 16 9056 .thumb_func 9057 .fpu softvfp 9059 HAL_I2C_Slave_Seq_Receive_IT: 9060 .LVL650: 9061 .LFB69: 4042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 9062 .loc 1 4042 1 is_stmt 1 view -0 9063 .cfi_startproc 9064 @ args = 0, pretend = 0, frame = 0 9065 @ frame_needed = 0, uses_anonymous_args = 0 4042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 9066 .loc 1 4042 1 is_stmt 0 view .LVU2879 9067 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9068 .LCFI62: 9069 .cfi_def_cfa_offset 24 9070 .cfi_offset 3, -24 9071 .cfi_offset 4, -20 9072 .cfi_offset 5, -16 9073 .cfi_offset 6, -12 9074 .cfi_offset 7, -8 9075 .cfi_offset 14, -4 9076 0002 0400 movs r4, r0 9077 0004 0D00 movs r5, r1 9078 0006 1600 movs r6, r2 9079 0008 1F00 movs r7, r3 4044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9080 .loc 1 4044 3 is_stmt 1 view .LVU2880 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9081 .loc 1 4046 3 view .LVU2881 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9082 .loc 1 4046 22 is_stmt 0 view .LVU2882 9083 000a 4123 movs r3, #65 9084 .LVL651: 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9085 .loc 1 4046 22 view .LVU2883 9086 000c C35C ldrb r3, [r0, r3] 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9087 .loc 1 4046 6 view .LVU2884 9088 000e 2822 movs r2, #40 ARM GAS /tmp/ccRVAHyi.s page 327 9089 .LVL652: 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9090 .loc 1 4046 6 view .LVU2885 9091 0010 1340 ands r3, r2 9092 0012 282B cmp r3, #40 9093 0014 53D1 bne .L511 4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9094 .loc 1 4048 5 is_stmt 1 view .LVU2886 4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9095 .loc 1 4048 8 is_stmt 0 view .LVU2887 9096 0016 0029 cmp r1, #0 9097 0018 01D0 beq .L507 4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9098 .loc 1 4048 25 discriminator 1 view .LVU2888 9099 001a 002E cmp r6, #0 9100 001c 04D1 bne .L508 9101 .L507: 4050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9102 .loc 1 4050 7 is_stmt 1 view .LVU2889 4050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9103 .loc 1 4050 23 is_stmt 0 view .LVU2890 9104 001e 8023 movs r3, #128 9105 0020 9B00 lsls r3, r3, #2 9106 0022 6364 str r3, [r4, #68] 4051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9107 .loc 1 4051 7 is_stmt 1 view .LVU2891 4051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9108 .loc 1 4051 15 is_stmt 0 view .LVU2892 9109 0024 0120 movs r0, #1 9110 .LVL653: 4051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9111 .loc 1 4051 15 view .LVU2893 9112 0026 4BE0 b .L506 9113 .LVL654: 9114 .L508: 4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9115 .loc 1 4055 5 is_stmt 1 view .LVU2894 9116 0028 2749 ldr r1, .L514 9117 .LVL655: 4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9118 .loc 1 4055 5 is_stmt 0 view .LVU2895 9119 002a FFF7FEFF bl I2C_Disable_IRQ 9120 .LVL656: 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9121 .loc 1 4058 5 is_stmt 1 view .LVU2896 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9122 .loc 1 4058 5 view .LVU2897 9123 002e 4023 movs r3, #64 9124 0030 E35C ldrb r3, [r4, r3] 9125 0032 012B cmp r3, #1 9126 0034 45D0 beq .L512 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9127 .loc 1 4058 5 discriminator 2 view .LVU2898 9128 0036 4023 movs r3, #64 9129 0038 0122 movs r2, #1 9130 003a E254 strb r2, [r4, r3] 4062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 328 9131 .loc 1 4062 5 discriminator 2 view .LVU2899 4062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9132 .loc 1 4062 13 is_stmt 0 discriminator 2 view .LVU2900 9133 003c 0133 adds r3, r3, #1 9134 003e E35C ldrb r3, [r4, r3] 4062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9135 .loc 1 4062 8 discriminator 2 view .LVU2901 9136 0040 292B cmp r3, #41 9137 0042 22D0 beq .L513 9138 .L509: 4088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9139 .loc 1 4088 5 is_stmt 1 view .LVU2902 4088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9140 .loc 1 4088 21 is_stmt 0 view .LVU2903 9141 0044 4123 movs r3, #65 9142 0046 2A22 movs r2, #42 9143 0048 E254 strb r2, [r4, r3] 4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9144 .loc 1 4089 5 is_stmt 1 view .LVU2904 4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9145 .loc 1 4089 21 is_stmt 0 view .LVU2905 9146 004a 0133 adds r3, r3, #1 9147 004c 0A3A subs r2, r2, #10 9148 004e E254 strb r2, [r4, r3] 4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9149 .loc 1 4090 5 is_stmt 1 view .LVU2906 4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9150 .loc 1 4090 21 is_stmt 0 view .LVU2907 9151 0050 0023 movs r3, #0 9152 0052 6364 str r3, [r4, #68] 4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9153 .loc 1 4093 5 is_stmt 1 view .LVU2908 4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9154 .loc 1 4093 9 is_stmt 0 view .LVU2909 9155 0054 2268 ldr r2, [r4] 4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9156 .loc 1 4093 25 view .LVU2910 9157 0056 5368 ldr r3, [r2, #4] 9158 0058 1C49 ldr r1, .L514+4 9159 005a 0B40 ands r3, r1 9160 005c 5360 str r3, [r2, #4] 4096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9161 .loc 1 4096 5 is_stmt 1 view .LVU2911 4096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9162 .loc 1 4096 23 is_stmt 0 view .LVU2912 9163 005e 6562 str r5, [r4, #36] 4097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9164 .loc 1 4097 5 is_stmt 1 view .LVU2913 4097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9165 .loc 1 4097 23 is_stmt 0 view .LVU2914 9166 0060 6685 strh r6, [r4, #42] 4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9167 .loc 1 4098 5 is_stmt 1 view .LVU2915 4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9168 .loc 1 4098 29 is_stmt 0 view .LVU2916 9169 0062 638D ldrh r3, [r4, #42] 4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; ARM GAS /tmp/ccRVAHyi.s page 329 9170 .loc 1 4098 23 view .LVU2917 9171 0064 2385 strh r3, [r4, #40] 4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9172 .loc 1 4099 5 is_stmt 1 view .LVU2918 4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9173 .loc 1 4099 23 is_stmt 0 view .LVU2919 9174 0066 E762 str r7, [r4, #44] 4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9175 .loc 1 4100 5 is_stmt 1 view .LVU2920 4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9176 .loc 1 4100 23 is_stmt 0 view .LVU2921 9177 0068 194B ldr r3, .L514+8 9178 006a 6363 str r3, [r4, #52] 4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9179 .loc 1 4102 5 is_stmt 1 view .LVU2922 4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9180 .loc 1 4102 9 is_stmt 0 view .LVU2923 9181 006c 2368 ldr r3, [r4] 9182 006e 9A69 ldr r2, [r3, #24] 4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9183 .loc 1 4102 8 view .LVU2924 9184 0070 D203 lsls r2, r2, #15 9185 0072 01D4 bmi .L510 4106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9186 .loc 1 4106 7 is_stmt 1 view .LVU2925 9187 0074 0822 movs r2, #8 9188 0076 DA61 str r2, [r3, #28] 9189 .L510: 4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9190 .loc 1 4110 5 view .LVU2926 4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9191 .loc 1 4110 5 view .LVU2927 9192 0078 4023 movs r3, #64 9193 007a 0022 movs r2, #0 9194 007c E254 strb r2, [r4, r3] 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9195 .loc 1 4116 5 view .LVU2928 9196 007e 1249 ldr r1, .L514 9197 0080 2000 movs r0, r4 9198 0082 FFF7FEFF bl I2C_Enable_IRQ 9199 .LVL657: 4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9200 .loc 1 4118 5 view .LVU2929 4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9201 .loc 1 4118 12 is_stmt 0 view .LVU2930 9202 0086 0020 movs r0, #0 9203 0088 1AE0 b .L506 9204 .L513: 4065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9205 .loc 1 4065 7 is_stmt 1 view .LVU2931 9206 008a 0121 movs r1, #1 9207 008c 2000 movs r0, r4 9208 008e FFF7FEFF bl I2C_Disable_IRQ 9209 .LVL658: 4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9210 .loc 1 4067 7 view .LVU2932 4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 330 9211 .loc 1 4067 16 is_stmt 0 view .LVU2933 9212 0092 2368 ldr r3, [r4] 4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9213 .loc 1 4067 26 view .LVU2934 9214 0094 1A68 ldr r2, [r3] 4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9215 .loc 1 4067 10 view .LVU2935 9216 0096 5204 lsls r2, r2, #17 9217 0098 D4D5 bpl .L509 4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9218 .loc 1 4069 9 is_stmt 1 view .LVU2936 4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9219 .loc 1 4069 29 is_stmt 0 view .LVU2937 9220 009a 1A68 ldr r2, [r3] 9221 009c 0D49 ldr r1, .L514+12 9222 009e 0A40 ands r2, r1 9223 00a0 1A60 str r2, [r3] 4072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9224 .loc 1 4072 9 is_stmt 1 view .LVU2938 4072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9225 .loc 1 4072 17 is_stmt 0 view .LVU2939 9226 00a2 A36B ldr r3, [r4, #56] 4072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9227 .loc 1 4072 12 view .LVU2940 9228 00a4 002B cmp r3, #0 9229 00a6 CDD0 beq .L509 4076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9230 .loc 1 4076 11 is_stmt 1 view .LVU2941 4076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9231 .loc 1 4076 43 is_stmt 0 view .LVU2942 9232 00a8 0B4A ldr r2, .L514+16 9233 00aa 5A63 str r2, [r3, #52] 4079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9234 .loc 1 4079 11 is_stmt 1 view .LVU2943 4079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9235 .loc 1 4079 15 is_stmt 0 view .LVU2944 9236 00ac A06B ldr r0, [r4, #56] 9237 00ae FFF7FEFF bl HAL_DMA_Abort_IT 9238 .LVL659: 4079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9239 .loc 1 4079 14 view .LVU2945 9240 00b2 0028 cmp r0, #0 9241 00b4 C6D0 beq .L509 4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9242 .loc 1 4082 13 is_stmt 1 view .LVU2946 4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9243 .loc 1 4082 17 is_stmt 0 view .LVU2947 9244 00b6 A06B ldr r0, [r4, #56] 4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9245 .loc 1 4082 25 view .LVU2948 9246 00b8 436B ldr r3, [r0, #52] 4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9247 .loc 1 4082 13 view .LVU2949 9248 00ba 9847 blx r3 9249 .LVL660: 9250 00bc C2E7 b .L509 9251 .LVL661: ARM GAS /tmp/ccRVAHyi.s page 331 9252 .L511: 4122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9253 .loc 1 4122 12 view .LVU2950 9254 00be 0120 movs r0, #1 9255 .LVL662: 9256 .L506: 4124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9257 .loc 1 4124 1 view .LVU2951 9258 @ sp needed 9259 .LVL663: 9260 .LVL664: 9261 .LVL665: 4124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9262 .loc 1 4124 1 view .LVU2952 9263 00c0 F8BD pop {r3, r4, r5, r6, r7, pc} 9264 .LVL666: 9265 .L512: 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9266 .loc 1 4058 5 view .LVU2953 9267 00c2 0220 movs r0, #2 9268 00c4 FCE7 b .L506 9269 .L515: 9270 00c6 C046 .align 2 9271 .L514: 9272 00c8 02800000 .word 32770 9273 00cc FF7FFFFF .word -32769 9274 00d0 00000000 .word I2C_Slave_ISR_IT 9275 00d4 FFBFFFFF .word -16385 9276 00d8 00000000 .word I2C_DMAAbort 9277 .cfi_endproc 9278 .LFE69: 9280 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9281 .align 1 9282 .global HAL_I2C_Slave_Seq_Receive_DMA 9283 .syntax unified 9284 .code 16 9285 .thumb_func 9286 .fpu softvfp 9288 HAL_I2C_Slave_Seq_Receive_DMA: 9289 .LVL667: 9290 .LFB70: 4138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9291 .loc 1 4138 1 is_stmt 1 view -0 9292 .cfi_startproc 9293 @ args = 0, pretend = 0, frame = 0 9294 @ frame_needed = 0, uses_anonymous_args = 0 4138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9295 .loc 1 4138 1 is_stmt 0 view .LVU2955 9296 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9297 .LCFI63: 9298 .cfi_def_cfa_offset 24 9299 .cfi_offset 3, -24 9300 .cfi_offset 4, -20 9301 .cfi_offset 5, -16 9302 .cfi_offset 6, -12 9303 .cfi_offset 7, -8 9304 .cfi_offset 14, -4 ARM GAS /tmp/ccRVAHyi.s page 332 9305 0002 0400 movs r4, r0 9306 0004 0D00 movs r5, r1 9307 0006 1600 movs r6, r2 9308 0008 1F00 movs r7, r3 4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9309 .loc 1 4139 3 is_stmt 1 view .LVU2956 4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9310 .loc 1 4142 3 view .LVU2957 4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9311 .loc 1 4144 3 view .LVU2958 4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9312 .loc 1 4144 22 is_stmt 0 view .LVU2959 9313 000a 4123 movs r3, #65 9314 .LVL668: 4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9315 .loc 1 4144 22 view .LVU2960 9316 000c C35C ldrb r3, [r0, r3] 4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9317 .loc 1 4144 6 view .LVU2961 9318 000e 2822 movs r2, #40 9319 .LVL669: 4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9320 .loc 1 4144 6 view .LVU2962 9321 0010 1340 ands r3, r2 9322 0012 282B cmp r3, #40 9323 0014 00D0 beq .LCB8829 9324 0016 AEE0 b .L527 @long jump 9325 .LCB8829: 4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9326 .loc 1 4146 5 is_stmt 1 view .LVU2963 4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9327 .loc 1 4146 8 is_stmt 0 view .LVU2964 9328 0018 0029 cmp r1, #0 9329 001a 01D0 beq .L518 4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9330 .loc 1 4146 25 discriminator 1 view .LVU2965 9331 001c 002E cmp r6, #0 9332 001e 04D1 bne .L519 9333 .L518: 4148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9334 .loc 1 4148 7 is_stmt 1 view .LVU2966 4148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9335 .loc 1 4148 23 is_stmt 0 view .LVU2967 9336 0020 8023 movs r3, #128 9337 0022 9B00 lsls r3, r3, #2 9338 0024 6364 str r3, [r4, #68] 4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9339 .loc 1 4149 7 is_stmt 1 view .LVU2968 4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9340 .loc 1 4149 15 is_stmt 0 view .LVU2969 9341 0026 0125 movs r5, #1 9342 0028 A6E0 b .L517 9343 .L519: 4153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9344 .loc 1 4153 5 is_stmt 1 view .LVU2970 9345 002a 5549 ldr r1, .L532 9346 .LVL670: ARM GAS /tmp/ccRVAHyi.s page 333 4153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9347 .loc 1 4153 5 is_stmt 0 view .LVU2971 9348 002c FFF7FEFF bl I2C_Disable_IRQ 9349 .LVL671: 4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9350 .loc 1 4156 5 is_stmt 1 view .LVU2972 4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9351 .loc 1 4156 5 view .LVU2973 9352 0030 4023 movs r3, #64 9353 0032 E35C ldrb r3, [r4, r3] 9354 0034 012B cmp r3, #1 9355 0036 00D1 bne .LCB8858 9356 0038 A0E0 b .L528 @long jump 9357 .LCB8858: 4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9358 .loc 1 4156 5 discriminator 2 view .LVU2974 9359 003a 4023 movs r3, #64 9360 003c 0122 movs r2, #1 9361 003e E254 strb r2, [r4, r3] 4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9362 .loc 1 4160 5 discriminator 2 view .LVU2975 4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9363 .loc 1 4160 13 is_stmt 0 discriminator 2 view .LVU2976 9364 0040 0133 adds r3, r3, #1 9365 0042 E35C ldrb r3, [r4, r3] 4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9366 .loc 1 4160 8 discriminator 2 view .LVU2977 9367 0044 292B cmp r3, #41 9368 0046 3BD0 beq .L530 4185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9369 .loc 1 4185 10 is_stmt 1 view .LVU2978 4185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9370 .loc 1 4185 18 is_stmt 0 view .LVU2979 9371 0048 4123 movs r3, #65 9372 004a E35C ldrb r3, [r4, r3] 4185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9373 .loc 1 4185 13 view .LVU2980 9374 004c 2A2B cmp r3, #42 9375 004e 52D0 beq .L531 9376 .L521: 4210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9377 .loc 1 4210 5 is_stmt 1 view .LVU2981 4212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9378 .loc 1 4212 5 view .LVU2982 4212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9379 .loc 1 4212 21 is_stmt 0 view .LVU2983 9380 0050 4123 movs r3, #65 9381 0052 2A22 movs r2, #42 9382 0054 E254 strb r2, [r4, r3] 4213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9383 .loc 1 4213 5 is_stmt 1 view .LVU2984 4213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9384 .loc 1 4213 21 is_stmt 0 view .LVU2985 9385 0056 0133 adds r3, r3, #1 9386 0058 0A3A subs r2, r2, #10 9387 005a E254 strb r2, [r4, r3] 4214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 334 9388 .loc 1 4214 5 is_stmt 1 view .LVU2986 4214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9389 .loc 1 4214 21 is_stmt 0 view .LVU2987 9390 005c 0023 movs r3, #0 9391 005e 6364 str r3, [r4, #68] 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9392 .loc 1 4217 5 is_stmt 1 view .LVU2988 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9393 .loc 1 4217 9 is_stmt 0 view .LVU2989 9394 0060 2268 ldr r2, [r4] 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9395 .loc 1 4217 25 view .LVU2990 9396 0062 5368 ldr r3, [r2, #4] 9397 0064 4749 ldr r1, .L532+4 9398 0066 0B40 ands r3, r1 9399 0068 5360 str r3, [r2, #4] 4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9400 .loc 1 4220 5 is_stmt 1 view .LVU2991 4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9401 .loc 1 4220 23 is_stmt 0 view .LVU2992 9402 006a 6562 str r5, [r4, #36] 4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9403 .loc 1 4221 5 is_stmt 1 view .LVU2993 4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9404 .loc 1 4221 23 is_stmt 0 view .LVU2994 9405 006c 6685 strh r6, [r4, #42] 4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9406 .loc 1 4222 5 is_stmt 1 view .LVU2995 4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9407 .loc 1 4222 29 is_stmt 0 view .LVU2996 9408 006e 638D ldrh r3, [r4, #42] 4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9409 .loc 1 4222 23 view .LVU2997 9410 0070 2385 strh r3, [r4, #40] 4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9411 .loc 1 4223 5 is_stmt 1 view .LVU2998 4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9412 .loc 1 4223 23 is_stmt 0 view .LVU2999 9413 0072 E762 str r7, [r4, #44] 4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9414 .loc 1 4224 5 is_stmt 1 view .LVU3000 4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9415 .loc 1 4224 23 is_stmt 0 view .LVU3001 9416 0074 444B ldr r3, .L532+8 9417 0076 6363 str r3, [r4, #52] 4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9418 .loc 1 4226 5 is_stmt 1 view .LVU3002 4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9419 .loc 1 4226 13 is_stmt 0 view .LVU3003 9420 0078 E36B ldr r3, [r4, #60] 4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9421 .loc 1 4226 8 view .LVU3004 9422 007a 002B cmp r3, #0 9423 007c 51D0 beq .L522 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9424 .loc 1 4229 7 is_stmt 1 view .LVU3005 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 335 9425 .loc 1 4229 38 is_stmt 0 view .LVU3006 9426 007e 434A ldr r2, .L532+12 9427 0080 9A62 str r2, [r3, #40] 4232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9428 .loc 1 4232 7 is_stmt 1 view .LVU3007 4232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9429 .loc 1 4232 11 is_stmt 0 view .LVU3008 9430 0082 E36B ldr r3, [r4, #60] 4232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9431 .loc 1 4232 39 view .LVU3009 9432 0084 424A ldr r2, .L532+16 9433 0086 1A63 str r2, [r3, #48] 4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9434 .loc 1 4235 7 is_stmt 1 view .LVU3010 4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9435 .loc 1 4235 11 is_stmt 0 view .LVU3011 9436 0088 E26B ldr r2, [r4, #60] 4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9437 .loc 1 4235 42 view .LVU3012 9438 008a 0023 movs r3, #0 9439 008c D362 str r3, [r2, #44] 4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9440 .loc 1 4236 7 is_stmt 1 view .LVU3013 4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9441 .loc 1 4236 11 is_stmt 0 view .LVU3014 9442 008e E26B ldr r2, [r4, #60] 4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9443 .loc 1 4236 39 view .LVU3015 9444 0090 5363 str r3, [r2, #52] 4239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9445 .loc 1 4239 7 is_stmt 1 view .LVU3016 4239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9446 .loc 1 4239 64 is_stmt 0 view .LVU3017 9447 0092 2168 ldr r1, [r4] 9448 0094 2431 adds r1, r1, #36 4240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9449 .loc 1 4240 61 view .LVU3018 9450 0096 238D ldrh r3, [r4, #40] 4239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9451 .loc 1 4239 23 view .LVU3019 9452 0098 2A00 movs r2, r5 9453 009a E06B ldr r0, [r4, #60] 9454 009c FFF7FEFF bl HAL_DMA_Start_IT 9455 .LVL672: 9456 00a0 051E subs r5, r0, #0 9457 .LVL673: 4257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9458 .loc 1 4257 5 is_stmt 1 view .LVU3020 4257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9459 .loc 1 4257 8 is_stmt 0 view .LVU3021 9460 00a2 4CD0 beq .L523 4268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9461 .loc 1 4268 7 is_stmt 1 view .LVU3022 4268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9462 .loc 1 4268 23 is_stmt 0 view .LVU3023 9463 00a4 4123 movs r3, #65 9464 00a6 2822 movs r2, #40 ARM GAS /tmp/ccRVAHyi.s page 336 9465 00a8 E254 strb r2, [r4, r3] 4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9466 .loc 1 4269 7 is_stmt 1 view .LVU3024 4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9467 .loc 1 4269 23 is_stmt 0 view .LVU3025 9468 00aa 0022 movs r2, #0 9469 00ac 0133 adds r3, r3, #1 9470 00ae E254 strb r2, [r4, r3] 4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9471 .loc 1 4272 7 is_stmt 1 view .LVU3026 4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9472 .loc 1 4272 23 is_stmt 0 view .LVU3027 9473 00b0 636C ldr r3, [r4, #68] 9474 00b2 1021 movs r1, #16 9475 00b4 0B43 orrs r3, r1 9476 00b6 6364 str r3, [r4, #68] 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9477 .loc 1 4275 7 is_stmt 1 view .LVU3028 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9478 .loc 1 4275 7 view .LVU3029 9479 00b8 4023 movs r3, #64 9480 00ba E254 strb r2, [r4, r3] 4277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9481 .loc 1 4277 7 view .LVU3030 4277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9482 .loc 1 4277 14 is_stmt 0 view .LVU3031 9483 00bc 0125 movs r5, #1 9484 00be 5BE0 b .L517 9485 .LVL674: 9486 .L530: 4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9487 .loc 1 4163 7 is_stmt 1 view .LVU3032 9488 00c0 0121 movs r1, #1 9489 00c2 2000 movs r0, r4 9490 00c4 FFF7FEFF bl I2C_Disable_IRQ 9491 .LVL675: 4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9492 .loc 1 4165 7 view .LVU3033 4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9493 .loc 1 4165 16 is_stmt 0 view .LVU3034 9494 00c8 2368 ldr r3, [r4] 4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9495 .loc 1 4165 26 view .LVU3035 9496 00ca 1A68 ldr r2, [r3] 4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9497 .loc 1 4165 10 view .LVU3036 9498 00cc 5204 lsls r2, r2, #17 9499 00ce BFD5 bpl .L521 4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9500 .loc 1 4168 9 is_stmt 1 view .LVU3037 4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9501 .loc 1 4168 12 is_stmt 0 view .LVU3038 9502 00d0 A26B ldr r2, [r4, #56] 9503 00d2 002A cmp r2, #0 9504 00d4 BCD0 beq .L521 4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9505 .loc 1 4170 11 is_stmt 1 view .LVU3039 ARM GAS /tmp/ccRVAHyi.s page 337 4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9506 .loc 1 4170 31 is_stmt 0 view .LVU3040 9507 00d6 1A68 ldr r2, [r3] 9508 00d8 2E49 ldr r1, .L532+20 9509 00da 0A40 ands r2, r1 9510 00dc 1A60 str r2, [r3] 4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9511 .loc 1 4174 11 is_stmt 1 view .LVU3041 4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9512 .loc 1 4174 15 is_stmt 0 view .LVU3042 9513 00de A36B ldr r3, [r4, #56] 4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9514 .loc 1 4174 43 view .LVU3043 9515 00e0 2D4A ldr r2, .L532+24 9516 00e2 5A63 str r2, [r3, #52] 4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9517 .loc 1 4177 11 is_stmt 1 view .LVU3044 4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9518 .loc 1 4177 15 is_stmt 0 view .LVU3045 9519 00e4 A06B ldr r0, [r4, #56] 9520 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 9521 .LVL676: 4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9522 .loc 1 4177 14 view .LVU3046 9523 00ea 0028 cmp r0, #0 9524 00ec B0D0 beq .L521 4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9525 .loc 1 4180 13 is_stmt 1 view .LVU3047 4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9526 .loc 1 4180 17 is_stmt 0 view .LVU3048 9527 00ee A06B ldr r0, [r4, #56] 4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9528 .loc 1 4180 25 view .LVU3049 9529 00f0 436B ldr r3, [r0, #52] 4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9530 .loc 1 4180 13 view .LVU3050 9531 00f2 9847 blx r3 9532 .LVL677: 9533 00f4 ACE7 b .L521 9534 .L531: 4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9535 .loc 1 4187 7 is_stmt 1 view .LVU3051 4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9536 .loc 1 4187 16 is_stmt 0 view .LVU3052 9537 00f6 2368 ldr r3, [r4] 4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9538 .loc 1 4187 26 view .LVU3053 9539 00f8 1A68 ldr r2, [r3] 4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9540 .loc 1 4187 10 view .LVU3054 9541 00fa 1204 lsls r2, r2, #16 9542 00fc A8D5 bpl .L521 4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9543 .loc 1 4189 9 is_stmt 1 view .LVU3055 4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9544 .loc 1 4189 29 is_stmt 0 view .LVU3056 9545 00fe 1A68 ldr r2, [r3] ARM GAS /tmp/ccRVAHyi.s page 338 9546 0100 2049 ldr r1, .L532+4 9547 0102 0A40 ands r2, r1 9548 0104 1A60 str r2, [r3] 4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9549 .loc 1 4192 9 is_stmt 1 view .LVU3057 4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9550 .loc 1 4192 17 is_stmt 0 view .LVU3058 9551 0106 E36B ldr r3, [r4, #60] 4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9552 .loc 1 4192 12 view .LVU3059 9553 0108 002B cmp r3, #0 9554 010a A1D0 beq .L521 4196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9555 .loc 1 4196 11 is_stmt 1 view .LVU3060 4196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9556 .loc 1 4196 43 is_stmt 0 view .LVU3061 9557 010c 224A ldr r2, .L532+24 9558 010e 5A63 str r2, [r3, #52] 4199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9559 .loc 1 4199 11 is_stmt 1 view .LVU3062 4199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9560 .loc 1 4199 15 is_stmt 0 view .LVU3063 9561 0110 E06B ldr r0, [r4, #60] 9562 0112 FFF7FEFF bl HAL_DMA_Abort_IT 9563 .LVL678: 4199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9564 .loc 1 4199 14 view .LVU3064 9565 0116 0028 cmp r0, #0 9566 0118 9AD0 beq .L521 4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9567 .loc 1 4202 13 is_stmt 1 view .LVU3065 4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9568 .loc 1 4202 17 is_stmt 0 view .LVU3066 9569 011a E06B ldr r0, [r4, #60] 4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9570 .loc 1 4202 25 view .LVU3067 9571 011c 436B ldr r3, [r0, #52] 4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9572 .loc 1 4202 13 view .LVU3068 9573 011e 9847 blx r3 9574 .LVL679: 9575 0120 96E7 b .L521 9576 .L522: 4245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9577 .loc 1 4245 7 is_stmt 1 view .LVU3069 4245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9578 .loc 1 4245 23 is_stmt 0 view .LVU3070 9579 0122 4123 movs r3, #65 9580 0124 2822 movs r2, #40 9581 0126 E254 strb r2, [r4, r3] 4246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9582 .loc 1 4246 7 is_stmt 1 view .LVU3071 4246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9583 .loc 1 4246 23 is_stmt 0 view .LVU3072 9584 0128 0022 movs r2, #0 9585 012a 0133 adds r3, r3, #1 9586 012c E254 strb r2, [r4, r3] ARM GAS /tmp/ccRVAHyi.s page 339 4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9587 .loc 1 4249 7 is_stmt 1 view .LVU3073 4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9588 .loc 1 4249 23 is_stmt 0 view .LVU3074 9589 012e 636C ldr r3, [r4, #68] 9590 0130 8021 movs r1, #128 9591 0132 0B43 orrs r3, r1 9592 0134 6364 str r3, [r4, #68] 4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9593 .loc 1 4252 7 is_stmt 1 view .LVU3075 4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9594 .loc 1 4252 7 view .LVU3076 9595 0136 4023 movs r3, #64 9596 0138 E254 strb r2, [r4, r3] 4254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9597 .loc 1 4254 7 view .LVU3077 4254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9598 .loc 1 4254 14 is_stmt 0 view .LVU3078 9599 013a 0125 movs r5, #1 9600 .LVL680: 4254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9601 .loc 1 4254 14 view .LVU3079 9602 013c 1CE0 b .L517 9603 .LVL681: 9604 .L523: 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9605 .loc 1 4260 7 is_stmt 1 view .LVU3080 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9606 .loc 1 4260 23 is_stmt 0 view .LVU3081 9607 013e 638D ldrh r3, [r4, #42] 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9608 .loc 1 4260 30 view .LVU3082 9609 0140 228D ldrh r2, [r4, #40] 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9610 .loc 1 4260 23 view .LVU3083 9611 0142 9B1A subs r3, r3, r2 9612 0144 9BB2 uxth r3, r3 9613 0146 6385 strh r3, [r4, #42] 4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9614 .loc 1 4263 7 is_stmt 1 view .LVU3084 4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9615 .loc 1 4263 22 is_stmt 0 view .LVU3085 9616 0148 0023 movs r3, #0 9617 014a 2385 strh r3, [r4, #40] 4280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9618 .loc 1 4280 5 is_stmt 1 view .LVU3086 4280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9619 .loc 1 4280 9 is_stmt 0 view .LVU3087 9620 014c 2368 ldr r3, [r4] 9621 014e 9A69 ldr r2, [r3, #24] 4280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9622 .loc 1 4280 8 view .LVU3088 9623 0150 D203 lsls r2, r2, #15 9624 0152 0DD5 bpl .L525 9625 .L526: 4288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9626 .loc 1 4288 5 is_stmt 1 view .LVU3089 ARM GAS /tmp/ccRVAHyi.s page 340 4288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9627 .loc 1 4288 5 view .LVU3090 9628 0154 4023 movs r3, #64 9629 0156 0022 movs r2, #0 9630 0158 E254 strb r2, [r4, r3] 4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9631 .loc 1 4294 5 view .LVU3091 9632 015a 0949 ldr r1, .L532 9633 015c 2000 movs r0, r4 9634 .LVL682: 4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9635 .loc 1 4294 5 is_stmt 0 view .LVU3092 9636 015e FFF7FEFF bl I2C_Enable_IRQ 9637 .LVL683: 4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9638 .loc 1 4297 5 is_stmt 1 view .LVU3093 4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9639 .loc 1 4297 9 is_stmt 0 view .LVU3094 9640 0162 2268 ldr r2, [r4] 4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9641 .loc 1 4297 25 view .LVU3095 9642 0164 1168 ldr r1, [r2] 9643 0166 8023 movs r3, #128 9644 0168 1B02 lsls r3, r3, #8 9645 016a 0B43 orrs r3, r1 9646 016c 1360 str r3, [r2] 4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9647 .loc 1 4299 5 is_stmt 1 view .LVU3096 4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9648 .loc 1 4299 12 is_stmt 0 view .LVU3097 9649 016e 03E0 b .L517 9650 .LVL684: 9651 .L525: 4284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9652 .loc 1 4284 7 is_stmt 1 view .LVU3098 9653 0170 0822 movs r2, #8 9654 0172 DA61 str r2, [r3, #28] 9655 0174 EEE7 b .L526 9656 .LVL685: 9657 .L527: 4303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9658 .loc 1 4303 12 is_stmt 0 view .LVU3099 9659 0176 0125 movs r5, #1 9660 .LVL686: 9661 .L517: 4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9662 .loc 1 4305 1 view .LVU3100 9663 0178 2800 movs r0, r5 9664 @ sp needed 9665 .LVL687: 9666 .LVL688: 4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9667 .loc 1 4305 1 view .LVU3101 9668 017a F8BD pop {r3, r4, r5, r6, r7, pc} 9669 .LVL689: 9670 .L528: 4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 341 9671 .loc 1 4156 5 view .LVU3102 9672 017c 0225 movs r5, #2 9673 .LVL690: 4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9674 .loc 1 4156 5 view .LVU3103 9675 017e FBE7 b .L517 9676 .L533: 9677 .align 2 9678 .L532: 9679 0180 02800000 .word 32770 9680 0184 FF7FFFFF .word -32769 9681 0188 00000000 .word I2C_Slave_ISR_DMA 9682 018c 00000000 .word I2C_DMASlaveReceiveCplt 9683 0190 00000000 .word I2C_DMAError 9684 0194 FFBFFFFF .word -16385 9685 0198 00000000 .word I2C_DMAAbort 9686 .cfi_endproc 9687 .LFE70: 9689 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9690 .align 1 9691 .global HAL_I2C_EnableListen_IT 9692 .syntax unified 9693 .code 16 9694 .thumb_func 9695 .fpu softvfp 9697 HAL_I2C_EnableListen_IT: 9698 .LVL691: 9699 .LFB71: 4314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9700 .loc 1 4314 1 is_stmt 1 view -0 9701 .cfi_startproc 9702 @ args = 0, pretend = 0, frame = 0 9703 @ frame_needed = 0, uses_anonymous_args = 0 4314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9704 .loc 1 4314 1 is_stmt 0 view .LVU3105 9705 0000 10B5 push {r4, lr} 9706 .LCFI64: 9707 .cfi_def_cfa_offset 8 9708 .cfi_offset 4, -8 9709 .cfi_offset 14, -4 4315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9710 .loc 1 4315 3 is_stmt 1 view .LVU3106 4315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9711 .loc 1 4315 11 is_stmt 0 view .LVU3107 9712 0002 4123 movs r3, #65 9713 0004 C35C ldrb r3, [r0, r3] 4315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9714 .loc 1 4315 6 view .LVU3108 9715 0006 202B cmp r3, #32 9716 0008 01D0 beq .L537 4327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9717 .loc 1 4327 12 view .LVU3109 9718 000a 0220 movs r0, #2 9719 .LVL692: 9720 .L535: 4329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9721 .loc 1 4329 1 view .LVU3110 ARM GAS /tmp/ccRVAHyi.s page 342 9722 @ sp needed 9723 000c 10BD pop {r4, pc} 9724 .LVL693: 9725 .L537: 4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9726 .loc 1 4317 5 is_stmt 1 view .LVU3111 4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9727 .loc 1 4317 17 is_stmt 0 view .LVU3112 9728 000e 2133 adds r3, r3, #33 9729 0010 2822 movs r2, #40 9730 0012 C254 strb r2, [r0, r3] 4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9731 .loc 1 4318 5 is_stmt 1 view .LVU3113 4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9732 .loc 1 4318 19 is_stmt 0 view .LVU3114 9733 0014 034B ldr r3, .L538 9734 0016 4363 str r3, [r0, #52] 4321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9735 .loc 1 4321 5 is_stmt 1 view .LVU3115 9736 0018 8021 movs r1, #128 9737 001a 0902 lsls r1, r1, #8 9738 001c FFF7FEFF bl I2C_Enable_IRQ 9739 .LVL694: 4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9740 .loc 1 4323 5 view .LVU3116 4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9741 .loc 1 4323 12 is_stmt 0 view .LVU3117 9742 0020 0020 movs r0, #0 9743 0022 F3E7 b .L535 9744 .L539: 9745 .align 2 9746 .L538: 9747 0024 00000000 .word I2C_Slave_ISR_IT 9748 .cfi_endproc 9749 .LFE71: 9751 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9752 .align 1 9753 .global HAL_I2C_DisableListen_IT 9754 .syntax unified 9755 .code 16 9756 .thumb_func 9757 .fpu softvfp 9759 HAL_I2C_DisableListen_IT: 9760 .LVL695: 9761 .LFB72: 4338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9762 .loc 1 4338 1 is_stmt 1 view -0 9763 .cfi_startproc 9764 @ args = 0, pretend = 0, frame = 0 9765 @ frame_needed = 0, uses_anonymous_args = 0 4338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9766 .loc 1 4338 1 is_stmt 0 view .LVU3119 9767 0000 70B5 push {r4, r5, r6, lr} 9768 .LCFI65: 9769 .cfi_def_cfa_offset 16 9770 .cfi_offset 4, -16 9771 .cfi_offset 5, -12 ARM GAS /tmp/ccRVAHyi.s page 343 9772 .cfi_offset 6, -8 9773 .cfi_offset 14, -4 4340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9774 .loc 1 4340 3 is_stmt 1 view .LVU3120 4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9775 .loc 1 4343 3 view .LVU3121 4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9776 .loc 1 4343 11 is_stmt 0 view .LVU3122 9777 0002 4123 movs r3, #65 9778 0004 C35C ldrb r3, [r0, r3] 4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9779 .loc 1 4343 6 view .LVU3123 9780 0006 282B cmp r3, #40 9781 0008 01D0 beq .L543 4358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9782 .loc 1 4358 12 view .LVU3124 9783 000a 0220 movs r0, #2 9784 .LVL696: 9785 .L541: 4360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9786 .loc 1 4360 1 view .LVU3125 9787 @ sp needed 9788 000c 70BD pop {r4, r5, r6, pc} 9789 .LVL697: 9790 .L543: 4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9791 .loc 1 4345 5 is_stmt 1 view .LVU3126 4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9792 .loc 1 4345 26 is_stmt 0 view .LVU3127 9793 000e 4124 movs r4, #65 9794 0010 025D ldrb r2, [r0, r4] 9795 .LVL698: 4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9796 .loc 1 4346 5 is_stmt 1 view .LVU3128 4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9797 .loc 1 4346 48 is_stmt 0 view .LVU3129 9798 0012 4221 movs r1, #66 9799 0014 435C ldrb r3, [r0, r1] 4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9800 .loc 1 4346 31 view .LVU3130 9801 0016 0325 movs r5, #3 9802 0018 2A40 ands r2, r5 9803 .LVL699: 4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9804 .loc 1 4346 31 view .LVU3131 9805 001a 1343 orrs r3, r2 4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9806 .loc 1 4346 25 view .LVU3132 9807 001c 0363 str r3, [r0, #48] 4347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9808 .loc 1 4347 5 is_stmt 1 view .LVU3133 4347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9809 .loc 1 4347 17 is_stmt 0 view .LVU3134 9810 001e 2023 movs r3, #32 9811 0020 0355 strb r3, [r0, r4] 4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 9812 .loc 1 4348 5 is_stmt 1 view .LVU3135 ARM GAS /tmp/ccRVAHyi.s page 344 4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 9813 .loc 1 4348 16 is_stmt 0 view .LVU3136 9814 0022 0023 movs r3, #0 9815 0024 4354 strb r3, [r0, r1] 4349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9816 .loc 1 4349 5 is_stmt 1 view .LVU3137 4349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9817 .loc 1 4349 19 is_stmt 0 view .LVU3138 9818 0026 4363 str r3, [r0, #52] 4352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9819 .loc 1 4352 5 is_stmt 1 view .LVU3139 9820 0028 3E31 adds r1, r1, #62 9821 002a 0902 lsls r1, r1, #8 9822 002c FFF7FEFF bl I2C_Disable_IRQ 9823 .LVL700: 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9824 .loc 1 4354 5 view .LVU3140 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9825 .loc 1 4354 12 is_stmt 0 view .LVU3141 9826 0030 0020 movs r0, #0 9827 0032 EBE7 b .L541 9828 .cfi_endproc 9829 .LFE72: 9831 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9832 .align 1 9833 .global HAL_I2C_Master_Abort_IT 9834 .syntax unified 9835 .code 16 9836 .thumb_func 9837 .fpu softvfp 9839 HAL_I2C_Master_Abort_IT: 9840 .LVL701: 9841 .LFB73: 4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9842 .loc 1 4371 1 is_stmt 1 view -0 9843 .cfi_startproc 9844 @ args = 0, pretend = 0, frame = 0 9845 @ frame_needed = 0, uses_anonymous_args = 0 4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9846 .loc 1 4371 1 is_stmt 0 view .LVU3143 9847 0000 30B5 push {r4, r5, lr} 9848 .LCFI66: 9849 .cfi_def_cfa_offset 12 9850 .cfi_offset 4, -12 9851 .cfi_offset 5, -8 9852 .cfi_offset 14, -4 9853 0002 83B0 sub sp, sp, #12 9854 .LCFI67: 9855 .cfi_def_cfa_offset 24 9856 0004 0400 movs r4, r0 9857 0006 0D00 movs r5, r1 4372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9858 .loc 1 4372 3 is_stmt 1 view .LVU3144 4372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9859 .loc 1 4372 11 is_stmt 0 view .LVU3145 9860 0008 4223 movs r3, #66 9861 000a C35C ldrb r3, [r0, r3] ARM GAS /tmp/ccRVAHyi.s page 345 4372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9862 .loc 1 4372 6 view .LVU3146 9863 000c 102B cmp r3, #16 9864 000e 2FD1 bne .L548 4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9865 .loc 1 4375 5 is_stmt 1 view .LVU3147 4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9866 .loc 1 4375 5 view .LVU3148 9867 0010 3033 adds r3, r3, #48 9868 0012 C35C ldrb r3, [r0, r3] 9869 0014 012B cmp r3, #1 9870 0016 2ED0 beq .L549 4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9871 .loc 1 4375 5 discriminator 2 view .LVU3149 9872 0018 4023 movs r3, #64 9873 001a 0122 movs r2, #1 9874 001c C254 strb r2, [r0, r3] 4378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9875 .loc 1 4378 5 discriminator 2 view .LVU3150 4378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9876 .loc 1 4378 13 is_stmt 0 discriminator 2 view .LVU3151 9877 001e 0133 adds r3, r3, #1 9878 0020 C35C ldrb r3, [r0, r3] 4378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9879 .loc 1 4378 8 discriminator 2 view .LVU3152 9880 0022 212B cmp r3, #33 9881 0024 18D0 beq .L550 4383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9882 .loc 1 4383 10 is_stmt 1 view .LVU3153 4383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9883 .loc 1 4383 18 is_stmt 0 view .LVU3154 9884 0026 4123 movs r3, #65 9885 0028 C35C ldrb r3, [r0, r3] 4383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9886 .loc 1 4383 13 view .LVU3155 9887 002a 222B cmp r3, #34 9888 002c 1AD0 beq .L551 9889 .LVL702: 9890 .L547: 4391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9891 .loc 1 4391 5 is_stmt 1 view .LVU3156 4394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9892 .loc 1 4394 5 view .LVU3157 4394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9893 .loc 1 4394 17 is_stmt 0 view .LVU3158 9894 002e 4123 movs r3, #65 9895 0030 6022 movs r2, #96 9896 0032 E254 strb r2, [r4, r3] 4398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9897 .loc 1 4398 5 is_stmt 1 view .LVU3159 9898 0034 3F33 adds r3, r3, #63 9899 0036 114A ldr r2, .L552 9900 0038 0092 str r2, [sp] 9901 003a 9B04 lsls r3, r3, #18 9902 003c 0122 movs r2, #1 9903 003e 2900 movs r1, r5 9904 0040 2000 movs r0, r4 ARM GAS /tmp/ccRVAHyi.s page 346 9905 0042 FFF7FEFF bl I2C_TransferConfig 9906 .LVL703: 4401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9907 .loc 1 4401 5 view .LVU3160 4401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9908 .loc 1 4401 5 view .LVU3161 9909 0046 4023 movs r3, #64 9910 0048 0022 movs r2, #0 9911 004a E254 strb r2, [r4, r3] 4406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9912 .loc 1 4406 5 view .LVU3162 9913 004c 2021 movs r1, #32 9914 004e 2000 movs r0, r4 9915 0050 FFF7FEFF bl I2C_Enable_IRQ 9916 .LVL704: 4408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9917 .loc 1 4408 5 view .LVU3163 4408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9918 .loc 1 4408 12 is_stmt 0 view .LVU3164 9919 0054 0020 movs r0, #0 9920 0056 0CE0 b .L545 9921 .LVL705: 9922 .L550: 4380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9923 .loc 1 4380 7 is_stmt 1 view .LVU3165 9924 0058 0121 movs r1, #1 9925 .LVL706: 4380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9926 .loc 1 4380 7 is_stmt 0 view .LVU3166 9927 005a FFF7FEFF bl I2C_Disable_IRQ 9928 .LVL707: 4381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9929 .loc 1 4381 7 is_stmt 1 view .LVU3167 4381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9930 .loc 1 4381 27 is_stmt 0 view .LVU3168 9931 005e 1123 movs r3, #17 9932 0060 2363 str r3, [r4, #48] 9933 0062 E4E7 b .L547 9934 .LVL708: 9935 .L551: 4385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9936 .loc 1 4385 7 is_stmt 1 view .LVU3169 9937 0064 0221 movs r1, #2 9938 .LVL709: 4385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9939 .loc 1 4385 7 is_stmt 0 view .LVU3170 9940 0066 FFF7FEFF bl I2C_Disable_IRQ 9941 .LVL710: 4386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9942 .loc 1 4386 7 is_stmt 1 view .LVU3171 4386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9943 .loc 1 4386 27 is_stmt 0 view .LVU3172 9944 006a 1223 movs r3, #18 9945 006c 2363 str r3, [r4, #48] 9946 006e DEE7 b .L547 9947 .LVL711: 9948 .L548: ARM GAS /tmp/ccRVAHyi.s page 347 4414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9949 .loc 1 4414 12 view .LVU3173 9950 0070 0120 movs r0, #1 9951 .LVL712: 9952 .L545: 4416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9953 .loc 1 4416 1 view .LVU3174 9954 0072 03B0 add sp, sp, #12 9955 @ sp needed 9956 .LVL713: 4416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9957 .loc 1 4416 1 view .LVU3175 9958 0074 30BD pop {r4, r5, pc} 9959 .LVL714: 9960 .L549: 4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9961 .loc 1 4375 5 view .LVU3176 9962 0076 0220 movs r0, #2 9963 .LVL715: 4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9964 .loc 1 4375 5 view .LVU3177 9965 0078 FBE7 b .L545 9966 .L553: 9967 007a C046 .align 2 9968 .L552: 9969 007c 00400080 .word -2147467264 9970 .cfi_endproc 9971 .LFE73: 9973 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 9974 .align 1 9975 .global HAL_I2C_EV_IRQHandler 9976 .syntax unified 9977 .code 16 9978 .thumb_func 9979 .fpu softvfp 9981 HAL_I2C_EV_IRQHandler: 9982 .LVL716: 9983 .LFB74: 4433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9984 .loc 1 4433 1 is_stmt 1 view -0 9985 .cfi_startproc 9986 @ args = 0, pretend = 0, frame = 0 9987 @ frame_needed = 0, uses_anonymous_args = 0 4433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9988 .loc 1 4433 1 is_stmt 0 view .LVU3179 9989 0000 10B5 push {r4, lr} 9990 .LCFI68: 9991 .cfi_def_cfa_offset 8 9992 .cfi_offset 4, -8 9993 .cfi_offset 14, -4 4435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9994 .loc 1 4435 3 is_stmt 1 view .LVU3180 4435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9995 .loc 1 4435 24 is_stmt 0 view .LVU3181 9996 0002 0368 ldr r3, [r0] 4435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9997 .loc 1 4435 12 view .LVU3182 ARM GAS /tmp/ccRVAHyi.s page 348 9998 0004 9969 ldr r1, [r3, #24] 9999 .LVL717: 4436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10000 .loc 1 4436 3 is_stmt 1 view .LVU3183 4436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10001 .loc 1 4436 12 is_stmt 0 view .LVU3184 10002 0006 1A68 ldr r2, [r3] 10003 .LVL718: 4439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10004 .loc 1 4439 3 is_stmt 1 view .LVU3185 4439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10005 .loc 1 4439 11 is_stmt 0 view .LVU3186 10006 0008 436B ldr r3, [r0, #52] 4439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10007 .loc 1 4439 6 view .LVU3187 10008 000a 002B cmp r3, #0 10009 000c 00D0 beq .L554 4441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10010 .loc 1 4441 5 is_stmt 1 view .LVU3188 10011 000e 9847 blx r3 10012 .LVL719: 10013 .L554: 4443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10014 .loc 1 4443 1 is_stmt 0 view .LVU3189 10015 @ sp needed 10016 0010 10BD pop {r4, pc} 10017 .cfi_endproc 10018 .LFE74: 10020 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 10021 .align 1 10022 .weak HAL_I2C_MasterTxCpltCallback 10023 .syntax unified 10024 .code 16 10025 .thumb_func 10026 .fpu softvfp 10028 HAL_I2C_MasterTxCpltCallback: 10029 .LVL720: 10030 .LFB76: 4504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10031 .loc 1 4504 1 is_stmt 1 view -0 10032 .cfi_startproc 10033 @ args = 0, pretend = 0, frame = 0 10034 @ frame_needed = 0, uses_anonymous_args = 0 10035 @ link register save eliminated. 4506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10036 .loc 1 4506 3 view .LVU3191 4511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10037 .loc 1 4511 1 is_stmt 0 view .LVU3192 10038 @ sp needed 10039 0000 7047 bx lr 10040 .cfi_endproc 10041 .LFE76: 10043 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 10044 .align 1 10045 .weak HAL_I2C_MasterRxCpltCallback 10046 .syntax unified 10047 .code 16 ARM GAS /tmp/ccRVAHyi.s page 349 10048 .thumb_func 10049 .fpu softvfp 10051 HAL_I2C_MasterRxCpltCallback: 10052 .LVL721: 10053 .LFB77: 4520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10054 .loc 1 4520 1 is_stmt 1 view -0 10055 .cfi_startproc 10056 @ args = 0, pretend = 0, frame = 0 10057 @ frame_needed = 0, uses_anonymous_args = 0 10058 @ link register save eliminated. 4522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10059 .loc 1 4522 3 view .LVU3194 4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10060 .loc 1 4527 1 is_stmt 0 view .LVU3195 10061 @ sp needed 10062 0000 7047 bx lr 10063 .cfi_endproc 10064 .LFE77: 10066 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10067 .align 1 10068 .syntax unified 10069 .code 16 10070 .thumb_func 10071 .fpu softvfp 10073 I2C_ITMasterSeqCplt: 10074 .LVL722: 10075 .LFB96: 5505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ 10076 .loc 1 5505 1 is_stmt 1 view -0 10077 .cfi_startproc 10078 @ args = 0, pretend = 0, frame = 0 10079 @ frame_needed = 0, uses_anonymous_args = 0 5505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ 10080 .loc 1 5505 1 is_stmt 0 view .LVU3197 10081 0000 70B5 push {r4, r5, r6, lr} 10082 .LCFI69: 10083 .cfi_def_cfa_offset 16 10084 .cfi_offset 4, -16 10085 .cfi_offset 5, -12 10086 .cfi_offset 6, -8 10087 .cfi_offset 14, -4 10088 0002 0400 movs r4, r0 5507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10089 .loc 1 5507 3 is_stmt 1 view .LVU3198 5507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10090 .loc 1 5507 14 is_stmt 0 view .LVU3199 10091 0004 4223 movs r3, #66 10092 0006 0022 movs r2, #0 10093 0008 C254 strb r2, [r0, r3] 5511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10094 .loc 1 5511 3 is_stmt 1 view .LVU3200 5511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10095 .loc 1 5511 11 is_stmt 0 view .LVU3201 10096 000a 013B subs r3, r3, #1 10097 000c C35C ldrb r3, [r0, r3] 5511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 350 10098 .loc 1 5511 6 view .LVU3202 10099 000e 212B cmp r3, #33 10100 0010 0FD0 beq .L561 5533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10101 .loc 1 5533 5 is_stmt 1 view .LVU3203 5533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10102 .loc 1 5533 25 is_stmt 0 view .LVU3204 10103 0012 4123 movs r3, #65 10104 0014 2022 movs r2, #32 10105 0016 C254 strb r2, [r0, r3] 5534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10106 .loc 1 5534 5 is_stmt 1 view .LVU3205 5534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10107 .loc 1 5534 25 is_stmt 0 view .LVU3206 10108 0018 2F3B subs r3, r3, #47 10109 001a 0363 str r3, [r0, #48] 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10110 .loc 1 5535 5 is_stmt 1 view .LVU3207 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10111 .loc 1 5535 25 is_stmt 0 view .LVU3208 10112 001c 0025 movs r5, #0 10113 001e 4563 str r5, [r0, #52] 5538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10114 .loc 1 5538 5 is_stmt 1 view .LVU3209 10115 0020 0221 movs r1, #2 10116 0022 FFF7FEFF bl I2C_Disable_IRQ 10117 .LVL723: 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10118 .loc 1 5541 5 view .LVU3210 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10119 .loc 1 5541 5 view .LVU3211 10120 0026 4023 movs r3, #64 10121 0028 E554 strb r5, [r4, r3] 5547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10122 .loc 1 5547 5 view .LVU3212 10123 002a 2000 movs r0, r4 10124 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10125 .LVL724: 10126 .L558: 5550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10127 .loc 1 5550 1 is_stmt 0 view .LVU3213 10128 @ sp needed 10129 .LVL725: 5550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10130 .loc 1 5550 1 view .LVU3214 10131 0030 70BD pop {r4, r5, r6, pc} 10132 .LVL726: 10133 .L561: 5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10134 .loc 1 5513 5 is_stmt 1 view .LVU3215 5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10135 .loc 1 5513 25 is_stmt 0 view .LVU3216 10136 0032 2033 adds r3, r3, #32 10137 0034 2032 adds r2, r2, #32 10138 0036 C254 strb r2, [r0, r3] 5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10139 .loc 1 5514 5 is_stmt 1 view .LVU3217 ARM GAS /tmp/ccRVAHyi.s page 351 5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10140 .loc 1 5514 25 is_stmt 0 view .LVU3218 10141 0038 303B subs r3, r3, #48 10142 003a 0363 str r3, [r0, #48] 5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10143 .loc 1 5515 5 is_stmt 1 view .LVU3219 5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10144 .loc 1 5515 25 is_stmt 0 view .LVU3220 10145 003c 0025 movs r5, #0 10146 003e 4563 str r5, [r0, #52] 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10147 .loc 1 5518 5 is_stmt 1 view .LVU3221 10148 0040 0121 movs r1, #1 10149 0042 FFF7FEFF bl I2C_Disable_IRQ 10150 .LVL727: 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10151 .loc 1 5521 5 view .LVU3222 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10152 .loc 1 5521 5 view .LVU3223 10153 0046 4023 movs r3, #64 10154 0048 E554 strb r5, [r4, r3] 5527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10155 .loc 1 5527 5 view .LVU3224 10156 004a 2000 movs r0, r4 10157 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10158 .LVL728: 10159 0050 EEE7 b .L558 10160 .cfi_endproc 10161 .LFE96: 10163 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10164 .align 1 10165 .weak HAL_I2C_SlaveTxCpltCallback 10166 .syntax unified 10167 .code 16 10168 .thumb_func 10169 .fpu softvfp 10171 HAL_I2C_SlaveTxCpltCallback: 10172 .LVL729: 10173 .LFB78: 4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10174 .loc 1 4535 1 view -0 10175 .cfi_startproc 10176 @ args = 0, pretend = 0, frame = 0 10177 @ frame_needed = 0, uses_anonymous_args = 0 10178 @ link register save eliminated. 4537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10179 .loc 1 4537 3 view .LVU3226 4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10180 .loc 1 4542 1 is_stmt 0 view .LVU3227 10181 @ sp needed 10182 0000 7047 bx lr 10183 .cfi_endproc 10184 .LFE78: 10186 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10187 .align 1 10188 .weak HAL_I2C_SlaveRxCpltCallback 10189 .syntax unified ARM GAS /tmp/ccRVAHyi.s page 352 10190 .code 16 10191 .thumb_func 10192 .fpu softvfp 10194 HAL_I2C_SlaveRxCpltCallback: 10195 .LVL730: 10196 .LFB79: 4551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10197 .loc 1 4551 1 is_stmt 1 view -0 10198 .cfi_startproc 10199 @ args = 0, pretend = 0, frame = 0 10200 @ frame_needed = 0, uses_anonymous_args = 0 10201 @ link register save eliminated. 4553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10202 .loc 1 4553 3 view .LVU3229 4558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10203 .loc 1 4558 1 is_stmt 0 view .LVU3230 10204 @ sp needed 10205 0000 7047 bx lr 10206 .cfi_endproc 10207 .LFE79: 10209 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10210 .align 1 10211 .syntax unified 10212 .code 16 10213 .thumb_func 10214 .fpu softvfp 10216 I2C_ITSlaveSeqCplt: 10217 .LVL731: 10218 .LFB97: 5558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10219 .loc 1 5558 1 is_stmt 1 view -0 10220 .cfi_startproc 10221 @ args = 0, pretend = 0, frame = 0 10222 @ frame_needed = 0, uses_anonymous_args = 0 5558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10223 .loc 1 5558 1 is_stmt 0 view .LVU3232 10224 0000 10B5 push {r4, lr} 10225 .LCFI70: 10226 .cfi_def_cfa_offset 8 10227 .cfi_offset 4, -8 10228 .cfi_offset 14, -4 10229 0002 0400 movs r4, r0 5559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10230 .loc 1 5559 3 is_stmt 1 view .LVU3233 5559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10231 .loc 1 5559 26 is_stmt 0 view .LVU3234 10232 0004 0368 ldr r3, [r0] 5559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10233 .loc 1 5559 12 view .LVU3235 10234 0006 1A68 ldr r2, [r3] 10235 .LVL732: 5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10236 .loc 1 5562 3 is_stmt 1 view .LVU3236 5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10237 .loc 1 5562 14 is_stmt 0 view .LVU3237 10238 0008 4221 movs r1, #66 10239 000a 0020 movs r0, #0 ARM GAS /tmp/ccRVAHyi.s page 353 10240 .LVL733: 5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10241 .loc 1 5562 14 view .LVU3238 10242 000c 6054 strb r0, [r4, r1] 5565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10243 .loc 1 5565 3 is_stmt 1 view .LVU3239 5565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10244 .loc 1 5565 6 is_stmt 0 view .LVU3240 10245 000e 5104 lsls r1, r2, #17 10246 0010 0CD5 bpl .L565 5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10247 .loc 1 5568 5 is_stmt 1 view .LVU3241 5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10248 .loc 1 5568 25 is_stmt 0 view .LVU3242 10249 0012 1A68 ldr r2, [r3] 10250 .LVL734: 5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10251 .loc 1 5568 25 view .LVU3243 10252 0014 1949 ldr r1, .L571 10253 0016 0A40 ands r2, r1 10254 0018 1A60 str r2, [r3] 10255 .L566: 5578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10256 .loc 1 5578 3 is_stmt 1 view .LVU3244 5580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10257 .loc 1 5580 3 view .LVU3245 5580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10258 .loc 1 5580 11 is_stmt 0 view .LVU3246 10259 001a 4123 movs r3, #65 10260 001c E35C ldrb r3, [r4, r3] 5580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10261 .loc 1 5580 6 view .LVU3247 10262 001e 292B cmp r3, #41 10263 0020 0BD0 beq .L569 5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10264 .loc 1 5600 8 is_stmt 1 view .LVU3248 5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10265 .loc 1 5600 16 is_stmt 0 view .LVU3249 10266 0022 4123 movs r3, #65 10267 0024 E35C ldrb r3, [r4, r3] 5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10268 .loc 1 5600 11 view .LVU3250 10269 0026 2A2B cmp r3, #42 10270 0028 17D0 beq .L570 10271 .L564: 5623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10272 .loc 1 5623 1 view .LVU3251 10273 @ sp needed 10274 .LVL735: 5623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10275 .loc 1 5623 1 view .LVU3252 10276 002a 10BD pop {r4, pc} 10277 .LVL736: 10278 .L565: 5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10279 .loc 1 5570 8 is_stmt 1 view .LVU3253 5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 354 10280 .loc 1 5570 11 is_stmt 0 view .LVU3254 10281 002c 1204 lsls r2, r2, #16 10282 002e F4D5 bpl .L566 10283 .LVL737: 5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10284 .loc 1 5573 5 is_stmt 1 view .LVU3255 5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10285 .loc 1 5573 25 is_stmt 0 view .LVU3256 10286 0030 1A68 ldr r2, [r3] 10287 0032 1349 ldr r1, .L571+4 10288 0034 0A40 ands r2, r1 10289 0036 1A60 str r2, [r3] 10290 0038 EFE7 b .L566 10291 .L569: 5583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10292 .loc 1 5583 5 is_stmt 1 view .LVU3257 5583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10293 .loc 1 5583 25 is_stmt 0 view .LVU3258 10294 003a 1833 adds r3, r3, #24 10295 003c 2822 movs r2, #40 10296 003e E254 strb r2, [r4, r3] 5584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10297 .loc 1 5584 5 is_stmt 1 view .LVU3259 5584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10298 .loc 1 5584 25 is_stmt 0 view .LVU3260 10299 0040 203B subs r3, r3, #32 10300 0042 2363 str r3, [r4, #48] 5587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10301 .loc 1 5587 5 is_stmt 1 view .LVU3261 10302 0044 0121 movs r1, #1 10303 0046 2000 movs r0, r4 10304 0048 FFF7FEFF bl I2C_Disable_IRQ 10305 .LVL738: 5590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10306 .loc 1 5590 5 view .LVU3262 5590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10307 .loc 1 5590 5 view .LVU3263 10308 004c 4023 movs r3, #64 10309 004e 0022 movs r2, #0 10310 0050 E254 strb r2, [r4, r3] 5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10311 .loc 1 5596 5 view .LVU3264 10312 0052 2000 movs r0, r4 10313 0054 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10314 .LVL739: 10315 0058 E7E7 b .L564 10316 .L570: 5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10317 .loc 1 5603 5 view .LVU3265 5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10318 .loc 1 5603 25 is_stmt 0 view .LVU3266 10319 005a 1733 adds r3, r3, #23 10320 005c 2822 movs r2, #40 10321 005e E254 strb r2, [r4, r3] 5604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10322 .loc 1 5604 5 is_stmt 1 view .LVU3267 5604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 355 10323 .loc 1 5604 25 is_stmt 0 view .LVU3268 10324 0060 1F3B subs r3, r3, #31 10325 0062 2363 str r3, [r4, #48] 5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10326 .loc 1 5607 5 is_stmt 1 view .LVU3269 10327 0064 0221 movs r1, #2 10328 0066 2000 movs r0, r4 10329 0068 FFF7FEFF bl I2C_Disable_IRQ 10330 .LVL740: 5610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10331 .loc 1 5610 5 view .LVU3270 5610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10332 .loc 1 5610 5 view .LVU3271 10333 006c 4023 movs r3, #64 10334 006e 0022 movs r2, #0 10335 0070 E254 strb r2, [r4, r3] 5616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10336 .loc 1 5616 5 view .LVU3272 10337 0072 2000 movs r0, r4 10338 0074 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10339 .LVL741: 5622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10340 .loc 1 5622 3 view .LVU3273 5623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10341 .loc 1 5623 1 is_stmt 0 view .LVU3274 10342 0078 D7E7 b .L564 10343 .L572: 10344 007a C046 .align 2 10345 .L571: 10346 007c FFBFFFFF .word -16385 10347 0080 FF7FFFFF .word -32769 10348 .cfi_endproc 10349 .LFE97: 10351 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10352 .align 1 10353 .syntax unified 10354 .code 16 10355 .thumb_func 10356 .fpu softvfp 10358 I2C_DMASlaveTransmitCplt: 10359 .LVL742: 10360 .LFB105: 6206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10361 .loc 1 6206 1 is_stmt 1 view -0 10362 .cfi_startproc 10363 @ args = 0, pretend = 0, frame = 0 10364 @ frame_needed = 0, uses_anonymous_args = 0 6206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10365 .loc 1 6206 1 is_stmt 0 view .LVU3276 10366 0000 10B5 push {r4, lr} 10367 .LCFI71: 10368 .cfi_def_cfa_offset 8 10369 .cfi_offset 4, -8 10370 .cfi_offset 14, -4 6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10371 .loc 1 6208 3 is_stmt 1 view .LVU3277 6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; ARM GAS /tmp/ccRVAHyi.s page 356 10372 .loc 1 6208 22 is_stmt 0 view .LVU3278 10373 0002 406A ldr r0, [r0, #36] 10374 .LVL743: 6209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10375 .loc 1 6209 3 is_stmt 1 view .LVU3279 6209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10376 .loc 1 6209 12 is_stmt 0 view .LVU3280 10377 0004 C36A ldr r3, [r0, #44] 10378 .LVL744: 6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10379 .loc 1 6211 3 is_stmt 1 view .LVU3281 6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10380 .loc 1 6211 6 is_stmt 0 view .LVU3282 10381 0006 8022 movs r2, #128 10382 0008 5204 lsls r2, r2, #17 10383 000a 9342 cmp r3, r2 10384 000c 01D0 beq .L574 6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10385 .loc 1 6211 38 discriminator 1 view .LVU3283 10386 000e 002B cmp r3, #0 10387 0010 06D1 bne .L573 10388 .L574: 6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10389 .loc 1 6214 5 is_stmt 1 view .LVU3284 6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10390 .loc 1 6214 9 is_stmt 0 view .LVU3285 10391 0012 0268 ldr r2, [r0] 6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10392 .loc 1 6214 25 view .LVU3286 10393 0014 1368 ldr r3, [r2] 10394 .LVL745: 6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10395 .loc 1 6214 25 view .LVU3287 10396 0016 0349 ldr r1, .L576 10397 0018 0B40 ands r3, r1 10398 001a 1360 str r3, [r2] 6218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10399 .loc 1 6218 5 is_stmt 1 view .LVU3288 10400 001c FFF7FEFF bl I2C_ITSlaveSeqCplt 10401 .LVL746: 10402 .L573: 6226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10403 .loc 1 6226 1 is_stmt 0 view .LVU3289 10404 @ sp needed 10405 0020 10BD pop {r4, pc} 10406 .L577: 10407 0022 C046 .align 2 10408 .L576: 10409 0024 FFBFFFFF .word -16385 10410 .cfi_endproc 10411 .LFE105: 10413 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10414 .align 1 10415 .syntax unified 10416 .code 16 10417 .thumb_func 10418 .fpu softvfp ARM GAS /tmp/ccRVAHyi.s page 357 10420 I2C_DMASlaveReceiveCplt: 10421 .LVL747: 10422 .LFB107: 6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10423 .loc 1 6284 1 is_stmt 1 view -0 10424 .cfi_startproc 10425 @ args = 0, pretend = 0, frame = 0 10426 @ frame_needed = 0, uses_anonymous_args = 0 6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10427 .loc 1 6284 1 is_stmt 0 view .LVU3291 10428 0000 10B5 push {r4, lr} 10429 .LCFI72: 10430 .cfi_def_cfa_offset 8 10431 .cfi_offset 4, -8 10432 .cfi_offset 14, -4 6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10433 .loc 1 6286 3 is_stmt 1 view .LVU3292 6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10434 .loc 1 6286 22 is_stmt 0 view .LVU3293 10435 0002 406A ldr r0, [r0, #36] 10436 .LVL748: 6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10437 .loc 1 6287 3 is_stmt 1 view .LVU3294 6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10438 .loc 1 6287 12 is_stmt 0 view .LVU3295 10439 0004 C26A ldr r2, [r0, #44] 10440 .LVL749: 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10441 .loc 1 6289 3 is_stmt 1 view .LVU3296 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10442 .loc 1 6289 8 is_stmt 0 view .LVU3297 10443 0006 C36B ldr r3, [r0, #60] 10444 0008 1B68 ldr r3, [r3] 10445 000a 5B68 ldr r3, [r3, #4] 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10446 .loc 1 6289 6 view .LVU3298 10447 000c 002B cmp r3, #0 10448 000e 02D1 bne .L578 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10449 .loc 1 6289 51 discriminator 1 view .LVU3299 10450 0010 054B ldr r3, .L581 10451 0012 9A42 cmp r2, r3 10452 0014 00D1 bne .L580 10453 .LVL750: 10454 .L578: 6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10455 .loc 1 6304 1 view .LVU3300 10456 @ sp needed 10457 0016 10BD pop {r4, pc} 10458 .LVL751: 10459 .L580: 6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10460 .loc 1 6293 5 is_stmt 1 view .LVU3301 6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10461 .loc 1 6293 9 is_stmt 0 view .LVU3302 10462 0018 0268 ldr r2, [r0] 10463 .LVL752: ARM GAS /tmp/ccRVAHyi.s page 358 6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10464 .loc 1 6293 25 view .LVU3303 10465 001a 1368 ldr r3, [r2] 10466 001c 0349 ldr r1, .L581+4 10467 001e 0B40 ands r3, r1 10468 0020 1360 str r3, [r2] 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10469 .loc 1 6296 5 is_stmt 1 view .LVU3304 10470 0022 FFF7FEFF bl I2C_ITSlaveSeqCplt 10471 .LVL753: 6303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10472 .loc 1 6303 3 view .LVU3305 6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10473 .loc 1 6304 1 is_stmt 0 view .LVU3306 10474 0026 F6E7 b .L578 10475 .L582: 10476 .align 2 10477 .L581: 10478 0028 0000FFFF .word -65536 10479 002c FF7FFFFF .word -32769 10480 .cfi_endproc 10481 .LFE107: 10483 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10484 .align 1 10485 .weak HAL_I2C_AddrCallback 10486 .syntax unified 10487 .code 16 10488 .thumb_func 10489 .fpu softvfp 10491 HAL_I2C_AddrCallback: 10492 .LVL754: 10493 .LFB80: 4569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10494 .loc 1 4569 1 is_stmt 1 view -0 10495 .cfi_startproc 10496 @ args = 0, pretend = 0, frame = 0 10497 @ frame_needed = 0, uses_anonymous_args = 0 10498 @ link register save eliminated. 4571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(TransferDirection); 10499 .loc 1 4571 3 view .LVU3308 4572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10500 .loc 1 4572 3 view .LVU3309 4573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10501 .loc 1 4573 3 view .LVU3310 4578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10502 .loc 1 4578 1 is_stmt 0 view .LVU3311 10503 @ sp needed 10504 0000 7047 bx lr 10505 .cfi_endproc 10506 .LFE80: 10508 .section .text.I2C_ITAddrCplt,"ax",%progbits 10509 .align 1 10510 .syntax unified 10511 .code 16 10512 .thumb_func 10513 .fpu softvfp 10515 I2C_ITAddrCplt: ARM GAS /tmp/ccRVAHyi.s page 359 10516 .LVL755: 10517 .LFB95: 5410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; 10518 .loc 1 5410 1 is_stmt 1 view -0 10519 .cfi_startproc 10520 @ args = 0, pretend = 0, frame = 0 10521 @ frame_needed = 0, uses_anonymous_args = 0 5410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; 10522 .loc 1 5410 1 is_stmt 0 view .LVU3313 10523 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10524 .LCFI73: 10525 .cfi_def_cfa_offset 24 10526 .cfi_offset 3, -24 10527 .cfi_offset 4, -20 10528 .cfi_offset 5, -16 10529 .cfi_offset 6, -12 10530 .cfi_offset 7, -8 10531 .cfi_offset 14, -4 10532 0002 0400 movs r4, r0 5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t slaveaddrcode; 10533 .loc 1 5411 3 is_stmt 1 view .LVU3314 5412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd1code; 10534 .loc 1 5412 3 view .LVU3315 5413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd2code; 10535 .loc 1 5413 3 view .LVU3316 5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10536 .loc 1 5414 3 view .LVU3317 5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10537 .loc 1 5417 3 view .LVU3318 5420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10538 .loc 1 5420 3 view .LVU3319 5420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10539 .loc 1 5420 22 is_stmt 0 view .LVU3320 10540 0004 4123 movs r3, #65 10541 0006 C35C ldrb r3, [r0, r3] 5420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10542 .loc 1 5420 6 view .LVU3321 10543 0008 2822 movs r2, #40 10544 000a 1340 ands r3, r2 10545 000c 282B cmp r3, #40 10546 000e 06D0 beq .L589 5492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10547 .loc 1 5492 5 is_stmt 1 view .LVU3322 10548 0010 0368 ldr r3, [r0] 10549 0012 0822 movs r2, #8 10550 0014 DA61 str r2, [r3, #28] 5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10551 .loc 1 5495 5 view .LVU3323 5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10552 .loc 1 5495 5 view .LVU3324 10553 0016 4023 movs r3, #64 10554 0018 0022 movs r2, #0 10555 001a C254 strb r2, [r0, r3] 10556 .LVL756: 10557 .L584: 5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10558 .loc 1 5497 1 is_stmt 0 view .LVU3325 ARM GAS /tmp/ccRVAHyi.s page 360 10559 @ sp needed 10560 .LVL757: 5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10561 .loc 1 5497 1 view .LVU3326 10562 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10563 .LVL758: 10564 .L589: 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10565 .loc 1 5422 5 is_stmt 1 view .LVU3327 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10566 .loc 1 5422 25 is_stmt 0 view .LVU3328 10567 001e 0368 ldr r3, [r0] 10568 0020 9E69 ldr r6, [r3, #24] 10569 0022 360C lsrs r6, r6, #16 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10570 .loc 1 5422 23 view .LVU3329 10571 0024 273A subs r2, r2, #39 10572 0026 1640 ands r6, r2 10573 .LVL759: 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10574 .loc 1 5423 5 is_stmt 1 view .LVU3330 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10575 .loc 1 5423 25 is_stmt 0 view .LVU3331 10576 0028 9A69 ldr r2, [r3, #24] 10577 002a 120C lsrs r2, r2, #16 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10578 .loc 1 5423 23 view .LVU3332 10579 002c FE27 movs r7, #254 10580 002e 3A40 ands r2, r7 10581 0030 1500 movs r5, r2 10582 .LVL760: 5424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10583 .loc 1 5424 5 is_stmt 1 view .LVU3333 5424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10584 .loc 1 5424 25 is_stmt 0 view .LVU3334 10585 0032 9A68 ldr r2, [r3, #8] 5424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10586 .loc 1 5424 23 view .LVU3335 10587 0034 9205 lsls r2, r2, #22 10588 0036 920D lsrs r2, r2, #22 10589 .LVL761: 5425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10590 .loc 1 5425 5 is_stmt 1 view .LVU3336 5425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10591 .loc 1 5425 25 is_stmt 0 view .LVU3337 10592 0038 D868 ldr r0, [r3, #12] 10593 .LVL762: 5425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10594 .loc 1 5425 23 view .LVU3338 10595 003a 0740 ands r7, r0 10596 .LVL763: 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10597 .loc 1 5428 5 is_stmt 1 view .LVU3339 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10598 .loc 1 5428 8 is_stmt 0 view .LVU3340 10599 003c E168 ldr r1, [r4, #12] 10600 .LVL764: ARM GAS /tmp/ccRVAHyi.s page 361 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10601 .loc 1 5428 8 view .LVU3341 10602 003e 0229 cmp r1, #2 10603 0040 23D1 bne .L586 5430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10604 .loc 1 5430 7 is_stmt 1 view .LVU3342 5430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10605 .loc 1 5430 44 is_stmt 0 view .LVU3343 10606 0042 D009 lsrs r0, r2, #7 10607 0044 4540 eors r5, r0 10608 .LVL765: 5430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10609 .loc 1 5430 10 view .LVU3344 10610 0046 0431 adds r1, r1, #4 10611 0048 2942 tst r1, r5 10612 004a 10D1 bne .L587 5432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount++; 10613 .loc 1 5432 9 is_stmt 1 view .LVU3345 10614 .LVL766: 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10615 .loc 1 5433 9 view .LVU3346 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10616 .loc 1 5433 13 is_stmt 0 view .LVU3347 10617 004c A16C ldr r1, [r4, #72] 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10618 .loc 1 5433 29 view .LVU3348 10619 004e 0131 adds r1, r1, #1 10620 0050 A164 str r1, [r4, #72] 5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10621 .loc 1 5434 9 is_stmt 1 view .LVU3349 5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10622 .loc 1 5434 17 is_stmt 0 view .LVU3350 10623 0052 A16C ldr r1, [r4, #72] 5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10624 .loc 1 5434 12 view .LVU3351 10625 0054 0229 cmp r1, #2 10626 0056 E1D1 bne .L584 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10627 .loc 1 5437 11 is_stmt 1 view .LVU3352 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10628 .loc 1 5437 32 is_stmt 0 view .LVU3353 10629 0058 0021 movs r1, #0 10630 005a A164 str r1, [r4, #72] 5440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10631 .loc 1 5440 11 is_stmt 1 view .LVU3354 10632 005c 0820 movs r0, #8 10633 005e D861 str r0, [r3, #28] 5443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10634 .loc 1 5443 11 view .LVU3355 5443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10635 .loc 1 5443 11 view .LVU3356 10636 0060 4023 movs r3, #64 10637 0062 E154 strb r1, [r4, r3] 5449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10638 .loc 1 5449 11 view .LVU3357 10639 0064 3100 movs r1, r6 10640 0066 2000 movs r0, r4 ARM GAS /tmp/ccRVAHyi.s page 362 10641 0068 FFF7FEFF bl HAL_I2C_AddrCallback 10642 .LVL767: 5449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10643 .loc 1 5449 11 is_stmt 0 view .LVU3358 10644 006c D6E7 b .L584 10645 .LVL768: 10646 .L587: 5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10647 .loc 1 5455 9 is_stmt 1 view .LVU3359 5458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10648 .loc 1 5458 9 view .LVU3360 10649 006e 8021 movs r1, #128 10650 0070 0902 lsls r1, r1, #8 10651 0072 2000 movs r0, r4 10652 0074 FFF7FEFF bl I2C_Disable_IRQ 10653 .LVL769: 5461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10654 .loc 1 5461 9 view .LVU3361 5461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10655 .loc 1 5461 9 view .LVU3362 10656 0078 4023 movs r3, #64 10657 007a 0022 movs r2, #0 10658 007c E254 strb r2, [r4, r3] 5467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10659 .loc 1 5467 9 view .LVU3363 10660 007e 3A00 movs r2, r7 10661 0080 3100 movs r1, r6 10662 0082 2000 movs r0, r4 10663 0084 FFF7FEFF bl HAL_I2C_AddrCallback 10664 .LVL770: 10665 0088 C8E7 b .L584 10666 .LVL771: 10667 .L586: 5475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10668 .loc 1 5475 7 view .LVU3364 10669 008a 8021 movs r1, #128 10670 008c 0902 lsls r1, r1, #8 10671 008e 2000 movs r0, r4 10672 0090 FFF7FEFF bl I2C_Disable_IRQ 10673 .LVL772: 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10674 .loc 1 5478 7 view .LVU3365 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10675 .loc 1 5478 7 view .LVU3366 10676 0094 4023 movs r3, #64 10677 0096 0022 movs r2, #0 10678 0098 E254 strb r2, [r4, r3] 5484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10679 .loc 1 5484 7 view .LVU3367 10680 009a 2A00 movs r2, r5 10681 009c 3100 movs r1, r6 10682 009e 2000 movs r0, r4 10683 00a0 FFF7FEFF bl HAL_I2C_AddrCallback 10684 .LVL773: 10685 00a4 BAE7 b .L584 10686 .cfi_endproc 10687 .LFE95: ARM GAS /tmp/ccRVAHyi.s page 363 10689 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10690 .align 1 10691 .weak HAL_I2C_ListenCpltCallback 10692 .syntax unified 10693 .code 16 10694 .thumb_func 10695 .fpu softvfp 10697 HAL_I2C_ListenCpltCallback: 10698 .LVL774: 10699 .LFB81: 4587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10700 .loc 1 4587 1 view -0 10701 .cfi_startproc 10702 @ args = 0, pretend = 0, frame = 0 10703 @ frame_needed = 0, uses_anonymous_args = 0 10704 @ link register save eliminated. 4589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10705 .loc 1 4589 3 view .LVU3369 4594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10706 .loc 1 4594 1 is_stmt 0 view .LVU3370 10707 @ sp needed 10708 0000 7047 bx lr 10709 .cfi_endproc 10710 .LFE81: 10712 .section .text.I2C_ITListenCplt,"ax",%progbits 10713 .align 1 10714 .syntax unified 10715 .code 16 10716 .thumb_func 10717 .fpu softvfp 10719 I2C_ITListenCplt: 10720 .LVL775: 10721 .LFB100: 5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 10722 .loc 1 5934 1 is_stmt 1 view -0 10723 .cfi_startproc 10724 @ args = 0, pretend = 0, frame = 0 10725 @ frame_needed = 0, uses_anonymous_args = 0 5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 10726 .loc 1 5934 1 is_stmt 0 view .LVU3372 10727 0000 10B5 push {r4, lr} 10728 .LCFI74: 10729 .cfi_def_cfa_offset 8 10730 .cfi_offset 4, -8 10731 .cfi_offset 14, -4 10732 0002 0400 movs r4, r0 5936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10733 .loc 1 5936 3 is_stmt 1 view .LVU3373 5936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10734 .loc 1 5936 21 is_stmt 0 view .LVU3374 10735 0004 164B ldr r3, .L593 10736 0006 C362 str r3, [r0, #44] 5937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10737 .loc 1 5937 3 is_stmt 1 view .LVU3375 5937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10738 .loc 1 5937 23 is_stmt 0 view .LVU3376 10739 0008 0023 movs r3, #0 ARM GAS /tmp/ccRVAHyi.s page 364 10740 000a 0363 str r3, [r0, #48] 5938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10741 .loc 1 5938 3 is_stmt 1 view .LVU3377 5938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10742 .loc 1 5938 15 is_stmt 0 view .LVU3378 10743 000c 4122 movs r2, #65 10744 000e 2020 movs r0, #32 10745 .LVL776: 5938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10746 .loc 1 5938 15 view .LVU3379 10747 0010 A054 strb r0, [r4, r2] 5939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10748 .loc 1 5939 3 is_stmt 1 view .LVU3380 5939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10749 .loc 1 5939 14 is_stmt 0 view .LVU3381 10750 0012 0132 adds r2, r2, #1 10751 0014 A354 strb r3, [r4, r2] 5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10752 .loc 1 5940 3 is_stmt 1 view .LVU3382 5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10753 .loc 1 5940 17 is_stmt 0 view .LVU3383 10754 0016 6363 str r3, [r4, #52] 5943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10755 .loc 1 5943 3 is_stmt 1 view .LVU3384 5943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10756 .loc 1 5943 6 is_stmt 0 view .LVU3385 10757 0018 4B07 lsls r3, r1, #29 10758 001a 13D5 bpl .L592 5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10759 .loc 1 5946 5 is_stmt 1 view .LVU3386 5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10760 .loc 1 5946 36 is_stmt 0 view .LVU3387 10761 001c 2368 ldr r3, [r4] 5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10762 .loc 1 5946 46 view .LVU3388 10763 001e 5B6A ldr r3, [r3, #36] 5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10764 .loc 1 5946 21 view .LVU3389 10765 0020 626A ldr r2, [r4, #36] 10766 0022 1370 strb r3, [r2] 5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10767 .loc 1 5949 5 is_stmt 1 view .LVU3390 5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10768 .loc 1 5949 19 is_stmt 0 view .LVU3391 10769 0024 636A ldr r3, [r4, #36] 10770 0026 0133 adds r3, r3, #1 10771 0028 6362 str r3, [r4, #36] 5951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10772 .loc 1 5951 5 is_stmt 1 view .LVU3392 5951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10773 .loc 1 5951 14 is_stmt 0 view .LVU3393 10774 002a 238D ldrh r3, [r4, #40] 5951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10775 .loc 1 5951 8 view .LVU3394 10776 002c 002B cmp r3, #0 10777 002e 09D0 beq .L592 5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; ARM GAS /tmp/ccRVAHyi.s page 365 10778 .loc 1 5953 7 is_stmt 1 view .LVU3395 5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 10779 .loc 1 5953 21 is_stmt 0 view .LVU3396 10780 0030 013B subs r3, r3, #1 10781 0032 2385 strh r3, [r4, #40] 5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10782 .loc 1 5954 7 is_stmt 1 view .LVU3397 5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10783 .loc 1 5954 11 is_stmt 0 view .LVU3398 10784 0034 638D ldrh r3, [r4, #42] 5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10785 .loc 1 5954 22 view .LVU3399 10786 0036 013B subs r3, r3, #1 10787 0038 9BB2 uxth r3, r3 10788 003a 6385 strh r3, [r4, #42] 5957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10789 .loc 1 5957 7 is_stmt 1 view .LVU3400 5957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10790 .loc 1 5957 23 is_stmt 0 view .LVU3401 10791 003c 636C ldr r3, [r4, #68] 10792 003e 0422 movs r2, #4 10793 0040 1343 orrs r3, r2 10794 0042 6364 str r3, [r4, #68] 10795 .L592: 5962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10796 .loc 1 5962 3 is_stmt 1 view .LVU3402 10797 0044 0749 ldr r1, .L593+4 10798 .LVL777: 5962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10799 .loc 1 5962 3 is_stmt 0 view .LVU3403 10800 0046 2000 movs r0, r4 10801 0048 FFF7FEFF bl I2C_Disable_IRQ 10802 .LVL778: 5965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10803 .loc 1 5965 3 is_stmt 1 view .LVU3404 10804 004c 2368 ldr r3, [r4] 10805 004e 1022 movs r2, #16 10806 0050 DA61 str r2, [r3, #28] 5968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10807 .loc 1 5968 3 view .LVU3405 5968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10808 .loc 1 5968 3 view .LVU3406 10809 0052 4023 movs r3, #64 10810 0054 0022 movs r2, #0 10811 0056 E254 strb r2, [r4, r3] 5974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10812 .loc 1 5974 3 view .LVU3407 10813 0058 2000 movs r0, r4 10814 005a FFF7FEFF bl HAL_I2C_ListenCpltCallback 10815 .LVL779: 5976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10816 .loc 1 5976 1 is_stmt 0 view .LVU3408 10817 @ sp needed 10818 .LVL780: 5976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10819 .loc 1 5976 1 view .LVU3409 10820 005e 10BD pop {r4, pc} ARM GAS /tmp/ccRVAHyi.s page 366 10821 .L594: 10822 .align 2 10823 .L593: 10824 0060 0000FFFF .word -65536 10825 0064 03800000 .word 32771 10826 .cfi_endproc 10827 .LFE100: 10829 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10830 .align 1 10831 .weak HAL_I2C_MemTxCpltCallback 10832 .syntax unified 10833 .code 16 10834 .thumb_func 10835 .fpu softvfp 10837 HAL_I2C_MemTxCpltCallback: 10838 .LVL781: 10839 .LFB82: 4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10840 .loc 1 4603 1 is_stmt 1 view -0 10841 .cfi_startproc 10842 @ args = 0, pretend = 0, frame = 0 10843 @ frame_needed = 0, uses_anonymous_args = 0 10844 @ link register save eliminated. 4605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10845 .loc 1 4605 3 view .LVU3411 4610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10846 .loc 1 4610 1 is_stmt 0 view .LVU3412 10847 @ sp needed 10848 0000 7047 bx lr 10849 .cfi_endproc 10850 .LFE82: 10852 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10853 .align 1 10854 .weak HAL_I2C_MemRxCpltCallback 10855 .syntax unified 10856 .code 16 10857 .thumb_func 10858 .fpu softvfp 10860 HAL_I2C_MemRxCpltCallback: 10861 .LVL782: 10862 .LFB83: 4619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10863 .loc 1 4619 1 is_stmt 1 view -0 10864 .cfi_startproc 10865 @ args = 0, pretend = 0, frame = 0 10866 @ frame_needed = 0, uses_anonymous_args = 0 10867 @ link register save eliminated. 4621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10868 .loc 1 4621 3 view .LVU3414 4626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10869 .loc 1 4626 1 is_stmt 0 view .LVU3415 10870 @ sp needed 10871 0000 7047 bx lr 10872 .cfi_endproc 10873 .LFE83: 10875 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10876 .align 1 ARM GAS /tmp/ccRVAHyi.s page 367 10877 .weak HAL_I2C_ErrorCallback 10878 .syntax unified 10879 .code 16 10880 .thumb_func 10881 .fpu softvfp 10883 HAL_I2C_ErrorCallback: 10884 .LVL783: 10885 .LFB84: 4635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10886 .loc 1 4635 1 is_stmt 1 view -0 10887 .cfi_startproc 10888 @ args = 0, pretend = 0, frame = 0 10889 @ frame_needed = 0, uses_anonymous_args = 0 10890 @ link register save eliminated. 4637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10891 .loc 1 4637 3 view .LVU3417 4642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10892 .loc 1 4642 1 is_stmt 0 view .LVU3418 10893 @ sp needed 10894 0000 7047 bx lr 10895 .cfi_endproc 10896 .LFE84: 10898 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10899 .align 1 10900 .weak HAL_I2C_AbortCpltCallback 10901 .syntax unified 10902 .code 16 10903 .thumb_func 10904 .fpu softvfp 10906 HAL_I2C_AbortCpltCallback: 10907 .LVL784: 10908 .LFB85: 4651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10909 .loc 1 4651 1 is_stmt 1 view -0 10910 .cfi_startproc 10911 @ args = 0, pretend = 0, frame = 0 10912 @ frame_needed = 0, uses_anonymous_args = 0 10913 @ link register save eliminated. 4653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10914 .loc 1 4653 3 view .LVU3420 4658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10915 .loc 1 4658 1 is_stmt 0 view .LVU3421 10916 @ sp needed 10917 0000 7047 bx lr 10918 .cfi_endproc 10919 .LFE85: 10921 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10922 .align 1 10923 .syntax unified 10924 .code 16 10925 .thumb_func 10926 .fpu softvfp 10928 I2C_TreatErrorCallback: 10929 .LVL785: 10930 .LFB102: 6097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10931 .loc 1 6097 1 is_stmt 1 view -0 ARM GAS /tmp/ccRVAHyi.s page 368 10932 .cfi_startproc 10933 @ args = 0, pretend = 0, frame = 0 10934 @ frame_needed = 0, uses_anonymous_args = 0 6097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10935 .loc 1 6097 1 is_stmt 0 view .LVU3423 10936 0000 10B5 push {r4, lr} 10937 .LCFI75: 10938 .cfi_def_cfa_offset 8 10939 .cfi_offset 4, -8 10940 .cfi_offset 14, -4 6098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10941 .loc 1 6098 3 is_stmt 1 view .LVU3424 6098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10942 .loc 1 6098 11 is_stmt 0 view .LVU3425 10943 0002 4123 movs r3, #65 10944 0004 C35C ldrb r3, [r0, r3] 6098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10945 .loc 1 6098 6 view .LVU3426 10946 0006 602B cmp r3, #96 10947 0008 06D0 beq .L602 6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10948 .loc 1 6115 5 is_stmt 1 view .LVU3427 6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10949 .loc 1 6115 25 is_stmt 0 view .LVU3428 10950 000a 0023 movs r3, #0 10951 000c 0363 str r3, [r0, #48] 6118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10952 .loc 1 6118 5 is_stmt 1 view .LVU3429 6118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10953 .loc 1 6118 5 view .LVU3430 10954 000e 4022 movs r2, #64 10955 0010 8354 strb r3, [r0, r2] 6124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10956 .loc 1 6124 5 view .LVU3431 10957 0012 FFF7FEFF bl HAL_I2C_ErrorCallback 10958 .LVL786: 10959 .L599: 6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10960 .loc 1 6127 1 is_stmt 0 view .LVU3432 10961 @ sp needed 10962 0016 10BD pop {r4, pc} 10963 .LVL787: 10964 .L602: 6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10965 .loc 1 6100 5 is_stmt 1 view .LVU3433 6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10966 .loc 1 6100 17 is_stmt 0 view .LVU3434 10967 0018 1F3B subs r3, r3, #31 10968 001a 2022 movs r2, #32 10969 001c C254 strb r2, [r0, r3] 6101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10970 .loc 1 6101 5 is_stmt 1 view .LVU3435 6101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10971 .loc 1 6101 25 is_stmt 0 view .LVU3436 10972 001e 0023 movs r3, #0 10973 0020 0363 str r3, [r0, #48] 6104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 369 10974 .loc 1 6104 5 is_stmt 1 view .LVU3437 6104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10975 .loc 1 6104 5 view .LVU3438 10976 0022 2032 adds r2, r2, #32 10977 0024 8354 strb r3, [r0, r2] 6110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10978 .loc 1 6110 5 view .LVU3439 10979 0026 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10980 .LVL788: 6110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10981 .loc 1 6110 5 is_stmt 0 view .LVU3440 10982 002a F4E7 b .L599 10983 .cfi_endproc 10984 .LFE102: 10986 .section .text.I2C_ITError,"ax",%progbits 10987 .align 1 10988 .syntax unified 10989 .code 16 10990 .thumb_func 10991 .fpu softvfp 10993 I2C_ITError: 10994 .LVL789: 10995 .LFB101: 5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10996 .loc 1 5985 1 is_stmt 1 view -0 10997 .cfi_startproc 10998 @ args = 0, pretend = 0, frame = 0 10999 @ frame_needed = 0, uses_anonymous_args = 0 5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11000 .loc 1 5985 1 is_stmt 0 view .LVU3442 11001 0000 10B5 push {r4, lr} 11002 .LCFI76: 11003 .cfi_def_cfa_offset 8 11004 .cfi_offset 4, -8 11005 .cfi_offset 14, -4 11006 0002 0400 movs r4, r0 5986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmppreviousstate; 11007 .loc 1 5986 3 is_stmt 1 view .LVU3443 5986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmppreviousstate; 11008 .loc 1 5986 24 is_stmt 0 view .LVU3444 11009 0004 4123 movs r3, #65 11010 0006 C35C ldrb r3, [r0, r3] 11011 .LVL790: 5987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11012 .loc 1 5987 3 is_stmt 1 view .LVU3445 5990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11013 .loc 1 5990 3 view .LVU3446 5990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11014 .loc 1 5990 23 is_stmt 0 view .LVU3447 11015 0008 0020 movs r0, #0 11016 .LVL791: 5990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11017 .loc 1 5990 23 view .LVU3448 11018 000a 4222 movs r2, #66 11019 000c A054 strb r0, [r4, r2] 5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; 11020 .loc 1 5991 3 is_stmt 1 view .LVU3449 ARM GAS /tmp/ccRVAHyi.s page 370 5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; 11021 .loc 1 5991 23 is_stmt 0 view .LVU3450 11022 000e 3A4A ldr r2, .L616 11023 0010 E262 str r2, [r4, #44] 5992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11024 .loc 1 5992 3 is_stmt 1 view .LVU3451 5992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11025 .loc 1 5992 23 is_stmt 0 view .LVU3452 11026 0012 6085 strh r0, [r4, #42] 5995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11027 .loc 1 5995 3 is_stmt 1 view .LVU3453 5995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11028 .loc 1 5995 19 is_stmt 0 view .LVU3454 11029 0014 626C ldr r2, [r4, #68] 11030 0016 0A43 orrs r2, r1 11031 0018 6264 str r2, [r4, #68] 5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11032 .loc 1 5998 3 is_stmt 1 view .LVU3455 5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11033 .loc 1 5999 50 is_stmt 0 view .LVU3456 11034 001a 283B subs r3, r3, #40 11035 .LVL792: 5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11036 .loc 1 5999 50 view .LVU3457 11037 001c DBB2 uxtb r3, r3 5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11038 .loc 1 5998 6 view .LVU3458 11039 001e 022B cmp r3, #2 11040 0020 1BD8 bhi .L604 6003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11041 .loc 1 6003 5 is_stmt 1 view .LVU3459 11042 0022 0321 movs r1, #3 11043 .LVL793: 6003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11044 .loc 1 6003 5 is_stmt 0 view .LVU3460 11045 0024 2000 movs r0, r4 11046 0026 FFF7FEFF bl I2C_Disable_IRQ 11047 .LVL794: 6006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11048 .loc 1 6006 5 is_stmt 1 view .LVU3461 6006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11049 .loc 1 6006 25 is_stmt 0 view .LVU3462 11050 002a 4123 movs r3, #65 11051 002c 2822 movs r2, #40 11052 002e E254 strb r2, [r4, r3] 6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11053 .loc 1 6007 5 is_stmt 1 view .LVU3463 6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11054 .loc 1 6007 25 is_stmt 0 view .LVU3464 11055 0030 324B ldr r3, .L616+4 11056 0032 6363 str r3, [r4, #52] 11057 .L605: 6025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 11058 .loc 1 6025 3 is_stmt 1 view .LVU3465 6025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 11059 .loc 1 6025 20 is_stmt 0 view .LVU3466 11060 0034 236B ldr r3, [r4, #48] ARM GAS /tmp/ccRVAHyi.s page 371 11061 .LVL795: 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11062 .loc 1 6026 3 is_stmt 1 view .LVU3467 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11063 .loc 1 6026 6 is_stmt 0 view .LVU3468 11064 0036 A26B ldr r2, [r4, #56] 11065 0038 002A cmp r2, #0 11066 003a 03D0 beq .L607 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11067 .loc 1 6026 30 discriminator 1 view .LVU3469 11068 003c 112B cmp r3, #17 11069 003e 1AD0 beq .L608 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11070 .loc 1 6026 81 discriminator 2 view .LVU3470 11071 0040 212B cmp r3, #33 11072 0042 18D0 beq .L608 11073 .L607: 6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11074 .loc 1 6056 8 is_stmt 1 view .LVU3471 6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11075 .loc 1 6056 11 is_stmt 0 view .LVU3472 11076 0044 E26B ldr r2, [r4, #60] 11077 0046 002A cmp r2, #0 11078 0048 03D0 beq .L612 6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11079 .loc 1 6056 35 discriminator 1 view .LVU3473 11080 004a 122B cmp r3, #18 11081 004c 33D0 beq .L613 6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11082 .loc 1 6056 86 discriminator 2 view .LVU3474 11083 004e 222B cmp r3, #34 11084 0050 31D0 beq .L613 11085 .L612: 6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11086 .loc 1 6087 5 is_stmt 1 view .LVU3475 11087 0052 2000 movs r0, r4 11088 0054 FFF7FEFF bl I2C_TreatErrorCallback 11089 .LVL796: 11090 .L603: 6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11091 .loc 1 6089 1 is_stmt 0 view .LVU3476 11092 @ sp needed 11093 .LVL797: 6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11094 .loc 1 6089 1 view .LVU3477 11095 0058 10BD pop {r4, pc} 11096 .LVL798: 11097 .L604: 6012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11098 .loc 1 6012 5 is_stmt 1 view .LVU3478 11099 005a 2949 ldr r1, .L616+8 11100 .LVL799: 6012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11101 .loc 1 6012 5 is_stmt 0 view .LVU3479 11102 005c 2000 movs r0, r4 11103 005e FFF7FEFF bl I2C_Disable_IRQ 11104 .LVL800: ARM GAS /tmp/ccRVAHyi.s page 372 6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11105 .loc 1 6016 5 is_stmt 1 view .LVU3480 6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11106 .loc 1 6016 13 is_stmt 0 view .LVU3481 11107 0062 4123 movs r3, #65 11108 0064 E35C ldrb r3, [r4, r3] 6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11109 .loc 1 6016 8 view .LVU3482 11110 0066 602B cmp r3, #96 11111 0068 02D0 beq .L606 6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11112 .loc 1 6019 7 is_stmt 1 view .LVU3483 6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11113 .loc 1 6019 27 is_stmt 0 view .LVU3484 11114 006a 4123 movs r3, #65 11115 006c 2022 movs r2, #32 11116 006e E254 strb r2, [r4, r3] 11117 .L606: 6021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11118 .loc 1 6021 5 is_stmt 1 view .LVU3485 6021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11119 .loc 1 6021 25 is_stmt 0 view .LVU3486 11120 0070 0023 movs r3, #0 11121 0072 6363 str r3, [r4, #52] 11122 0074 DEE7 b .L605 11123 .LVL801: 11124 .L608: 6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11125 .loc 1 6029 5 is_stmt 1 view .LVU3487 6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11126 .loc 1 6029 14 is_stmt 0 view .LVU3488 11127 0076 2368 ldr r3, [r4] 11128 .LVL802: 6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11129 .loc 1 6029 24 view .LVU3489 11130 0078 1A68 ldr r2, [r3] 6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11131 .loc 1 6029 8 view .LVU3490 11132 007a 5204 lsls r2, r2, #17 11133 007c 03D5 bpl .L609 6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11134 .loc 1 6031 7 is_stmt 1 view .LVU3491 6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11135 .loc 1 6031 27 is_stmt 0 view .LVU3492 11136 007e 1A68 ldr r2, [r3] 11137 0080 2049 ldr r1, .L616+12 11138 0082 0A40 ands r2, r1 11139 0084 1A60 str r2, [r3] 11140 .L609: 6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11141 .loc 1 6034 5 is_stmt 1 view .LVU3493 6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11142 .loc 1 6034 9 is_stmt 0 view .LVU3494 11143 0086 A06B ldr r0, [r4, #56] 11144 0088 FFF7FEFF bl HAL_DMA_GetState 11145 .LVL803: 6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 373 11146 .loc 1 6034 8 view .LVU3495 11147 008c 0128 cmp r0, #1 11148 008e 0ED0 beq .L610 6038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11149 .loc 1 6038 7 is_stmt 1 view .LVU3496 6038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11150 .loc 1 6038 11 is_stmt 0 view .LVU3497 11151 0090 A36B ldr r3, [r4, #56] 6038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11152 .loc 1 6038 39 view .LVU3498 11153 0092 1D4A ldr r2, .L616+16 11154 0094 5A63 str r2, [r3, #52] 6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11155 .loc 1 6041 7 is_stmt 1 view .LVU3499 6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11156 .loc 1 6041 7 view .LVU3500 11157 0096 4023 movs r3, #64 11158 0098 0022 movs r2, #0 11159 009a E254 strb r2, [r4, r3] 6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11160 .loc 1 6044 7 view .LVU3501 6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11161 .loc 1 6044 11 is_stmt 0 view .LVU3502 11162 009c A06B ldr r0, [r4, #56] 11163 009e FFF7FEFF bl HAL_DMA_Abort_IT 11164 .LVL804: 6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11165 .loc 1 6044 10 view .LVU3503 11166 00a2 0028 cmp r0, #0 11167 00a4 D8D0 beq .L603 6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11168 .loc 1 6047 9 is_stmt 1 view .LVU3504 6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11169 .loc 1 6047 13 is_stmt 0 view .LVU3505 11170 00a6 A06B ldr r0, [r4, #56] 6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11171 .loc 1 6047 21 view .LVU3506 11172 00a8 436B ldr r3, [r0, #52] 6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11173 .loc 1 6047 9 view .LVU3507 11174 00aa 9847 blx r3 11175 .LVL805: 11176 00ac D4E7 b .L603 11177 .L610: 6052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11178 .loc 1 6052 7 is_stmt 1 view .LVU3508 11179 00ae 2000 movs r0, r4 11180 00b0 FFF7FEFF bl I2C_TreatErrorCallback 11181 .LVL806: 11182 00b4 D0E7 b .L603 11183 .LVL807: 11184 .L613: 6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11185 .loc 1 6059 5 view .LVU3509 6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11186 .loc 1 6059 14 is_stmt 0 view .LVU3510 11187 00b6 2368 ldr r3, [r4] ARM GAS /tmp/ccRVAHyi.s page 374 11188 .LVL808: 6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11189 .loc 1 6059 24 view .LVU3511 11190 00b8 1A68 ldr r2, [r3] 6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11191 .loc 1 6059 8 view .LVU3512 11192 00ba 1204 lsls r2, r2, #16 11193 00bc 03D5 bpl .L614 6061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11194 .loc 1 6061 7 is_stmt 1 view .LVU3513 6061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11195 .loc 1 6061 27 is_stmt 0 view .LVU3514 11196 00be 1A68 ldr r2, [r3] 11197 00c0 1249 ldr r1, .L616+20 11198 00c2 0A40 ands r2, r1 11199 00c4 1A60 str r2, [r3] 11200 .L614: 6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11201 .loc 1 6064 5 is_stmt 1 view .LVU3515 6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11202 .loc 1 6064 9 is_stmt 0 view .LVU3516 11203 00c6 E06B ldr r0, [r4, #60] 11204 00c8 FFF7FEFF bl HAL_DMA_GetState 11205 .LVL809: 6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11206 .loc 1 6064 8 view .LVU3517 11207 00cc 0128 cmp r0, #1 11208 00ce 0ED0 beq .L615 6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11209 .loc 1 6068 7 is_stmt 1 view .LVU3518 6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11210 .loc 1 6068 11 is_stmt 0 view .LVU3519 11211 00d0 E36B ldr r3, [r4, #60] 6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11212 .loc 1 6068 39 view .LVU3520 11213 00d2 0D4A ldr r2, .L616+16 11214 00d4 5A63 str r2, [r3, #52] 6071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11215 .loc 1 6071 7 is_stmt 1 view .LVU3521 6071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11216 .loc 1 6071 7 view .LVU3522 11217 00d6 4023 movs r3, #64 11218 00d8 0022 movs r2, #0 11219 00da E254 strb r2, [r4, r3] 6074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11220 .loc 1 6074 7 view .LVU3523 6074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11221 .loc 1 6074 11 is_stmt 0 view .LVU3524 11222 00dc E06B ldr r0, [r4, #60] 11223 00de FFF7FEFF bl HAL_DMA_Abort_IT 11224 .LVL810: 6074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11225 .loc 1 6074 10 view .LVU3525 11226 00e2 0028 cmp r0, #0 11227 00e4 B8D0 beq .L603 6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11228 .loc 1 6077 9 is_stmt 1 view .LVU3526 ARM GAS /tmp/ccRVAHyi.s page 375 6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11229 .loc 1 6077 13 is_stmt 0 view .LVU3527 11230 00e6 E06B ldr r0, [r4, #60] 6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11231 .loc 1 6077 21 view .LVU3528 11232 00e8 436B ldr r3, [r0, #52] 6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11233 .loc 1 6077 9 view .LVU3529 11234 00ea 9847 blx r3 11235 .LVL811: 11236 00ec B4E7 b .L603 11237 .L615: 6082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11238 .loc 1 6082 7 is_stmt 1 view .LVU3530 11239 00ee 2000 movs r0, r4 11240 00f0 FFF7FEFF bl I2C_TreatErrorCallback 11241 .LVL812: 11242 00f4 B0E7 b .L603 11243 .L617: 11244 00f6 C046 .align 2 11245 .L616: 11246 00f8 0000FFFF .word -65536 11247 00fc 00000000 .word I2C_Slave_ISR_IT 11248 0100 03800000 .word 32771 11249 0104 FFBFFFFF .word -16385 11250 0108 00000000 .word I2C_DMAAbort 11251 010c FF7FFFFF .word -32769 11252 .cfi_endproc 11253 .LFE101: 11255 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11256 .align 1 11257 .syntax unified 11258 .code 16 11259 .thumb_func 11260 .fpu softvfp 11262 I2C_ITSlaveCplt: 11263 .LVL813: 11264 .LFB99: 5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11265 .loc 1 5775 1 view -0 11266 .cfi_startproc 11267 @ args = 0, pretend = 0, frame = 0 11268 @ frame_needed = 0, uses_anonymous_args = 0 5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11269 .loc 1 5775 1 is_stmt 0 view .LVU3532 11270 0000 70B5 push {r4, r5, r6, lr} 11271 .LCFI77: 11272 .cfi_def_cfa_offset 16 11273 .cfi_offset 4, -16 11274 .cfi_offset 5, -12 11275 .cfi_offset 6, -8 11276 .cfi_offset 14, -4 11277 0002 0400 movs r4, r0 11278 0004 0D00 movs r5, r1 5776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11279 .loc 1 5776 3 is_stmt 1 view .LVU3533 5776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; ARM GAS /tmp/ccRVAHyi.s page 376 11280 .loc 1 5776 26 is_stmt 0 view .LVU3534 11281 0006 0268 ldr r2, [r0] 5776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11282 .loc 1 5776 12 view .LVU3535 11283 0008 1668 ldr r6, [r2] 11284 .LVL814: 5777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11285 .loc 1 5777 3 is_stmt 1 view .LVU3536 5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11286 .loc 1 5778 3 view .LVU3537 5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11287 .loc 1 5778 24 is_stmt 0 view .LVU3538 11288 000a 4123 movs r3, #65 11289 000c C35C ldrb r3, [r0, r3] 11290 000e DBB2 uxtb r3, r3 11291 .LVL815: 5781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11292 .loc 1 5781 3 is_stmt 1 view .LVU3539 11293 0010 2021 movs r1, #32 11294 .LVL816: 5781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11295 .loc 1 5781 3 is_stmt 0 view .LVU3540 11296 0012 D161 str r1, [r2, #28] 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11297 .loc 1 5784 3 is_stmt 1 view .LVU3541 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11298 .loc 1 5784 6 is_stmt 0 view .LVU3542 11299 0014 212B cmp r3, #33 11300 0016 0CD0 beq .L619 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11301 .loc 1 5784 43 discriminator 1 view .LVU3543 11302 0018 292B cmp r3, #41 11303 001a 0AD0 beq .L619 5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11304 .loc 1 5789 8 is_stmt 1 view .LVU3544 5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11305 .loc 1 5789 11 is_stmt 0 view .LVU3545 11306 001c 222B cmp r3, #34 11307 001e 01D0 beq .L622 5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11308 .loc 1 5789 48 discriminator 1 view .LVU3546 11309 0020 2A2B cmp r3, #42 11310 0022 0CD1 bne .L621 11311 .L622: 5791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11312 .loc 1 5791 5 is_stmt 1 view .LVU3547 11313 0024 4A49 ldr r1, .L634 11314 0026 2000 movs r0, r4 11315 .LVL817: 5791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11316 .loc 1 5791 5 is_stmt 0 view .LVU3548 11317 0028 FFF7FEFF bl I2C_Disable_IRQ 11318 .LVL818: 5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11319 .loc 1 5792 5 is_stmt 1 view .LVU3549 5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11320 .loc 1 5792 25 is_stmt 0 view .LVU3550 ARM GAS /tmp/ccRVAHyi.s page 377 11321 002c 2223 movs r3, #34 11322 002e 2363 str r3, [r4, #48] 11323 0030 05E0 b .L621 11324 .LVL819: 11325 .L619: 5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11326 .loc 1 5786 5 is_stmt 1 view .LVU3551 11327 0032 4849 ldr r1, .L634+4 11328 0034 2000 movs r0, r4 11329 .LVL820: 5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11330 .loc 1 5786 5 is_stmt 0 view .LVU3552 11331 0036 FFF7FEFF bl I2C_Disable_IRQ 11332 .LVL821: 5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11333 .loc 1 5787 5 is_stmt 1 view .LVU3553 5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11334 .loc 1 5787 25 is_stmt 0 view .LVU3554 11335 003a 2123 movs r3, #33 11336 003c 2363 str r3, [r4, #48] 11337 .L621: 5800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11338 .loc 1 5800 3 is_stmt 1 view .LVU3555 5800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11339 .loc 1 5800 7 is_stmt 0 view .LVU3556 11340 003e 2268 ldr r2, [r4] 5800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11341 .loc 1 5800 23 view .LVU3557 11342 0040 5168 ldr r1, [r2, #4] 11343 0042 8023 movs r3, #128 11344 0044 1B02 lsls r3, r3, #8 11345 0046 0B43 orrs r3, r1 11346 0048 5360 str r3, [r2, #4] 5803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11347 .loc 1 5803 3 is_stmt 1 view .LVU3558 11348 004a 2268 ldr r2, [r4] 11349 004c 5368 ldr r3, [r2, #4] 11350 004e 4249 ldr r1, .L634+8 11351 0050 0B40 ands r3, r1 11352 0052 5360 str r3, [r2, #4] 5806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11353 .loc 1 5806 3 view .LVU3559 11354 0054 2000 movs r0, r4 11355 0056 FFF7FEFF bl I2C_Flush_TXDR 11356 .LVL822: 5809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11357 .loc 1 5809 3 view .LVU3560 5809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11358 .loc 1 5809 6 is_stmt 0 view .LVU3561 11359 005a 7304 lsls r3, r6, #17 11360 005c 41D5 bpl .L623 5812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11361 .loc 1 5812 5 is_stmt 1 view .LVU3562 5812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11362 .loc 1 5812 9 is_stmt 0 view .LVU3563 11363 005e 2268 ldr r2, [r4] 5812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 378 11364 .loc 1 5812 25 view .LVU3564 11365 0060 1368 ldr r3, [r2] 11366 0062 3E49 ldr r1, .L634+12 11367 0064 0B40 ands r3, r1 11368 0066 1360 str r3, [r2] 5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11369 .loc 1 5814 5 is_stmt 1 view .LVU3565 5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11370 .loc 1 5814 13 is_stmt 0 view .LVU3566 11371 0068 A36B ldr r3, [r4, #56] 5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11372 .loc 1 5814 8 view .LVU3567 11373 006a 002B cmp r3, #0 11374 006c 03D0 beq .L624 5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11375 .loc 1 5816 7 is_stmt 1 view .LVU3568 5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11376 .loc 1 5816 35 is_stmt 0 view .LVU3569 11377 006e 1B68 ldr r3, [r3] 11378 0070 5B68 ldr r3, [r3, #4] 5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11379 .loc 1 5816 25 view .LVU3570 11380 0072 9BB2 uxth r3, r3 5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11381 .loc 1 5816 23 view .LVU3571 11382 0074 6385 strh r3, [r4, #42] 11383 .L624: 5832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11384 .loc 1 5832 3 is_stmt 1 view .LVU3572 5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11385 .loc 1 5835 3 view .LVU3573 5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11386 .loc 1 5835 6 is_stmt 0 view .LVU3574 11387 0076 6B07 lsls r3, r5, #29 11388 0078 11D5 bpl .L625 5838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11389 .loc 1 5838 5 is_stmt 1 view .LVU3575 5838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11390 .loc 1 5838 16 is_stmt 0 view .LVU3576 11391 007a 0423 movs r3, #4 11392 007c 9D43 bics r5, r3 11393 .LVL823: 5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11394 .loc 1 5841 5 is_stmt 1 view .LVU3577 5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11395 .loc 1 5841 36 is_stmt 0 view .LVU3578 11396 007e 2368 ldr r3, [r4] 5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11397 .loc 1 5841 46 view .LVU3579 11398 0080 5B6A ldr r3, [r3, #36] 5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11399 .loc 1 5841 21 view .LVU3580 11400 0082 626A ldr r2, [r4, #36] 11401 0084 1370 strb r3, [r2] 5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11402 .loc 1 5844 5 is_stmt 1 view .LVU3581 5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 379 11403 .loc 1 5844 19 is_stmt 0 view .LVU3582 11404 0086 636A ldr r3, [r4, #36] 11405 0088 0133 adds r3, r3, #1 11406 008a 6362 str r3, [r4, #36] 5846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11407 .loc 1 5846 5 is_stmt 1 view .LVU3583 5846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11408 .loc 1 5846 14 is_stmt 0 view .LVU3584 11409 008c 238D ldrh r3, [r4, #40] 5846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11410 .loc 1 5846 8 view .LVU3585 11411 008e 002B cmp r3, #0 11412 0090 05D0 beq .L625 5848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 11413 .loc 1 5848 7 is_stmt 1 view .LVU3586 5848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 11414 .loc 1 5848 21 is_stmt 0 view .LVU3587 11415 0092 013B subs r3, r3, #1 11416 0094 2385 strh r3, [r4, #40] 5849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11417 .loc 1 5849 7 is_stmt 1 view .LVU3588 5849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11418 .loc 1 5849 11 is_stmt 0 view .LVU3589 11419 0096 638D ldrh r3, [r4, #42] 5849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11420 .loc 1 5849 22 view .LVU3590 11421 0098 013B subs r3, r3, #1 11422 009a 9BB2 uxth r3, r3 11423 009c 6385 strh r3, [r4, #42] 11424 .L625: 5854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11425 .loc 1 5854 3 is_stmt 1 view .LVU3591 5854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11426 .loc 1 5854 11 is_stmt 0 view .LVU3592 11427 009e 638D ldrh r3, [r4, #42] 11428 00a0 9BB2 uxth r3, r3 5854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11429 .loc 1 5854 6 view .LVU3593 11430 00a2 002B cmp r3, #0 11431 00a4 03D0 beq .L626 5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11432 .loc 1 5857 5 is_stmt 1 view .LVU3594 5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11433 .loc 1 5857 21 is_stmt 0 view .LVU3595 11434 00a6 636C ldr r3, [r4, #68] 11435 00a8 0422 movs r2, #4 11436 00aa 1343 orrs r3, r2 11437 00ac 6364 str r3, [r4, #68] 11438 .L626: 5860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 11439 .loc 1 5860 3 is_stmt 1 view .LVU3596 5860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 11440 .loc 1 5860 14 is_stmt 0 view .LVU3597 11441 00ae 0023 movs r3, #0 11442 00b0 4222 movs r2, #66 11443 00b2 A354 strb r3, [r4, r2] 5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 380 11444 .loc 1 5861 3 is_stmt 1 view .LVU3598 5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11445 .loc 1 5861 17 is_stmt 0 view .LVU3599 11446 00b4 6363 str r3, [r4, #52] 5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11447 .loc 1 5863 3 is_stmt 1 view .LVU3600 5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11448 .loc 1 5863 11 is_stmt 0 view .LVU3601 11449 00b6 636C ldr r3, [r4, #68] 5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11450 .loc 1 5863 6 view .LVU3602 11451 00b8 002B cmp r3, #0 11452 00ba 21D1 bne .L631 5875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11453 .loc 1 5875 8 is_stmt 1 view .LVU3603 5875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11454 .loc 1 5875 16 is_stmt 0 view .LVU3604 11455 00bc E26A ldr r2, [r4, #44] 5875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11456 .loc 1 5875 11 view .LVU3605 11457 00be 284B ldr r3, .L634+16 11458 00c0 9A42 cmp r2, r3 11459 00c2 2AD1 bne .L632 5895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11460 .loc 1 5895 8 is_stmt 1 view .LVU3606 5895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11461 .loc 1 5895 16 is_stmt 0 view .LVU3607 11462 00c4 4123 movs r3, #65 11463 00c6 E35C ldrb r3, [r4, r3] 5895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11464 .loc 1 5895 11 view .LVU3608 11465 00c8 222B cmp r3, #34 11466 00ca 36D0 beq .L633 5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11467 .loc 1 5912 5 is_stmt 1 view .LVU3609 5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11468 .loc 1 5912 17 is_stmt 0 view .LVU3610 11469 00cc 4123 movs r3, #65 11470 00ce 2022 movs r2, #32 11471 00d0 E254 strb r2, [r4, r3] 5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11472 .loc 1 5913 5 is_stmt 1 view .LVU3611 5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11473 .loc 1 5913 25 is_stmt 0 view .LVU3612 11474 00d2 0023 movs r3, #0 11475 00d4 2363 str r3, [r4, #48] 5916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11476 .loc 1 5916 5 is_stmt 1 view .LVU3613 5916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11477 .loc 1 5916 5 view .LVU3614 11478 00d6 2032 adds r2, r2, #32 11479 00d8 A354 strb r3, [r4, r2] 5922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11480 .loc 1 5922 5 view .LVU3615 11481 00da 2000 movs r0, r4 11482 00dc FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11483 .LVL824: ARM GAS /tmp/ccRVAHyi.s page 381 5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11484 .loc 1 5925 1 is_stmt 0 view .LVU3616 11485 00e0 2AE0 b .L618 11486 .LVL825: 11487 .L623: 5819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11488 .loc 1 5819 8 is_stmt 1 view .LVU3617 5819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11489 .loc 1 5819 11 is_stmt 0 view .LVU3618 11490 00e2 3304 lsls r3, r6, #16 11491 00e4 C7D5 bpl .L624 5822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11492 .loc 1 5822 5 is_stmt 1 view .LVU3619 5822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11493 .loc 1 5822 9 is_stmt 0 view .LVU3620 11494 00e6 2268 ldr r2, [r4] 5822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11495 .loc 1 5822 25 view .LVU3621 11496 00e8 1368 ldr r3, [r2] 11497 00ea 1E49 ldr r1, .L634+20 11498 00ec 0B40 ands r3, r1 11499 00ee 1360 str r3, [r2] 5824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11500 .loc 1 5824 5 is_stmt 1 view .LVU3622 5824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11501 .loc 1 5824 13 is_stmt 0 view .LVU3623 11502 00f0 E36B ldr r3, [r4, #60] 5824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11503 .loc 1 5824 8 view .LVU3624 11504 00f2 002B cmp r3, #0 11505 00f4 BFD0 beq .L624 5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11506 .loc 1 5826 7 is_stmt 1 view .LVU3625 5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11507 .loc 1 5826 35 is_stmt 0 view .LVU3626 11508 00f6 1B68 ldr r3, [r3] 11509 00f8 5B68 ldr r3, [r3, #4] 5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11510 .loc 1 5826 25 view .LVU3627 11511 00fa 9BB2 uxth r3, r3 5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11512 .loc 1 5826 23 view .LVU3628 11513 00fc 6385 strh r3, [r4, #42] 11514 00fe BAE7 b .L624 11515 .LVL826: 11516 .L631: 5866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11517 .loc 1 5866 5 is_stmt 1 view .LVU3629 11518 0100 616C ldr r1, [r4, #68] 11519 0102 2000 movs r0, r4 11520 0104 FFF7FEFF bl I2C_ITError 11521 .LVL827: 5869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11522 .loc 1 5869 5 view .LVU3630 5869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11523 .loc 1 5869 13 is_stmt 0 view .LVU3631 11524 0108 4123 movs r3, #65 ARM GAS /tmp/ccRVAHyi.s page 382 11525 010a E35C ldrb r3, [r4, r3] 5869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11526 .loc 1 5869 8 view .LVU3632 11527 010c 282B cmp r3, #40 11528 010e 13D1 bne .L618 5872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11529 .loc 1 5872 7 is_stmt 1 view .LVU3633 11530 0110 2900 movs r1, r5 11531 0112 2000 movs r0, r4 11532 0114 FFF7FEFF bl I2C_ITListenCplt 11533 .LVL828: 11534 0118 0EE0 b .L618 11535 .L632: 5878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11536 .loc 1 5878 5 view .LVU3634 11537 011a 2000 movs r0, r4 11538 011c FFF7FEFF bl I2C_ITSlaveSeqCplt 11539 .LVL829: 5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11540 .loc 1 5880 5 view .LVU3635 5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11541 .loc 1 5880 23 is_stmt 0 view .LVU3636 11542 0120 0F4B ldr r3, .L634+16 11543 0122 E362 str r3, [r4, #44] 5881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11544 .loc 1 5881 5 is_stmt 1 view .LVU3637 5881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11545 .loc 1 5881 17 is_stmt 0 view .LVU3638 11546 0124 4123 movs r3, #65 11547 0126 2022 movs r2, #32 11548 0128 E254 strb r2, [r4, r3] 5882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11549 .loc 1 5882 5 is_stmt 1 view .LVU3639 5882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11550 .loc 1 5882 25 is_stmt 0 view .LVU3640 11551 012a 0023 movs r3, #0 11552 012c 2363 str r3, [r4, #48] 5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11553 .loc 1 5885 5 is_stmt 1 view .LVU3641 5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11554 .loc 1 5885 5 view .LVU3642 11555 012e 2032 adds r2, r2, #32 11556 0130 A354 strb r3, [r4, r2] 5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11557 .loc 1 5891 5 view .LVU3643 11558 0132 2000 movs r0, r4 11559 0134 FFF7FEFF bl HAL_I2C_ListenCpltCallback 11560 .LVL830: 11561 .L618: 5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11562 .loc 1 5925 1 is_stmt 0 view .LVU3644 11563 @ sp needed 11564 .LVL831: 11565 .LVL832: 11566 .LVL833: 5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11567 .loc 1 5925 1 view .LVU3645 ARM GAS /tmp/ccRVAHyi.s page 383 11568 0138 70BD pop {r4, r5, r6, pc} 11569 .LVL834: 11570 .L633: 5897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11571 .loc 1 5897 5 is_stmt 1 view .LVU3646 5897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11572 .loc 1 5897 17 is_stmt 0 view .LVU3647 11573 013a 1F33 adds r3, r3, #31 11574 013c 2022 movs r2, #32 11575 013e E254 strb r2, [r4, r3] 5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11576 .loc 1 5898 5 is_stmt 1 view .LVU3648 5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11577 .loc 1 5898 25 is_stmt 0 view .LVU3649 11578 0140 0023 movs r3, #0 11579 0142 2363 str r3, [r4, #48] 5901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11580 .loc 1 5901 5 is_stmt 1 view .LVU3650 5901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11581 .loc 1 5901 5 view .LVU3651 11582 0144 2032 adds r2, r2, #32 11583 0146 A354 strb r3, [r4, r2] 5907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11584 .loc 1 5907 5 view .LVU3652 11585 0148 2000 movs r0, r4 11586 014a FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11587 .LVL835: 11588 014e F3E7 b .L618 11589 .L635: 11590 .align 2 11591 .L634: 11592 0150 02800000 .word 32770 11593 0154 01800000 .word 32769 11594 0158 00E800FE .word -33495040 11595 015c FFBFFFFF .word -16385 11596 0160 0000FFFF .word -65536 11597 0164 FF7FFFFF .word -32769 11598 .cfi_endproc 11599 .LFE99: 11601 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11602 .align 1 11603 .syntax unified 11604 .code 16 11605 .thumb_func 11606 .fpu softvfp 11608 I2C_Slave_ISR_IT: 11609 .LVL836: 11610 .LFB90: 4881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11611 .loc 1 4881 1 view -0 11612 .cfi_startproc 11613 @ args = 0, pretend = 0, frame = 0 11614 @ frame_needed = 0, uses_anonymous_args = 0 4881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11615 .loc 1 4881 1 is_stmt 0 view .LVU3654 11616 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11617 .LCFI78: ARM GAS /tmp/ccRVAHyi.s page 384 11618 .cfi_def_cfa_offset 24 11619 .cfi_offset 3, -24 11620 .cfi_offset 4, -20 11621 .cfi_offset 5, -16 11622 .cfi_offset 6, -12 11623 .cfi_offset 7, -8 11624 .cfi_offset 14, -4 11625 0002 0400 movs r4, r0 11626 0004 0D00 movs r5, r1 11627 0006 1600 movs r6, r2 4882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11628 .loc 1 4882 3 is_stmt 1 view .LVU3655 4882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11629 .loc 1 4882 12 is_stmt 0 view .LVU3656 11630 0008 C76A ldr r7, [r0, #44] 11631 .LVL837: 4883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11632 .loc 1 4883 3 is_stmt 1 view .LVU3657 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11633 .loc 1 4886 3 view .LVU3658 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11634 .loc 1 4886 3 view .LVU3659 11635 000a 4023 movs r3, #64 11636 000c C35C ldrb r3, [r0, r3] 11637 000e 012B cmp r3, #1 11638 0010 00D1 bne .LCB10805 11639 0012 96E0 b .L650 @long jump 11640 .LCB10805: 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11641 .loc 1 4886 3 discriminator 2 view .LVU3660 11642 0014 0123 movs r3, #1 11643 0016 4022 movs r2, #64 11644 .LVL838: 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11645 .loc 1 4886 3 is_stmt 0 discriminator 2 view .LVU3661 11646 0018 8354 strb r3, [r0, r2] 4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11647 .loc 1 4889 3 is_stmt 1 discriminator 2 view .LVU3662 4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11648 .loc 1 4889 8 is_stmt 0 discriminator 2 view .LVU3663 11649 001a 4A09 lsrs r2, r1, #5 4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11650 .loc 1 4889 6 discriminator 2 view .LVU3664 11651 001c 1342 tst r3, r2 11652 001e 01D0 beq .L638 4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11653 .loc 1 4889 61 discriminator 1 view .LVU3665 11654 0020 B306 lsls r3, r6, #26 11655 0022 17D4 bmi .L651 11656 .LVL839: 11657 .L638: 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11658 .loc 1 4896 3 is_stmt 1 view .LVU3666 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11659 .loc 1 4896 6 is_stmt 0 view .LVU3667 11660 0024 EB06 lsls r3, r5, #27 11661 0026 40D5 bpl .L639 ARM GAS /tmp/ccRVAHyi.s page 385 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11662 .loc 1 4896 58 discriminator 1 view .LVU3668 11663 0028 F306 lsls r3, r6, #27 11664 002a 3ED5 bpl .L639 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11665 .loc 1 4903 5 is_stmt 1 view .LVU3669 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11666 .loc 1 4903 13 is_stmt 0 view .LVU3670 11667 002c 638D ldrh r3, [r4, #42] 11668 002e 9BB2 uxth r3, r3 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11669 .loc 1 4903 8 view .LVU3671 11670 0030 002B cmp r3, #0 11671 0032 28D1 bne .L640 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11672 .loc 1 4905 7 is_stmt 1 view .LVU3672 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11673 .loc 1 4905 16 is_stmt 0 view .LVU3673 11674 0034 4133 adds r3, r3, #65 11675 0036 E35C ldrb r3, [r4, r3] 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11676 .loc 1 4905 10 view .LVU3674 11677 0038 282B cmp r3, #40 11678 003a 0ED0 beq .L652 11679 .L641: 4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11680 .loc 1 4912 12 is_stmt 1 view .LVU3675 4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11681 .loc 1 4912 21 is_stmt 0 view .LVU3676 11682 003c 4123 movs r3, #65 11683 003e E35C ldrb r3, [r4, r3] 4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11684 .loc 1 4912 15 view .LVU3677 11685 0040 292B cmp r3, #41 11686 0042 13D0 beq .L653 11687 .L643: 4927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11688 .loc 1 4927 9 is_stmt 1 view .LVU3678 11689 0044 2368 ldr r3, [r4] 11690 0046 1022 movs r2, #16 11691 0048 DA61 str r2, [r3, #28] 11692 .L642: 5004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11693 .loc 1 5004 3 view .LVU3679 5007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11694 .loc 1 5007 3 view .LVU3680 5007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11695 .loc 1 5007 3 view .LVU3681 11696 004a 4023 movs r3, #64 11697 004c 0022 movs r2, #0 11698 004e E254 strb r2, [r4, r3] 5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11699 .loc 1 5009 3 view .LVU3682 5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11700 .loc 1 5009 10 is_stmt 0 view .LVU3683 11701 0050 0020 movs r0, #0 11702 .L637: ARM GAS /tmp/ccRVAHyi.s page 386 5010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11703 .loc 1 5010 1 view .LVU3684 11704 @ sp needed 11705 .LVL840: 11706 .LVL841: 11707 .LVL842: 11708 .LVL843: 5010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11709 .loc 1 5010 1 view .LVU3685 11710 0052 F8BD pop {r3, r4, r5, r6, r7, pc} 11711 .LVL844: 11712 .L651: 4893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11713 .loc 1 4893 5 is_stmt 1 view .LVU3686 11714 0054 FFF7FEFF bl I2C_ITSlaveCplt 11715 .LVL845: 4893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11716 .loc 1 4893 5 is_stmt 0 view .LVU3687 11717 0058 E4E7 b .L638 11718 .L652: 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11719 .loc 1 4905 49 discriminator 1 view .LVU3688 11720 005a 8023 movs r3, #128 11721 005c 9B04 lsls r3, r3, #18 11722 005e 9F42 cmp r7, r3 11723 0060 ECD1 bne .L641 4910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11724 .loc 1 4910 9 is_stmt 1 view .LVU3689 11725 0062 2900 movs r1, r5 11726 0064 2000 movs r0, r4 11727 0066 FFF7FEFF bl I2C_ITListenCplt 11728 .LVL846: 11729 006a EEE7 b .L642 11730 .L653: 4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11731 .loc 1 4912 62 is_stmt 0 discriminator 1 view .LVU3690 11732 006c 364B ldr r3, .L655 11733 006e 9F42 cmp r7, r3 11734 0070 E8D0 beq .L643 4915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11735 .loc 1 4915 9 is_stmt 1 view .LVU3691 11736 0072 2368 ldr r3, [r4] 11737 0074 1022 movs r2, #16 11738 0076 DA61 str r2, [r3, #28] 4918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11739 .loc 1 4918 9 view .LVU3692 11740 0078 2000 movs r0, r4 11741 007a FFF7FEFF bl I2C_Flush_TXDR 11742 .LVL847: 4922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11743 .loc 1 4922 9 view .LVU3693 11744 007e 2000 movs r0, r4 11745 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt 11746 .LVL848: 11747 0084 E1E7 b .L642 11748 .L640: 4934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 387 11749 .loc 1 4934 7 view .LVU3694 11750 0086 2368 ldr r3, [r4] 11751 0088 1022 movs r2, #16 11752 008a DA61 str r2, [r3, #28] 4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11753 .loc 1 4937 7 view .LVU3695 4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11754 .loc 1 4937 23 is_stmt 0 view .LVU3696 11755 008c 636C ldr r3, [r4, #68] 11756 008e 0C3A subs r2, r2, #12 11757 0090 1343 orrs r3, r2 11758 0092 6364 str r3, [r4, #68] 4939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11759 .loc 1 4939 7 is_stmt 1 view .LVU3697 4939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11760 .loc 1 4939 10 is_stmt 0 view .LVU3698 11761 0094 002F cmp r7, #0 11762 0096 03D0 beq .L644 4939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11763 .loc 1 4939 43 discriminator 1 view .LVU3699 11764 0098 8023 movs r3, #128 11765 009a 5B04 lsls r3, r3, #17 11766 009c 9F42 cmp r7, r3 11767 009e D4D1 bne .L642 11768 .L644: 4942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11769 .loc 1 4942 9 is_stmt 1 view .LVU3700 11770 00a0 616C ldr r1, [r4, #68] 11771 00a2 2000 movs r0, r4 11772 00a4 FFF7FEFF bl I2C_ITError 11773 .LVL849: 11774 00a8 CFE7 b .L642 11775 .L639: 4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11776 .loc 1 4946 8 view .LVU3701 4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11777 .loc 1 4946 11 is_stmt 0 view .LVU3702 11778 00aa 6B07 lsls r3, r5, #29 11779 00ac 1ED5 bpl .L645 4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11780 .loc 1 4946 65 discriminator 1 view .LVU3703 11781 00ae 7307 lsls r3, r6, #29 11782 00b0 1CD5 bpl .L645 4949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11783 .loc 1 4949 5 is_stmt 1 view .LVU3704 4949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11784 .loc 1 4949 13 is_stmt 0 view .LVU3705 11785 00b2 638D ldrh r3, [r4, #42] 11786 00b4 9BB2 uxth r3, r3 4949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11787 .loc 1 4949 8 view .LVU3706 11788 00b6 002B cmp r3, #0 11789 00b8 0DD0 beq .L646 4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11790 .loc 1 4952 7 is_stmt 1 view .LVU3707 4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11791 .loc 1 4952 38 is_stmt 0 view .LVU3708 ARM GAS /tmp/ccRVAHyi.s page 388 11792 00ba 2368 ldr r3, [r4] 4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11793 .loc 1 4952 48 view .LVU3709 11794 00bc 5B6A ldr r3, [r3, #36] 4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11795 .loc 1 4952 23 view .LVU3710 11796 00be 626A ldr r2, [r4, #36] 11797 00c0 1370 strb r3, [r2] 4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11798 .loc 1 4955 7 is_stmt 1 view .LVU3711 4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11799 .loc 1 4955 21 is_stmt 0 view .LVU3712 11800 00c2 636A ldr r3, [r4, #36] 11801 00c4 0133 adds r3, r3, #1 11802 00c6 6362 str r3, [r4, #36] 4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 11803 .loc 1 4957 7 is_stmt 1 view .LVU3713 4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 11804 .loc 1 4957 11 is_stmt 0 view .LVU3714 11805 00c8 238D ldrh r3, [r4, #40] 4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 11806 .loc 1 4957 21 view .LVU3715 11807 00ca 013B subs r3, r3, #1 11808 00cc 2385 strh r3, [r4, #40] 4958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11809 .loc 1 4958 7 is_stmt 1 view .LVU3716 4958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11810 .loc 1 4958 11 is_stmt 0 view .LVU3717 11811 00ce 638D ldrh r3, [r4, #42] 4958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11812 .loc 1 4958 22 view .LVU3718 11813 00d0 013B subs r3, r3, #1 11814 00d2 9BB2 uxth r3, r3 11815 00d4 6385 strh r3, [r4, #42] 11816 .L646: 4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11817 .loc 1 4961 5 is_stmt 1 view .LVU3719 4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11818 .loc 1 4961 14 is_stmt 0 view .LVU3720 11819 00d6 638D ldrh r3, [r4, #42] 11820 00d8 9BB2 uxth r3, r3 4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11821 .loc 1 4961 8 view .LVU3721 11822 00da 002B cmp r3, #0 11823 00dc B5D1 bne .L642 4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11824 .loc 1 4961 33 discriminator 1 view .LVU3722 11825 00de 1A4B ldr r3, .L655 11826 00e0 9F42 cmp r7, r3 11827 00e2 B2D0 beq .L642 4965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11828 .loc 1 4965 7 is_stmt 1 view .LVU3723 11829 00e4 2000 movs r0, r4 11830 00e6 FFF7FEFF bl I2C_ITSlaveSeqCplt 11831 .LVL850: 11832 00ea AEE7 b .L642 11833 .L645: ARM GAS /tmp/ccRVAHyi.s page 389 4968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11834 .loc 1 4968 8 view .LVU3724 4968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11835 .loc 1 4968 11 is_stmt 0 view .LVU3725 11836 00ec 2B07 lsls r3, r5, #28 11837 00ee 01D5 bpl .L647 4968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11838 .loc 1 4968 65 discriminator 1 view .LVU3726 11839 00f0 3307 lsls r3, r6, #28 11840 00f2 16D4 bmi .L654 11841 .L647: 4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11842 .loc 1 4973 8 is_stmt 1 view .LVU3727 4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11843 .loc 1 4973 11 is_stmt 0 view .LVU3728 11844 00f4 AB07 lsls r3, r5, #30 11845 00f6 A8D5 bpl .L642 4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11846 .loc 1 4973 65 discriminator 1 view .LVU3729 11847 00f8 B307 lsls r3, r6, #30 11848 00fa A6D5 bpl .L642 4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11849 .loc 1 4980 5 is_stmt 1 view .LVU3730 4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11850 .loc 1 4980 13 is_stmt 0 view .LVU3731 11851 00fc 638D ldrh r3, [r4, #42] 11852 00fe 9BB2 uxth r3, r3 4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11853 .loc 1 4980 8 view .LVU3732 11854 0100 002B cmp r3, #0 11855 0102 13D0 beq .L648 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11856 .loc 1 4983 7 is_stmt 1 view .LVU3733 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11857 .loc 1 4983 11 is_stmt 0 view .LVU3734 11858 0104 2368 ldr r3, [r4] 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11859 .loc 1 4983 30 view .LVU3735 11860 0106 626A ldr r2, [r4, #36] 11861 0108 1278 ldrb r2, [r2] 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11862 .loc 1 4983 28 view .LVU3736 11863 010a 9A62 str r2, [r3, #40] 4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11864 .loc 1 4986 7 is_stmt 1 view .LVU3737 4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11865 .loc 1 4986 21 is_stmt 0 view .LVU3738 11866 010c 636A ldr r3, [r4, #36] 11867 010e 0133 adds r3, r3, #1 11868 0110 6362 str r3, [r4, #36] 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 11869 .loc 1 4988 7 is_stmt 1 view .LVU3739 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 11870 .loc 1 4988 11 is_stmt 0 view .LVU3740 11871 0112 638D ldrh r3, [r4, #42] 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 11872 .loc 1 4988 22 view .LVU3741 ARM GAS /tmp/ccRVAHyi.s page 390 11873 0114 013B subs r3, r3, #1 11874 0116 9BB2 uxth r3, r3 11875 0118 6385 strh r3, [r4, #42] 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11876 .loc 1 4989 7 is_stmt 1 view .LVU3742 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11877 .loc 1 4989 11 is_stmt 0 view .LVU3743 11878 011a 238D ldrh r3, [r4, #40] 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11879 .loc 1 4989 21 view .LVU3744 11880 011c 013B subs r3, r3, #1 11881 011e 2385 strh r3, [r4, #40] 11882 0120 93E7 b .L642 11883 .L654: 4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11884 .loc 1 4971 5 is_stmt 1 view .LVU3745 11885 0122 2900 movs r1, r5 11886 0124 2000 movs r0, r4 11887 0126 FFF7FEFF bl I2C_ITAddrCplt 11888 .LVL851: 11889 012a 8EE7 b .L642 11890 .L648: 4993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11891 .loc 1 4993 7 view .LVU3746 4993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11892 .loc 1 4993 10 is_stmt 0 view .LVU3747 11893 012c 8023 movs r3, #128 11894 012e 5B04 lsls r3, r3, #17 11895 0130 9F42 cmp r7, r3 11896 0132 02D0 beq .L649 4993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11897 .loc 1 4993 42 discriminator 1 view .LVU3748 11898 0134 002F cmp r7, #0 11899 0136 00D0 beq .LCB11090 11900 0138 87E7 b .L642 @long jump 11901 .LCB11090: 11902 .L649: 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11903 .loc 1 4997 9 is_stmt 1 view .LVU3749 11904 013a 2000 movs r0, r4 11905 013c FFF7FEFF bl I2C_ITSlaveSeqCplt 11906 .LVL852: 11907 0140 83E7 b .L642 11908 .LVL853: 11909 .L650: 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11910 .loc 1 4886 3 is_stmt 0 view .LVU3750 11911 0142 0220 movs r0, #2 11912 .LVL854: 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11913 .loc 1 4886 3 view .LVU3751 11914 0144 85E7 b .L637 11915 .L656: 11916 0146 C046 .align 2 11917 .L655: 11918 0148 0000FFFF .word -65536 11919 .cfi_endproc ARM GAS /tmp/ccRVAHyi.s page 391 11920 .LFE90: 11922 .section .text.I2C_ITMasterCplt,"ax",%progbits 11923 .align 1 11924 .syntax unified 11925 .code 16 11926 .thumb_func 11927 .fpu softvfp 11929 I2C_ITMasterCplt: 11930 .LVL855: 11931 .LFB98: 5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 11932 .loc 1 5632 1 is_stmt 1 view -0 11933 .cfi_startproc 11934 @ args = 0, pretend = 0, frame = 8 11935 @ frame_needed = 0, uses_anonymous_args = 0 5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 11936 .loc 1 5632 1 is_stmt 0 view .LVU3753 11937 0000 30B5 push {r4, r5, lr} 11938 .LCFI79: 11939 .cfi_def_cfa_offset 12 11940 .cfi_offset 4, -12 11941 .cfi_offset 5, -8 11942 .cfi_offset 14, -4 11943 0002 83B0 sub sp, sp, #12 11944 .LCFI80: 11945 .cfi_def_cfa_offset 24 11946 0004 0400 movs r4, r0 11947 0006 0D00 movs r5, r1 5633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11948 .loc 1 5633 3 is_stmt 1 view .LVU3754 5634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t tmpreg; 11949 .loc 1 5634 3 view .LVU3755 11950 .LVL856: 5635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11951 .loc 1 5635 3 view .LVU3756 5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11952 .loc 1 5638 3 view .LVU3757 11953 0008 0368 ldr r3, [r0] 11954 000a 2022 movs r2, #32 11955 000c DA61 str r2, [r3, #28] 5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11956 .loc 1 5641 3 view .LVU3758 5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11957 .loc 1 5641 11 is_stmt 0 view .LVU3759 11958 000e 4123 movs r3, #65 11959 0010 C35C ldrb r3, [r0, r3] 5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11960 .loc 1 5641 6 view .LVU3760 11961 0012 212B cmp r3, #33 11962 0014 29D0 beq .L668 5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11963 .loc 1 5646 8 is_stmt 1 view .LVU3761 5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11964 .loc 1 5646 16 is_stmt 0 view .LVU3762 11965 0016 4123 movs r3, #65 11966 0018 C35C ldrb r3, [r0, r3] 5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 392 11967 .loc 1 5646 11 view .LVU3763 11968 001a 222B cmp r3, #34 11969 001c 2BD0 beq .L669 11970 .LVL857: 11971 .L659: 5654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11972 .loc 1 5654 3 is_stmt 1 view .LVU3764 5657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11973 .loc 1 5657 3 view .LVU3765 11974 001e 2268 ldr r2, [r4] 11975 0020 5368 ldr r3, [r2, #4] 11976 0022 3B49 ldr r1, .L674 11977 0024 0B40 ands r3, r1 11978 0026 5360 str r3, [r2, #4] 5660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11979 .loc 1 5660 3 view .LVU3766 5660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11980 .loc 1 5660 23 is_stmt 0 view .LVU3767 11981 0028 0023 movs r3, #0 11982 002a 6363 str r3, [r4, #52] 5661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11983 .loc 1 5661 3 is_stmt 1 view .LVU3768 5661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11984 .loc 1 5661 23 is_stmt 0 view .LVU3769 11985 002c 394B ldr r3, .L674+4 11986 002e E362 str r3, [r4, #44] 5663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11987 .loc 1 5663 3 is_stmt 1 view .LVU3770 5663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11988 .loc 1 5663 6 is_stmt 0 view .LVU3771 11989 0030 EB06 lsls r3, r5, #27 11990 0032 06D5 bpl .L660 5666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11991 .loc 1 5666 5 is_stmt 1 view .LVU3772 11992 0034 2368 ldr r3, [r4] 11993 0036 1022 movs r2, #16 11994 0038 DA61 str r2, [r3, #28] 5669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11995 .loc 1 5669 5 view .LVU3773 5669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11996 .loc 1 5669 21 is_stmt 0 view .LVU3774 11997 003a 636C ldr r3, [r4, #68] 11998 003c 0C3A subs r2, r2, #12 11999 003e 1343 orrs r3, r2 12000 0040 6364 str r3, [r4, #68] 12001 .L660: 5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12002 .loc 1 5673 3 is_stmt 1 view .LVU3775 5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12003 .loc 1 5673 12 is_stmt 0 view .LVU3776 12004 0042 4123 movs r3, #65 12005 0044 E35C ldrb r3, [r4, r3] 5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12006 .loc 1 5673 6 view .LVU3777 12007 0046 602B cmp r3, #96 12008 0048 1BD0 beq .L670 12009 .L661: ARM GAS /tmp/ccRVAHyi.s page 393 5681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12010 .loc 1 5681 3 is_stmt 1 view .LVU3778 12011 004a 2000 movs r0, r4 12012 004c FFF7FEFF bl I2C_Flush_TXDR 12013 .LVL858: 5684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12014 .loc 1 5684 3 view .LVU3779 5684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12015 .loc 1 5684 12 is_stmt 0 view .LVU3780 12016 0050 626C ldr r2, [r4, #68] 12017 .LVL859: 5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12018 .loc 1 5687 3 is_stmt 1 view .LVU3781 5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12019 .loc 1 5687 12 is_stmt 0 view .LVU3782 12020 0052 4123 movs r3, #65 12021 0054 E35C ldrb r3, [r4, r3] 5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12022 .loc 1 5687 6 view .LVU3783 12023 0056 602B cmp r3, #96 12024 0058 01D0 beq .L662 5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12025 .loc 1 5687 44 discriminator 1 view .LVU3784 12026 005a 002A cmp r2, #0 12027 005c 1AD0 beq .L663 12028 .L662: 5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12029 .loc 1 5690 5 is_stmt 1 view .LVU3785 12030 005e 616C ldr r1, [r4, #68] 12031 0060 2000 movs r0, r4 12032 0062 FFF7FEFF bl I2C_ITError 12033 .LVL860: 12034 .L657: 5766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12035 .loc 1 5766 1 is_stmt 0 view .LVU3786 12036 0066 03B0 add sp, sp, #12 12037 @ sp needed 12038 .LVL861: 12039 .LVL862: 5766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12040 .loc 1 5766 1 view .LVU3787 12041 0068 30BD pop {r4, r5, pc} 12042 .LVL863: 12043 .L668: 5643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12044 .loc 1 5643 5 is_stmt 1 view .LVU3788 12045 006a 0121 movs r1, #1 12046 .LVL864: 5643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12047 .loc 1 5643 5 is_stmt 0 view .LVU3789 12048 006c FFF7FEFF bl I2C_Disable_IRQ 12049 .LVL865: 5644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12050 .loc 1 5644 5 is_stmt 1 view .LVU3790 5644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12051 .loc 1 5644 25 is_stmt 0 view .LVU3791 12052 0070 1123 movs r3, #17 ARM GAS /tmp/ccRVAHyi.s page 394 12053 0072 2363 str r3, [r4, #48] 12054 0074 D3E7 b .L659 12055 .LVL866: 12056 .L669: 5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12057 .loc 1 5648 5 is_stmt 1 view .LVU3792 12058 0076 0221 movs r1, #2 12059 .LVL867: 5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12060 .loc 1 5648 5 is_stmt 0 view .LVU3793 12061 0078 FFF7FEFF bl I2C_Disable_IRQ 12062 .LVL868: 5649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12063 .loc 1 5649 5 is_stmt 1 view .LVU3794 5649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12064 .loc 1 5649 25 is_stmt 0 view .LVU3795 12065 007c 1223 movs r3, #18 12066 007e 2363 str r3, [r4, #48] 12067 0080 CDE7 b .L659 12068 .L670: 5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12069 .loc 1 5673 44 discriminator 1 view .LVU3796 12070 0082 6B07 lsls r3, r5, #29 12071 0084 E1D5 bpl .L661 5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12072 .loc 1 5676 5 is_stmt 1 view .LVU3797 5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12073 .loc 1 5676 27 is_stmt 0 view .LVU3798 12074 0086 2368 ldr r3, [r4] 5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12075 .loc 1 5676 37 view .LVU3799 12076 0088 5A6A ldr r2, [r3, #36] 12077 008a FF23 movs r3, #255 12078 008c 1340 ands r3, r2 5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12079 .loc 1 5676 12 view .LVU3800 12080 008e 0193 str r3, [sp, #4] 5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12081 .loc 1 5677 5 is_stmt 1 view .LVU3801 12082 0090 019B ldr r3, [sp, #4] 12083 0092 DAE7 b .L661 12084 .LVL869: 12085 .L663: 5693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12086 .loc 1 5693 8 view .LVU3802 5693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12087 .loc 1 5693 16 is_stmt 0 view .LVU3803 12088 0094 4123 movs r3, #65 12089 0096 E35C ldrb r3, [r4, r3] 5693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12090 .loc 1 5693 11 view .LVU3804 12091 0098 212B cmp r3, #33 12092 009a 15D0 beq .L671 5728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12093 .loc 1 5728 8 is_stmt 1 view .LVU3805 5728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12094 .loc 1 5728 16 is_stmt 0 view .LVU3806 ARM GAS /tmp/ccRVAHyi.s page 395 12095 009c 4123 movs r3, #65 12096 009e E35C ldrb r3, [r4, r3] 5728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12097 .loc 1 5728 11 view .LVU3807 12098 00a0 222B cmp r3, #34 12099 00a2 E0D1 bne .L657 5730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12100 .loc 1 5730 5 is_stmt 1 view .LVU3808 5730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12101 .loc 1 5730 17 is_stmt 0 view .LVU3809 12102 00a4 1F33 adds r3, r3, #31 12103 00a6 2022 movs r2, #32 12104 .LVL870: 5730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12105 .loc 1 5730 17 view .LVU3810 12106 00a8 E254 strb r2, [r4, r3] 5731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12107 .loc 1 5731 5 is_stmt 1 view .LVU3811 5731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12108 .loc 1 5731 25 is_stmt 0 view .LVU3812 12109 00aa 0023 movs r3, #0 12110 00ac 2363 str r3, [r4, #48] 5733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12111 .loc 1 5733 5 is_stmt 1 view .LVU3813 5733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12112 .loc 1 5733 13 is_stmt 0 view .LVU3814 12113 00ae 4233 adds r3, r3, #66 12114 00b0 E35C ldrb r3, [r4, r3] 5733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12115 .loc 1 5733 8 view .LVU3815 12116 00b2 402B cmp r3, #64 12117 00b4 23D0 beq .L672 5749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12118 .loc 1 5749 7 is_stmt 1 view .LVU3816 5749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12119 .loc 1 5749 18 is_stmt 0 view .LVU3817 12120 00b6 0023 movs r3, #0 12121 00b8 4222 movs r2, #66 12122 00ba A354 strb r3, [r4, r2] 5752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12123 .loc 1 5752 7 is_stmt 1 view .LVU3818 5752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12124 .loc 1 5752 7 view .LVU3819 12125 00bc 023A subs r2, r2, #2 12126 00be A354 strb r3, [r4, r2] 5758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12127 .loc 1 5758 7 view .LVU3820 12128 00c0 2000 movs r0, r4 12129 00c2 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12130 .LVL871: 5765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12131 .loc 1 5765 3 view .LVU3821 5766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12132 .loc 1 5766 1 is_stmt 0 view .LVU3822 12133 00c6 CEE7 b .L657 12134 .LVL872: 12135 .L671: ARM GAS /tmp/ccRVAHyi.s page 396 5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12136 .loc 1 5695 5 is_stmt 1 view .LVU3823 5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12137 .loc 1 5695 17 is_stmt 0 view .LVU3824 12138 00c8 2033 adds r3, r3, #32 12139 00ca 2022 movs r2, #32 12140 .LVL873: 5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12141 .loc 1 5695 17 view .LVU3825 12142 00cc E254 strb r2, [r4, r3] 5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12143 .loc 1 5696 5 is_stmt 1 view .LVU3826 5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12144 .loc 1 5696 25 is_stmt 0 view .LVU3827 12145 00ce 0023 movs r3, #0 12146 00d0 2363 str r3, [r4, #48] 5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12147 .loc 1 5698 5 is_stmt 1 view .LVU3828 5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12148 .loc 1 5698 13 is_stmt 0 view .LVU3829 12149 00d2 4233 adds r3, r3, #66 12150 00d4 E35C ldrb r3, [r4, r3] 5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12151 .loc 1 5698 8 view .LVU3830 12152 00d6 402B cmp r3, #64 12153 00d8 08D0 beq .L673 5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12154 .loc 1 5714 7 is_stmt 1 view .LVU3831 5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12155 .loc 1 5714 18 is_stmt 0 view .LVU3832 12156 00da 0023 movs r3, #0 12157 00dc 4222 movs r2, #66 12158 00de A354 strb r3, [r4, r2] 5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12159 .loc 1 5717 7 is_stmt 1 view .LVU3833 5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12160 .loc 1 5717 7 view .LVU3834 12161 00e0 023A subs r2, r2, #2 12162 00e2 A354 strb r3, [r4, r2] 5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12163 .loc 1 5723 7 view .LVU3835 12164 00e4 2000 movs r0, r4 12165 00e6 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12166 .LVL874: 12167 00ea BCE7 b .L657 12168 .L673: 5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12169 .loc 1 5700 7 view .LVU3836 5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12170 .loc 1 5700 18 is_stmt 0 view .LVU3837 12171 00ec 0023 movs r3, #0 12172 00ee 2232 adds r2, r2, #34 12173 00f0 A354 strb r3, [r4, r2] 5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12174 .loc 1 5703 7 is_stmt 1 view .LVU3838 5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12175 .loc 1 5703 7 view .LVU3839 ARM GAS /tmp/ccRVAHyi.s page 397 12176 00f2 023A subs r2, r2, #2 12177 00f4 A354 strb r3, [r4, r2] 5709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12178 .loc 1 5709 7 view .LVU3840 12179 00f6 2000 movs r0, r4 12180 00f8 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12181 .LVL875: 12182 00fc B3E7 b .L657 12183 .L672: 5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12184 .loc 1 5735 7 view .LVU3841 5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12185 .loc 1 5735 18 is_stmt 0 view .LVU3842 12186 00fe 0023 movs r3, #0 12187 0100 2232 adds r2, r2, #34 12188 0102 A354 strb r3, [r4, r2] 5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12189 .loc 1 5738 7 is_stmt 1 view .LVU3843 5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12190 .loc 1 5738 7 view .LVU3844 12191 0104 023A subs r2, r2, #2 12192 0106 A354 strb r3, [r4, r2] 5744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12193 .loc 1 5744 7 view .LVU3845 12194 0108 2000 movs r0, r4 12195 010a FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12196 .LVL876: 12197 010e AAE7 b .L657 12198 .L675: 12199 .align 2 12200 .L674: 12201 0110 00E800FE .word -33495040 12202 0114 0000FFFF .word -65536 12203 .cfi_endproc 12204 .LFE98: 12206 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12207 .align 1 12208 .syntax unified 12209 .code 16 12210 .thumb_func 12211 .fpu softvfp 12213 I2C_Master_ISR_IT: 12214 .LVL877: 12215 .LFB89: 4735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 12216 .loc 1 4735 1 view -0 12217 .cfi_startproc 12218 @ args = 0, pretend = 0, frame = 0 12219 @ frame_needed = 0, uses_anonymous_args = 0 4735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 12220 .loc 1 4735 1 is_stmt 0 view .LVU3847 12221 0000 70B5 push {r4, r5, r6, lr} 12222 .LCFI81: 12223 .cfi_def_cfa_offset 16 12224 .cfi_offset 4, -16 12225 .cfi_offset 5, -12 12226 .cfi_offset 6, -8 ARM GAS /tmp/ccRVAHyi.s page 398 12227 .cfi_offset 14, -4 12228 0002 82B0 sub sp, sp, #8 12229 .LCFI82: 12230 .cfi_def_cfa_offset 24 12231 0004 0400 movs r4, r0 12232 0006 0D00 movs r5, r1 12233 0008 1600 movs r6, r2 4736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12234 .loc 1 4736 3 is_stmt 1 view .LVU3848 4737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12235 .loc 1 4737 3 view .LVU3849 12236 .LVL878: 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12237 .loc 1 4740 3 view .LVU3850 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12238 .loc 1 4740 3 view .LVU3851 12239 000a 4023 movs r3, #64 12240 000c C35C ldrb r3, [r0, r3] 12241 000e 012B cmp r3, #1 12242 0010 00D1 bne .LCB11419 12243 0012 ADE0 b .L690 @long jump 12244 .LCB11419: 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12245 .loc 1 4740 3 discriminator 2 view .LVU3852 12246 0014 0123 movs r3, #1 12247 0016 4022 movs r2, #64 12248 .LVL879: 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12249 .loc 1 4740 3 is_stmt 0 discriminator 2 view .LVU3853 12250 0018 8354 strb r3, [r0, r2] 4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12251 .loc 1 4742 3 is_stmt 1 discriminator 2 view .LVU3854 4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12252 .loc 1 4742 8 is_stmt 0 discriminator 2 view .LVU3855 12253 001a 0A09 lsrs r2, r1, #4 4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12254 .loc 1 4742 6 discriminator 2 view .LVU3856 12255 001c 1342 tst r3, r2 12256 001e 01D0 beq .L678 4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12257 .loc 1 4742 58 discriminator 1 view .LVU3857 12258 0020 F306 lsls r3, r6, #27 12259 0022 1ED4 bmi .L691 12260 .L678: 4756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12261 .loc 1 4756 8 is_stmt 1 view .LVU3858 4756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12262 .loc 1 4756 11 is_stmt 0 view .LVU3859 12263 0024 6B07 lsls r3, r5, #29 12264 0026 26D5 bpl .L680 4756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12265 .loc 1 4756 65 discriminator 1 view .LVU3860 12266 0028 7307 lsls r3, r6, #29 12267 002a 24D5 bpl .L680 4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12268 .loc 1 4760 5 is_stmt 1 view .LVU3861 4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 399 12269 .loc 1 4760 16 is_stmt 0 view .LVU3862 12270 002c 0423 movs r3, #4 12271 002e 9D43 bics r5, r3 12272 .LVL880: 4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12273 .loc 1 4763 5 is_stmt 1 view .LVU3863 4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12274 .loc 1 4763 36 is_stmt 0 view .LVU3864 12275 0030 2368 ldr r3, [r4] 4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12276 .loc 1 4763 46 view .LVU3865 12277 0032 5B6A ldr r3, [r3, #36] 4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12278 .loc 1 4763 21 view .LVU3866 12279 0034 626A ldr r2, [r4, #36] 12280 0036 1370 strb r3, [r2] 4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12281 .loc 1 4766 5 is_stmt 1 view .LVU3867 4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12282 .loc 1 4766 19 is_stmt 0 view .LVU3868 12283 0038 636A ldr r3, [r4, #36] 12284 003a 0133 adds r3, r3, #1 12285 003c 6362 str r3, [r4, #36] 4768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12286 .loc 1 4768 5 is_stmt 1 view .LVU3869 4768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12287 .loc 1 4768 9 is_stmt 0 view .LVU3870 12288 003e 238D ldrh r3, [r4, #40] 4768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12289 .loc 1 4768 19 view .LVU3871 12290 0040 013B subs r3, r3, #1 12291 0042 2385 strh r3, [r4, #40] 4769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12292 .loc 1 4769 5 is_stmt 1 view .LVU3872 4769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12293 .loc 1 4769 9 is_stmt 0 view .LVU3873 12294 0044 638D ldrh r3, [r4, #42] 4769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12295 .loc 1 4769 20 view .LVU3874 12296 0046 013B subs r3, r3, #1 12297 0048 9BB2 uxth r3, r3 12298 004a 6385 strh r3, [r4, #42] 12299 .LVL881: 12300 .L679: 4856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12301 .loc 1 4856 3 is_stmt 1 view .LVU3875 4858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12302 .loc 1 4858 3 view .LVU3876 4858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12303 .loc 1 4858 6 is_stmt 0 view .LVU3877 12304 004c AB06 lsls r3, r5, #26 12305 004e 02D5 bpl .L689 4858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12306 .loc 1 4858 61 discriminator 1 view .LVU3878 12307 0050 B306 lsls r3, r6, #26 12308 0052 00D5 bpl .LCB11491 12309 0054 87E0 b .L692 @long jump ARM GAS /tmp/ccRVAHyi.s page 400 12310 .LCB11491: 12311 .L689: 4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12312 .loc 1 4866 3 is_stmt 1 view .LVU3879 4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12313 .loc 1 4866 3 view .LVU3880 12314 0056 4023 movs r3, #64 12315 0058 0022 movs r2, #0 12316 005a E254 strb r2, [r4, r3] 4868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12317 .loc 1 4868 3 view .LVU3881 4868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12318 .loc 1 4868 10 is_stmt 0 view .LVU3882 12319 005c 0020 movs r0, #0 12320 .L677: 4869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12321 .loc 1 4869 1 view .LVU3883 12322 005e 02B0 add sp, sp, #8 12323 @ sp needed 12324 .LVL882: 12325 .LVL883: 12326 .LVL884: 4869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12327 .loc 1 4869 1 view .LVU3884 12328 0060 70BD pop {r4, r5, r6, pc} 12329 .LVL885: 12330 .L691: 4746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12331 .loc 1 4746 5 is_stmt 1 view .LVU3885 12332 0062 0368 ldr r3, [r0] 12333 0064 1022 movs r2, #16 12334 0066 DA61 str r2, [r3, #28] 4751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12335 .loc 1 4751 5 view .LVU3886 4751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12336 .loc 1 4751 21 is_stmt 0 view .LVU3887 12337 0068 436C ldr r3, [r0, #68] 12338 006a 0C3A subs r2, r2, #12 12339 006c 1343 orrs r3, r2 12340 006e 4364 str r3, [r0, #68] 4754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12341 .loc 1 4754 5 is_stmt 1 view .LVU3888 12342 0070 FFF7FEFF bl I2C_Flush_TXDR 12343 .LVL886: 4754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12344 .loc 1 4754 5 is_stmt 0 view .LVU3889 12345 0074 EAE7 b .L679 12346 .LVL887: 12347 .L680: 4771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12348 .loc 1 4771 8 is_stmt 1 view .LVU3890 4771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12349 .loc 1 4771 11 is_stmt 0 view .LVU3891 12350 0076 AB07 lsls r3, r5, #30 12351 0078 10D5 bpl .L681 4771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12352 .loc 1 4771 65 discriminator 1 view .LVU3892 ARM GAS /tmp/ccRVAHyi.s page 401 12353 007a B307 lsls r3, r6, #30 12354 007c 0ED5 bpl .L681 4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12355 .loc 1 4775 5 is_stmt 1 view .LVU3893 4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12356 .loc 1 4775 9 is_stmt 0 view .LVU3894 12357 007e 2368 ldr r3, [r4] 4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12358 .loc 1 4775 28 view .LVU3895 12359 0080 626A ldr r2, [r4, #36] 12360 0082 1278 ldrb r2, [r2] 4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12361 .loc 1 4775 26 view .LVU3896 12362 0084 9A62 str r2, [r3, #40] 4778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12363 .loc 1 4778 5 is_stmt 1 view .LVU3897 4778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12364 .loc 1 4778 19 is_stmt 0 view .LVU3898 12365 0086 636A ldr r3, [r4, #36] 12366 0088 0133 adds r3, r3, #1 12367 008a 6362 str r3, [r4, #36] 4780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12368 .loc 1 4780 5 is_stmt 1 view .LVU3899 4780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12369 .loc 1 4780 9 is_stmt 0 view .LVU3900 12370 008c 238D ldrh r3, [r4, #40] 4780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12371 .loc 1 4780 19 view .LVU3901 12372 008e 013B subs r3, r3, #1 12373 0090 2385 strh r3, [r4, #40] 4781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12374 .loc 1 4781 5 is_stmt 1 view .LVU3902 4781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12375 .loc 1 4781 9 is_stmt 0 view .LVU3903 12376 0092 638D ldrh r3, [r4, #42] 4781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12377 .loc 1 4781 20 view .LVU3904 12378 0094 013B subs r3, r3, #1 12379 0096 9BB2 uxth r3, r3 12380 0098 6385 strh r3, [r4, #42] 12381 009a D7E7 b .L679 12382 .L681: 4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12383 .loc 1 4783 8 is_stmt 1 view .LVU3905 4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12384 .loc 1 4783 11 is_stmt 0 view .LVU3906 12385 009c 2B06 lsls r3, r5, #24 12386 009e 40D5 bpl .L682 4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12387 .loc 1 4783 64 discriminator 1 view .LVU3907 12388 00a0 7306 lsls r3, r6, #25 12389 00a2 3ED5 bpl .L682 4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12390 .loc 1 4786 5 is_stmt 1 view .LVU3908 4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12391 .loc 1 4786 14 is_stmt 0 view .LVU3909 12392 00a4 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccRVAHyi.s page 402 12393 00a6 9BB2 uxth r3, r3 4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12394 .loc 1 4786 8 view .LVU3910 12395 00a8 002B cmp r3, #0 12396 00aa 2DD0 beq .L683 4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12397 .loc 1 4786 41 discriminator 1 view .LVU3911 12398 00ac 238D ldrh r3, [r4, #40] 4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12399 .loc 1 4786 33 discriminator 1 view .LVU3912 12400 00ae 002B cmp r3, #0 12401 00b0 2AD1 bne .L683 4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12402 .loc 1 4788 7 is_stmt 1 view .LVU3913 4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12403 .loc 1 4788 35 is_stmt 0 view .LVU3914 12404 00b2 2368 ldr r3, [r4] 4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12405 .loc 1 4788 45 view .LVU3915 12406 00b4 5968 ldr r1, [r3, #4] 12407 .LVL888: 4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12408 .loc 1 4788 18 view .LVU3916 12409 00b6 8905 lsls r1, r1, #22 12410 00b8 890D lsrs r1, r1, #22 12411 .LVL889: 4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12412 .loc 1 4790 7 is_stmt 1 view .LVU3917 4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12413 .loc 1 4790 15 is_stmt 0 view .LVU3918 12414 00ba 638D ldrh r3, [r4, #42] 12415 00bc 9BB2 uxth r3, r3 4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12416 .loc 1 4790 10 view .LVU3919 12417 00be FF2B cmp r3, #255 12418 00c0 0ED8 bhi .L693 4797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12419 .loc 1 4797 9 is_stmt 1 view .LVU3920 4797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12420 .loc 1 4797 30 is_stmt 0 view .LVU3921 12421 00c2 628D ldrh r2, [r4, #42] 12422 00c4 92B2 uxth r2, r2 4797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12423 .loc 1 4797 24 view .LVU3922 12424 00c6 2285 strh r2, [r4, #40] 4798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12425 .loc 1 4798 9 is_stmt 1 view .LVU3923 4798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12426 .loc 1 4798 17 is_stmt 0 view .LVU3924 12427 00c8 E06A ldr r0, [r4, #44] 12428 .LVL890: 4798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12429 .loc 1 4798 12 view .LVU3925 12430 00ca 2A4B ldr r3, .L694 12431 00cc 9842 cmp r0, r3 12432 00ce 12D0 beq .L685 4800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); ARM GAS /tmp/ccRVAHyi.s page 403 12433 .loc 1 4800 11 is_stmt 1 view .LVU3926 12434 00d0 E36A ldr r3, [r4, #44] 12435 00d2 D2B2 uxtb r2, r2 12436 00d4 0020 movs r0, #0 12437 00d6 0090 str r0, [sp] 12438 00d8 2000 movs r0, r4 12439 00da FFF7FEFF bl I2C_TransferConfig 12440 .LVL891: 4800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12441 .loc 1 4800 11 is_stmt 0 view .LVU3927 12442 00de B5E7 b .L679 12443 .LVL892: 12444 .L693: 4792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12445 .loc 1 4792 9 is_stmt 1 view .LVU3928 4792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12446 .loc 1 4792 24 is_stmt 0 view .LVU3929 12447 00e0 FF23 movs r3, #255 12448 00e2 2385 strh r3, [r4, #40] 4793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12449 .loc 1 4793 9 is_stmt 1 view .LVU3930 12450 00e4 7F3B subs r3, r3, #127 12451 00e6 0022 movs r2, #0 12452 00e8 0092 str r2, [sp] 12453 00ea 5B04 lsls r3, r3, #17 12454 00ec FF32 adds r2, r2, #255 12455 00ee 2000 movs r0, r4 12456 .LVL893: 4793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12457 .loc 1 4793 9 is_stmt 0 view .LVU3931 12458 00f0 FFF7FEFF bl I2C_TransferConfig 12459 .LVL894: 4793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12460 .loc 1 4793 9 view .LVU3932 12461 00f4 AAE7 b .L679 12462 .LVL895: 12463 .L685: 4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12464 .loc 1 4805 11 is_stmt 1 view .LVU3933 12465 00f6 8023 movs r3, #128 12466 00f8 D2B2 uxtb r2, r2 12467 00fa 0020 movs r0, #0 12468 00fc 0090 str r0, [sp] 12469 00fe 9B04 lsls r3, r3, #18 12470 0100 2000 movs r0, r4 12471 0102 FFF7FEFF bl I2C_TransferConfig 12472 .LVL896: 4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12473 .loc 1 4805 11 is_stmt 0 view .LVU3934 12474 0106 A1E7 b .L679 12475 .LVL897: 12476 .L683: 4813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12477 .loc 1 4813 7 is_stmt 1 view .LVU3935 4813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12478 .loc 1 4813 11 is_stmt 0 view .LVU3936 12479 0108 2368 ldr r3, [r4] ARM GAS /tmp/ccRVAHyi.s page 404 12480 010a 5B68 ldr r3, [r3, #4] 4813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12481 .loc 1 4813 10 view .LVU3937 12482 010c 9B01 lsls r3, r3, #6 12483 010e 03D4 bmi .L686 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12484 .loc 1 4816 9 is_stmt 1 view .LVU3938 12485 0110 2000 movs r0, r4 12486 .LVL898: 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12487 .loc 1 4816 9 is_stmt 0 view .LVU3939 12488 0112 FFF7FEFF bl I2C_ITMasterSeqCplt 12489 .LVL899: 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12490 .loc 1 4816 9 view .LVU3940 12491 0116 99E7 b .L679 12492 .LVL900: 12493 .L686: 4822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12494 .loc 1 4822 9 is_stmt 1 view .LVU3941 12495 0118 4021 movs r1, #64 12496 .LVL901: 4822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12497 .loc 1 4822 9 is_stmt 0 view .LVU3942 12498 011a 2000 movs r0, r4 12499 .LVL902: 4822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12500 .loc 1 4822 9 view .LVU3943 12501 011c FFF7FEFF bl I2C_ITError 12502 .LVL903: 12503 0120 94E7 b .L679 12504 .LVL904: 12505 .L682: 4826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12506 .loc 1 4826 8 is_stmt 1 view .LVU3944 4826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12507 .loc 1 4826 11 is_stmt 0 view .LVU3945 12508 0122 6B06 lsls r3, r5, #25 12509 0124 00D4 bmi .LCB11714 12510 0126 91E7 b .L679 @long jump 12511 .LCB11714: 4826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12512 .loc 1 4826 63 discriminator 1 view .LVU3946 12513 0128 7306 lsls r3, r6, #25 12514 012a 00D4 bmi .LCB11719 12515 012c 8EE7 b .L679 @long jump 12516 .LCB11719: 4829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12517 .loc 1 4829 5 is_stmt 1 view .LVU3947 4829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12518 .loc 1 4829 13 is_stmt 0 view .LVU3948 12519 012e 638D ldrh r3, [r4, #42] 12520 0130 9BB2 uxth r3, r3 4829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12521 .loc 1 4829 8 view .LVU3949 12522 0132 002B cmp r3, #0 12523 0134 12D1 bne .L687 ARM GAS /tmp/ccRVAHyi.s page 405 4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12524 .loc 1 4831 7 is_stmt 1 view .LVU3950 4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12525 .loc 1 4831 11 is_stmt 0 view .LVU3951 12526 0136 2368 ldr r3, [r4] 12527 0138 5A68 ldr r2, [r3, #4] 4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12528 .loc 1 4831 10 view .LVU3952 12529 013a 9201 lsls r2, r2, #6 12530 013c 00D5 bpl .LCB11731 12531 013e 85E7 b .L679 @long jump 12532 .LCB11731: 4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12533 .loc 1 4834 9 is_stmt 1 view .LVU3953 4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12534 .loc 1 4834 17 is_stmt 0 view .LVU3954 12535 0140 E16A ldr r1, [r4, #44] 12536 .LVL905: 4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12537 .loc 1 4834 12 view .LVU3955 12538 0142 0C4A ldr r2, .L694 12539 0144 9142 cmp r1, r2 12540 0146 05D1 bne .L688 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12541 .loc 1 4837 11 is_stmt 1 view .LVU3956 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12542 .loc 1 4837 31 is_stmt 0 view .LVU3957 12543 0148 5968 ldr r1, [r3, #4] 12544 014a 8022 movs r2, #128 12545 014c D201 lsls r2, r2, #7 12546 014e 0A43 orrs r2, r1 12547 0150 5A60 str r2, [r3, #4] 12548 0152 7BE7 b .L679 12549 .L688: 4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12550 .loc 1 4842 11 is_stmt 1 view .LVU3958 12551 0154 2000 movs r0, r4 12552 .LVL906: 4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12553 .loc 1 4842 11 is_stmt 0 view .LVU3959 12554 0156 FFF7FEFF bl I2C_ITMasterSeqCplt 12555 .LVL907: 12556 015a 77E7 b .L679 12557 .LVL908: 12558 .L687: 4850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12559 .loc 1 4850 7 is_stmt 1 view .LVU3960 12560 015c 4021 movs r1, #64 12561 .LVL909: 4850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12562 .loc 1 4850 7 is_stmt 0 view .LVU3961 12563 015e 2000 movs r0, r4 12564 .LVL910: 4850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12565 .loc 1 4850 7 view .LVU3962 12566 0160 FFF7FEFF bl I2C_ITError 12567 .LVL911: ARM GAS /tmp/ccRVAHyi.s page 406 12568 0164 72E7 b .L679 12569 .LVL912: 12570 .L692: 4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12571 .loc 1 4862 5 is_stmt 1 view .LVU3963 12572 0166 2900 movs r1, r5 12573 0168 2000 movs r0, r4 12574 016a FFF7FEFF bl I2C_ITMasterCplt 12575 .LVL913: 12576 016e 72E7 b .L689 12577 .LVL914: 12578 .L690: 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12579 .loc 1 4740 3 is_stmt 0 view .LVU3964 12580 0170 0220 movs r0, #2 12581 .LVL915: 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12582 .loc 1 4740 3 view .LVU3965 12583 0172 74E7 b .L677 12584 .L695: 12585 .align 2 12586 .L694: 12587 0174 0000FFFF .word -65536 12588 .cfi_endproc 12589 .LFE89: 12591 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 12592 .align 1 12593 .syntax unified 12594 .code 16 12595 .thumb_func 12596 .fpu softvfp 12598 I2C_Slave_ISR_DMA: 12599 .LVL916: 12600 .LFB92: 5162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12601 .loc 1 5162 1 is_stmt 1 view -0 12602 .cfi_startproc 12603 @ args = 0, pretend = 0, frame = 0 12604 @ frame_needed = 0, uses_anonymous_args = 0 5162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12605 .loc 1 5162 1 is_stmt 0 view .LVU3967 12606 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 12607 .LCFI83: 12608 .cfi_def_cfa_offset 24 12609 .cfi_offset 3, -24 12610 .cfi_offset 4, -20 12611 .cfi_offset 5, -16 12612 .cfi_offset 6, -12 12613 .cfi_offset 7, -8 12614 .cfi_offset 14, -4 12615 0002 0400 movs r4, r0 12616 0004 0D00 movs r5, r1 12617 0006 1600 movs r6, r2 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 12618 .loc 1 5163 3 is_stmt 1 view .LVU3968 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 12619 .loc 1 5163 12 is_stmt 0 view .LVU3969 ARM GAS /tmp/ccRVAHyi.s page 407 12620 0008 C76A ldr r7, [r0, #44] 12621 .LVL917: 5164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12622 .loc 1 5164 3 is_stmt 1 view .LVU3970 5165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12623 .loc 1 5165 3 view .LVU3971 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12624 .loc 1 5168 3 view .LVU3972 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12625 .loc 1 5168 3 view .LVU3973 12626 000a 4023 movs r3, #64 12627 000c C35C ldrb r3, [r0, r3] 12628 000e 012B cmp r3, #1 12629 0010 00D1 bne .LCB11827 12630 0012 85E0 b .L714 @long jump 12631 .LCB11827: 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12632 .loc 1 5168 3 discriminator 2 view .LVU3974 12633 0014 0123 movs r3, #1 12634 0016 4022 movs r2, #64 12635 .LVL918: 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12636 .loc 1 5168 3 is_stmt 0 discriminator 2 view .LVU3975 12637 0018 8354 strb r3, [r0, r2] 5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12638 .loc 1 5171 3 is_stmt 1 discriminator 2 view .LVU3976 5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12639 .loc 1 5171 8 is_stmt 0 discriminator 2 view .LVU3977 12640 001a 4A09 lsrs r2, r1, #5 5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12641 .loc 1 5171 6 discriminator 2 view .LVU3978 12642 001c 1342 tst r3, r2 12643 001e 01D0 beq .L698 5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12644 .loc 1 5171 58 discriminator 1 view .LVU3979 12645 0020 B306 lsls r3, r6, #26 12646 0022 14D4 bmi .L718 12647 .LVL919: 12648 .L698: 5178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12649 .loc 1 5178 3 is_stmt 1 view .LVU3980 5178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12650 .loc 1 5178 6 is_stmt 0 view .LVU3981 12651 0024 EB06 lsls r3, r5, #27 12652 0026 6DD5 bpl .L699 5178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12653 .loc 1 5178 55 discriminator 1 view .LVU3982 12654 0028 F306 lsls r3, r6, #27 12655 002a 6BD5 bpl .L699 5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12656 .loc 1 5185 5 is_stmt 1 view .LVU3983 5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12657 .loc 1 5185 10 is_stmt 0 view .LVU3984 12658 002c B20B lsrs r2, r6, #14 12659 002e 0123 movs r3, #1 12660 0030 1340 ands r3, r2 5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) ARM GAS /tmp/ccRVAHyi.s page 408 12661 .loc 1 5185 8 view .LVU3985 12662 0032 01D1 bne .L700 5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 12663 .loc 1 5185 68 discriminator 1 view .LVU3986 12664 0034 3204 lsls r2, r6, #16 12665 0036 61D5 bpl .L701 12666 .L700: 5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12667 .loc 1 5189 7 is_stmt 1 view .LVU3987 5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12668 .loc 1 5189 15 is_stmt 0 view .LVU3988 12669 0038 E26B ldr r2, [r4, #60] 5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12670 .loc 1 5189 10 view .LVU3989 12671 003a 002A cmp r2, #0 12672 003c 0AD0 beq .L715 5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12673 .loc 1 5191 9 is_stmt 1 view .LVU3990 5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12674 .loc 1 5191 12 is_stmt 0 view .LVU3991 12675 003e 3104 lsls r1, r6, #16 12676 0040 0AD5 bpl .L716 5193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12677 .loc 1 5193 11 is_stmt 1 view .LVU3992 5193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12678 .loc 1 5193 15 is_stmt 0 view .LVU3993 12679 0042 1268 ldr r2, [r2] 12680 0044 5268 ldr r2, [r2, #4] 5193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12681 .loc 1 5193 14 view .LVU3994 12682 0046 002A cmp r2, #0 12683 0048 2DD0 beq .L717 5164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12684 .loc 1 5164 12 view .LVU3995 12685 004a 0021 movs r1, #0 12686 004c 05E0 b .L702 12687 .LVL920: 12688 .L718: 5175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12689 .loc 1 5175 5 is_stmt 1 view .LVU3996 12690 004e FFF7FEFF bl I2C_ITSlaveCplt 12691 .LVL921: 5175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12692 .loc 1 5175 5 is_stmt 0 view .LVU3997 12693 0052 E7E7 b .L698 12694 .L715: 5164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 12695 .loc 1 5164 12 view .LVU3998 12696 0054 0021 movs r1, #0 12697 0056 00E0 b .L702 12698 .L716: 12699 0058 0021 movs r1, #0 12700 .L702: 12701 .LVL922: 5201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12702 .loc 1 5201 7 is_stmt 1 view .LVU3999 5201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 409 12703 .loc 1 5201 15 is_stmt 0 view .LVU4000 12704 005a A26B ldr r2, [r4, #56] 5201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12705 .loc 1 5201 10 view .LVU4001 12706 005c 002A cmp r2, #0 12707 005e 05D0 beq .L703 5203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12708 .loc 1 5203 9 is_stmt 1 view .LVU4002 5203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12709 .loc 1 5203 12 is_stmt 0 view .LVU4003 12710 0060 002B cmp r3, #0 12711 0062 03D0 beq .L703 5205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12712 .loc 1 5205 11 is_stmt 1 view .LVU4004 5205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12713 .loc 1 5205 15 is_stmt 0 view .LVU4005 12714 0064 1368 ldr r3, [r2] 12715 0066 5B68 ldr r3, [r3, #4] 5205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12716 .loc 1 5205 14 view .LVU4006 12717 0068 002B cmp r3, #0 12718 006a 1ED0 beq .L704 12719 .L703: 5212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12720 .loc 1 5212 7 is_stmt 1 view .LVU4007 5212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12721 .loc 1 5212 10 is_stmt 0 view .LVU4008 12722 006c 0129 cmp r1, #1 12723 006e 1CD0 beq .L704 5243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12724 .loc 1 5243 9 is_stmt 1 view .LVU4009 12725 0070 2368 ldr r3, [r4] 12726 0072 1022 movs r2, #16 12727 0074 DA61 str r2, [r3, #28] 5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12728 .loc 1 5246 9 view .LVU4010 5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12729 .loc 1 5246 25 is_stmt 0 view .LVU4011 12730 0076 636C ldr r3, [r4, #68] 12731 0078 0C3A subs r2, r2, #12 12732 007a 1343 orrs r3, r2 12733 007c 6364 str r3, [r4, #68] 5249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12734 .loc 1 5249 9 is_stmt 1 view .LVU4012 5249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12735 .loc 1 5249 18 is_stmt 0 view .LVU4013 12736 007e 4123 movs r3, #65 12737 0080 E35C ldrb r3, [r4, r3] 12738 0082 DBB2 uxtb r3, r3 12739 .LVL923: 5251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12740 .loc 1 5251 9 is_stmt 1 view .LVU4014 5251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12741 .loc 1 5251 12 is_stmt 0 view .LVU4015 12742 0084 002F cmp r7, #0 12743 0086 03D0 beq .L709 5251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 410 12744 .loc 1 5251 45 discriminator 1 view .LVU4016 12745 0088 8022 movs r2, #128 12746 008a 5204 lsls r2, r2, #17 12747 008c 9742 cmp r7, r2 12748 008e 3DD1 bne .L707 12749 .L709: 5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12750 .loc 1 5253 11 is_stmt 1 view .LVU4017 5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12751 .loc 1 5253 14 is_stmt 0 view .LVU4018 12752 0090 212B cmp r3, #33 12753 0092 2CD0 beq .L710 5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12754 .loc 1 5253 51 discriminator 1 view .LVU4019 12755 0094 292B cmp r3, #41 12756 0096 2AD0 beq .L710 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12757 .loc 1 5257 16 is_stmt 1 view .LVU4020 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12758 .loc 1 5257 19 is_stmt 0 view .LVU4021 12759 0098 222B cmp r3, #34 12760 009a 01D0 beq .L713 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12761 .loc 1 5257 56 discriminator 1 view .LVU4022 12762 009c 2A2B cmp r3, #42 12763 009e 28D1 bne .L712 12764 .L713: 5259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12765 .loc 1 5259 13 is_stmt 1 view .LVU4023 5259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12766 .loc 1 5259 33 is_stmt 0 view .LVU4024 12767 00a0 2223 movs r3, #34 12768 .LVL924: 5259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12769 .loc 1 5259 33 view .LVU4025 12770 00a2 2363 str r3, [r4, #48] 12771 00a4 25E0 b .L712 12772 .LVL925: 12773 .L717: 5195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12774 .loc 1 5195 26 view .LVU4026 12775 00a6 0121 movs r1, #1 12776 00a8 D7E7 b .L702 12777 .LVL926: 12778 .L704: 5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12779 .loc 1 5214 9 is_stmt 1 view .LVU4027 5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12780 .loc 1 5214 18 is_stmt 0 view .LVU4028 12781 00aa 4123 movs r3, #65 12782 00ac E35C ldrb r3, [r4, r3] 5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12783 .loc 1 5214 12 view .LVU4029 12784 00ae 282B cmp r3, #40 12785 00b0 07D0 beq .L719 12786 .L706: 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 411 12787 .loc 1 5221 14 is_stmt 1 view .LVU4030 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12788 .loc 1 5221 23 is_stmt 0 view .LVU4031 12789 00b2 4123 movs r3, #65 12790 00b4 E35C ldrb r3, [r4, r3] 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12791 .loc 1 5221 17 view .LVU4032 12792 00b6 292B cmp r3, #41 12793 00b8 0CD0 beq .L720 12794 .L708: 5236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12795 .loc 1 5236 11 is_stmt 1 view .LVU4033 12796 00ba 2368 ldr r3, [r4] 12797 00bc 1022 movs r2, #16 12798 00be DA61 str r2, [r3, #28] 12799 00c0 24E0 b .L707 12800 .L719: 5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12801 .loc 1 5214 51 is_stmt 0 discriminator 1 view .LVU4034 12802 00c2 8023 movs r3, #128 12803 00c4 9B04 lsls r3, r3, #18 12804 00c6 9F42 cmp r7, r3 12805 00c8 F3D1 bne .L706 5219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12806 .loc 1 5219 11 is_stmt 1 view .LVU4035 12807 00ca 2900 movs r1, r5 12808 .LVL927: 5219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12809 .loc 1 5219 11 is_stmt 0 view .LVU4036 12810 00cc 2000 movs r0, r4 12811 00ce FFF7FEFF bl I2C_ITListenCplt 12812 .LVL928: 12813 00d2 1BE0 b .L707 12814 .LVL929: 12815 .L720: 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12816 .loc 1 5221 64 discriminator 1 view .LVU4037 12817 00d4 134B ldr r3, .L722 12818 00d6 9F42 cmp r7, r3 12819 00d8 EFD0 beq .L708 5224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12820 .loc 1 5224 11 is_stmt 1 view .LVU4038 12821 00da 2368 ldr r3, [r4] 12822 00dc 1022 movs r2, #16 12823 00de DA61 str r2, [r3, #28] 5227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12824 .loc 1 5227 11 view .LVU4039 12825 00e0 2000 movs r0, r4 12826 00e2 FFF7FEFF bl I2C_Flush_TXDR 12827 .LVL930: 5231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12828 .loc 1 5231 11 view .LVU4040 12829 00e6 2000 movs r0, r4 12830 00e8 FFF7FEFF bl I2C_ITSlaveSeqCplt 12831 .LVL931: 12832 00ec 0EE0 b .L707 12833 .LVL932: ARM GAS /tmp/ccRVAHyi.s page 412 12834 .L710: 5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12835 .loc 1 5255 13 view .LVU4041 5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12836 .loc 1 5255 33 is_stmt 0 view .LVU4042 12837 00ee 2123 movs r3, #33 12838 .LVL933: 5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12839 .loc 1 5255 33 view .LVU4043 12840 00f0 2363 str r3, [r4, #48] 12841 .L712: 5267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12842 .loc 1 5267 11 is_stmt 1 view .LVU4044 12843 00f2 616C ldr r1, [r4, #68] 12844 .LVL934: 5267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12845 .loc 1 5267 11 is_stmt 0 view .LVU4045 12846 00f4 2000 movs r0, r4 12847 00f6 FFF7FEFF bl I2C_ITError 12848 .LVL935: 12849 00fa 07E0 b .L707 12850 .LVL936: 12851 .L701: 5274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12852 .loc 1 5274 7 is_stmt 1 view .LVU4046 12853 00fc 2368 ldr r3, [r4] 12854 00fe 1022 movs r2, #16 12855 0100 DA61 str r2, [r3, #28] 12856 0102 03E0 b .L707 12857 .L699: 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12858 .loc 1 5277 8 view .LVU4047 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12859 .loc 1 5277 11 is_stmt 0 view .LVU4048 12860 0104 2B07 lsls r3, r5, #28 12861 0106 01D5 bpl .L707 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12862 .loc 1 5277 62 discriminator 1 view .LVU4049 12863 0108 3307 lsls r3, r6, #28 12864 010a 04D4 bmi .L721 12865 .LVL937: 12866 .L707: 5285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12867 .loc 1 5285 3 is_stmt 1 view .LVU4050 5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12868 .loc 1 5288 3 view .LVU4051 5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12869 .loc 1 5288 3 view .LVU4052 12870 010c 4023 movs r3, #64 12871 010e 0022 movs r2, #0 12872 0110 E254 strb r2, [r4, r3] 5290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12873 .loc 1 5290 3 view .LVU4053 5290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12874 .loc 1 5290 10 is_stmt 0 view .LVU4054 12875 0112 0020 movs r0, #0 12876 .L697: ARM GAS /tmp/ccRVAHyi.s page 413 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12877 .loc 1 5291 1 view .LVU4055 12878 @ sp needed 12879 .LVL938: 12880 .LVL939: 12881 .LVL940: 12882 .LVL941: 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12883 .loc 1 5291 1 view .LVU4056 12884 0114 F8BD pop {r3, r4, r5, r6, r7, pc} 12885 .LVL942: 12886 .L721: 5280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12887 .loc 1 5280 5 is_stmt 1 view .LVU4057 12888 0116 2900 movs r1, r5 12889 0118 2000 movs r0, r4 12890 011a FFF7FEFF bl I2C_ITAddrCplt 12891 .LVL943: 12892 011e F5E7 b .L707 12893 .LVL944: 12894 .L714: 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12895 .loc 1 5168 3 is_stmt 0 view .LVU4058 12896 0120 0220 movs r0, #2 12897 .LVL945: 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12898 .loc 1 5168 3 view .LVU4059 12899 0122 F7E7 b .L697 12900 .L723: 12901 .align 2 12902 .L722: 12903 0124 0000FFFF .word -65536 12904 .cfi_endproc 12905 .LFE92: 12907 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 12908 .align 1 12909 .syntax unified 12910 .code 16 12911 .thumb_func 12912 .fpu softvfp 12914 I2C_Master_ISR_DMA: 12915 .LVL946: 12916 .LFB91: 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 12917 .loc 1 5022 1 is_stmt 1 view -0 12918 .cfi_startproc 12919 @ args = 0, pretend = 0, frame = 0 12920 @ frame_needed = 0, uses_anonymous_args = 0 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 12921 .loc 1 5022 1 is_stmt 0 view .LVU4061 12922 0000 10B5 push {r4, lr} 12923 .LCFI84: 12924 .cfi_def_cfa_offset 8 12925 .cfi_offset 4, -8 12926 .cfi_offset 14, -4 12927 0002 82B0 sub sp, sp, #8 12928 .LCFI85: ARM GAS /tmp/ccRVAHyi.s page 414 12929 .cfi_def_cfa_offset 16 12930 0004 0400 movs r4, r0 5023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 12931 .loc 1 5023 3 is_stmt 1 view .LVU4062 5024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12932 .loc 1 5024 3 view .LVU4063 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12933 .loc 1 5027 3 view .LVU4064 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12934 .loc 1 5027 3 view .LVU4065 12935 0006 4023 movs r3, #64 12936 0008 C35C ldrb r3, [r0, r3] 12937 000a 012B cmp r3, #1 12938 000c 00D1 bne .LCB12158 12939 000e 91E0 b .L737 @long jump 12940 .LCB12158: 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12941 .loc 1 5027 3 discriminator 2 view .LVU4066 12942 0010 0123 movs r3, #1 12943 0012 4020 movs r0, #64 12944 .LVL947: 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12945 .loc 1 5027 3 is_stmt 0 discriminator 2 view .LVU4067 12946 0014 2354 strb r3, [r4, r0] 5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12947 .loc 1 5029 3 is_stmt 1 discriminator 2 view .LVU4068 5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12948 .loc 1 5029 8 is_stmt 0 discriminator 2 view .LVU4069 12949 0016 0809 lsrs r0, r1, #4 5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12950 .loc 1 5029 6 discriminator 2 view .LVU4070 12951 0018 0342 tst r3, r0 12952 001a 01D0 beq .L726 5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12953 .loc 1 5029 55 discriminator 1 view .LVU4071 12954 001c D306 lsls r3, r2, #27 12955 001e 2FD4 bmi .L739 12956 .L726: 5046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12957 .loc 1 5046 8 is_stmt 1 view .LVU4072 5046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12958 .loc 1 5046 11 is_stmt 0 view .LVU4073 12959 0020 0B06 lsls r3, r1, #24 12960 0022 60D5 bpl .L728 5046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12961 .loc 1 5046 61 discriminator 1 view .LVU4074 12962 0024 5306 lsls r3, r2, #25 12963 0026 5ED5 bpl .L728 5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12964 .loc 1 5050 5 is_stmt 1 view .LVU4075 12965 0028 2268 ldr r2, [r4] 12966 .LVL948: 5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12967 .loc 1 5050 5 is_stmt 0 view .LVU4076 12968 002a 1368 ldr r3, [r2] 12969 002c 4021 movs r1, #64 12970 .LVL949: ARM GAS /tmp/ccRVAHyi.s page 415 5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12971 .loc 1 5050 5 view .LVU4077 12972 002e 8B43 bics r3, r1 12973 0030 1360 str r3, [r2] 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12974 .loc 1 5052 5 is_stmt 1 view .LVU4078 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12975 .loc 1 5052 13 is_stmt 0 view .LVU4079 12976 0032 638D ldrh r3, [r4, #42] 12977 0034 9BB2 uxth r3, r3 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12978 .loc 1 5052 8 view .LVU4080 12979 0036 002B cmp r3, #0 12980 0038 48D0 beq .L729 5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12981 .loc 1 5055 7 is_stmt 1 view .LVU4081 5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12982 .loc 1 5055 35 is_stmt 0 view .LVU4082 12983 003a 2368 ldr r3, [r4] 5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12984 .loc 1 5055 45 view .LVU4083 12985 003c 5968 ldr r1, [r3, #4] 5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12986 .loc 1 5055 18 view .LVU4084 12987 003e 8905 lsls r1, r1, #22 12988 0040 890D lsrs r1, r1, #22 12989 .LVL950: 5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12990 .loc 1 5058 7 is_stmt 1 view .LVU4085 5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12991 .loc 1 5058 15 is_stmt 0 view .LVU4086 12992 0042 638D ldrh r3, [r4, #42] 12993 0044 9BB2 uxth r3, r3 5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12994 .loc 1 5058 10 view .LVU4087 12995 0046 FF2B cmp r3, #255 12996 0048 2ED9 bls .L730 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12997 .loc 1 5060 9 is_stmt 1 view .LVU4088 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 12998 .loc 1 5060 24 is_stmt 0 view .LVU4089 12999 004a FF23 movs r3, #255 13000 004c 2385 strh r3, [r4, #40] 5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13001 .loc 1 5061 9 is_stmt 1 view .LVU4090 13002 .LVL951: 5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13003 .loc 1 5061 18 is_stmt 0 view .LVU4091 13004 004e 8023 movs r3, #128 13005 0050 5B04 lsls r3, r3, #17 13006 .LVL952: 13007 .L731: 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13008 .loc 1 5077 7 is_stmt 1 view .LVU4092 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13009 .loc 1 5077 57 is_stmt 0 view .LVU4093 13010 0052 228D ldrh r2, [r4, #40] ARM GAS /tmp/ccRVAHyi.s page 416 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13011 .loc 1 5077 7 view .LVU4094 13012 0054 D2B2 uxtb r2, r2 13013 0056 0020 movs r0, #0 13014 0058 0090 str r0, [sp] 13015 005a 2000 movs r0, r4 13016 005c FFF7FEFF bl I2C_TransferConfig 13017 .LVL953: 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13018 .loc 1 5080 7 is_stmt 1 view .LVU4095 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13019 .loc 1 5080 23 is_stmt 0 view .LVU4096 13020 0060 638D ldrh r3, [r4, #42] 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13021 .loc 1 5080 30 view .LVU4097 13022 0062 228D ldrh r2, [r4, #40] 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13023 .loc 1 5080 23 view .LVU4098 13024 0064 9B1A subs r3, r3, r2 13025 0066 9BB2 uxth r3, r3 13026 0068 6385 strh r3, [r4, #42] 5083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13027 .loc 1 5083 7 is_stmt 1 view .LVU4099 5083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13028 .loc 1 5083 15 is_stmt 0 view .LVU4100 13029 006a 4123 movs r3, #65 13030 006c E35C ldrb r3, [r4, r3] 5083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13031 .loc 1 5083 10 view .LVU4101 13032 006e 222B cmp r3, #34 13033 0070 25D0 beq .L740 5089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13034 .loc 1 5089 9 is_stmt 1 view .LVU4102 5089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13035 .loc 1 5089 13 is_stmt 0 view .LVU4103 13036 0072 2268 ldr r2, [r4] 5089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13037 .loc 1 5089 29 view .LVU4104 13038 0074 1168 ldr r1, [r2] 13039 0076 8023 movs r3, #128 13040 0078 DB01 lsls r3, r3, #7 13041 007a 0B43 orrs r3, r1 13042 007c 1360 str r3, [r2] 13043 007e 0DE0 b .L727 13044 .LVL954: 13045 .L739: 5033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13046 .loc 1 5033 5 is_stmt 1 view .LVU4105 13047 0080 2368 ldr r3, [r4] 13048 0082 1022 movs r2, #16 13049 .LVL955: 5033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13050 .loc 1 5033 5 is_stmt 0 view .LVU4106 13051 0084 DA61 str r2, [r3, #28] 5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13052 .loc 1 5036 5 is_stmt 1 view .LVU4107 5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccRVAHyi.s page 417 13053 .loc 1 5036 21 is_stmt 0 view .LVU4108 13054 0086 636C ldr r3, [r4, #68] 13055 0088 0C3A subs r2, r2, #12 13056 008a 1343 orrs r3, r2 13057 008c 6364 str r3, [r4, #68] 5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13058 .loc 1 5041 5 is_stmt 1 view .LVU4109 13059 008e 2021 movs r1, #32 13060 .LVL956: 5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13061 .loc 1 5041 5 is_stmt 0 view .LVU4110 13062 0090 2000 movs r0, r4 13063 0092 FFF7FEFF bl I2C_Enable_IRQ 13064 .LVL957: 5044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13065 .loc 1 5044 5 is_stmt 1 view .LVU4111 13066 0096 2000 movs r0, r4 13067 0098 FFF7FEFF bl I2C_Flush_TXDR 13068 .LVL958: 13069 .L727: 5144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13070 .loc 1 5144 3 view .LVU4112 5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13071 .loc 1 5147 3 view .LVU4113 5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13072 .loc 1 5147 3 view .LVU4114 13073 009c 4023 movs r3, #64 13074 009e 0022 movs r2, #0 13075 00a0 E254 strb r2, [r4, r3] 5149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13076 .loc 1 5149 3 view .LVU4115 5149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13077 .loc 1 5149 10 is_stmt 0 view .LVU4116 13078 00a2 0020 movs r0, #0 13079 .L725: 5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13080 .loc 1 5150 1 view .LVU4117 13081 00a4 02B0 add sp, sp, #8 13082 @ sp needed 13083 .LVL959: 5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13084 .loc 1 5150 1 view .LVU4118 13085 00a6 10BD pop {r4, pc} 13086 .LVL960: 13087 .L730: 5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13088 .loc 1 5065 9 is_stmt 1 view .LVU4119 5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13089 .loc 1 5065 30 is_stmt 0 view .LVU4120 13090 00a8 638D ldrh r3, [r4, #42] 5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13091 .loc 1 5065 24 view .LVU4121 13092 00aa 2385 strh r3, [r4, #40] 5066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13093 .loc 1 5066 9 is_stmt 1 view .LVU4122 5066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13094 .loc 1 5066 17 is_stmt 0 view .LVU4123 ARM GAS /tmp/ccRVAHyi.s page 418 13095 00ac E26A ldr r2, [r4, #44] 5066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13096 .loc 1 5066 12 view .LVU4124 13097 00ae 224B ldr r3, .L741 13098 00b0 9A42 cmp r2, r3 13099 00b2 01D0 beq .L738 5068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13100 .loc 1 5068 11 is_stmt 1 view .LVU4125 5068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13101 .loc 1 5068 20 is_stmt 0 view .LVU4126 13102 00b4 E36A ldr r3, [r4, #44] 13103 .LVL961: 5068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13104 .loc 1 5068 20 view .LVU4127 13105 00b6 CCE7 b .L731 13106 .LVL962: 13107 .L738: 5072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13108 .loc 1 5072 20 view .LVU4128 13109 00b8 8023 movs r3, #128 13110 00ba 9B04 lsls r3, r3, #18 13111 00bc C9E7 b .L731 13112 .LVL963: 13113 .L740: 5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13114 .loc 1 5085 9 is_stmt 1 view .LVU4129 5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13115 .loc 1 5085 13 is_stmt 0 view .LVU4130 13116 00be 2268 ldr r2, [r4] 5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13117 .loc 1 5085 29 view .LVU4131 13118 00c0 1168 ldr r1, [r2] 13119 00c2 8023 movs r3, #128 13120 00c4 1B02 lsls r3, r3, #8 13121 00c6 0B43 orrs r3, r1 13122 00c8 1360 str r3, [r2] 13123 00ca E7E7 b .L727 13124 .L729: 5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13125 .loc 1 5095 7 is_stmt 1 view .LVU4132 5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13126 .loc 1 5095 11 is_stmt 0 view .LVU4133 13127 00cc 2368 ldr r3, [r4] 13128 00ce 5B68 ldr r3, [r3, #4] 5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13129 .loc 1 5095 10 view .LVU4134 13130 00d0 9B01 lsls r3, r3, #6 13131 00d2 03D4 bmi .L733 5098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13132 .loc 1 5098 9 is_stmt 1 view .LVU4135 13133 00d4 2000 movs r0, r4 13134 00d6 FFF7FEFF bl I2C_ITMasterSeqCplt 13135 .LVL964: 13136 00da DFE7 b .L727 13137 .L733: 5104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13138 .loc 1 5104 9 view .LVU4136 ARM GAS /tmp/ccRVAHyi.s page 419 13139 00dc 4021 movs r1, #64 13140 00de 2000 movs r0, r4 13141 00e0 FFF7FEFF bl I2C_ITError 13142 .LVL965: 13143 00e4 DAE7 b .L727 13144 .LVL966: 13145 .L728: 5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13146 .loc 1 5108 8 view .LVU4137 5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13147 .loc 1 5108 11 is_stmt 0 view .LVU4138 13148 00e6 4B06 lsls r3, r1, #25 13149 00e8 1CD5 bpl .L734 5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13150 .loc 1 5108 60 discriminator 1 view .LVU4139 13151 00ea 5306 lsls r3, r2, #25 13152 00ec 1AD5 bpl .L734 5111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13153 .loc 1 5111 5 is_stmt 1 view .LVU4140 5111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13154 .loc 1 5111 13 is_stmt 0 view .LVU4141 13155 00ee 638D ldrh r3, [r4, #42] 13156 00f0 9BB2 uxth r3, r3 5111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13157 .loc 1 5111 8 view .LVU4142 13158 00f2 002B cmp r3, #0 13159 00f4 11D1 bne .L735 5113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13160 .loc 1 5113 7 is_stmt 1 view .LVU4143 5113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13161 .loc 1 5113 11 is_stmt 0 view .LVU4144 13162 00f6 2368 ldr r3, [r4] 13163 00f8 5A68 ldr r2, [r3, #4] 13164 .LVL967: 5113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13165 .loc 1 5113 10 view .LVU4145 13166 00fa 9201 lsls r2, r2, #6 13167 00fc CED4 bmi .L727 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13168 .loc 1 5116 9 is_stmt 1 view .LVU4146 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13169 .loc 1 5116 17 is_stmt 0 view .LVU4147 13170 00fe E16A ldr r1, [r4, #44] 13171 .LVL968: 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13172 .loc 1 5116 12 view .LVU4148 13173 0100 0D4A ldr r2, .L741 13174 0102 9142 cmp r1, r2 13175 0104 05D1 bne .L736 5119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13176 .loc 1 5119 11 is_stmt 1 view .LVU4149 5119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13177 .loc 1 5119 31 is_stmt 0 view .LVU4150 13178 0106 5968 ldr r1, [r3, #4] 13179 0108 8022 movs r2, #128 13180 010a D201 lsls r2, r2, #7 13181 010c 0A43 orrs r2, r1 ARM GAS /tmp/ccRVAHyi.s page 420 13182 010e 5A60 str r2, [r3, #4] 13183 0110 C4E7 b .L727 13184 .L736: 5124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13185 .loc 1 5124 11 is_stmt 1 view .LVU4151 13186 0112 2000 movs r0, r4 13187 0114 FFF7FEFF bl I2C_ITMasterSeqCplt 13188 .LVL969: 13189 0118 C0E7 b .L727 13190 .LVL970: 13191 .L735: 5132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13192 .loc 1 5132 7 view .LVU4152 13193 011a 4021 movs r1, #64 13194 .LVL971: 5132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13195 .loc 1 5132 7 is_stmt 0 view .LVU4153 13196 011c 2000 movs r0, r4 13197 011e FFF7FEFF bl I2C_ITError 13198 .LVL972: 5132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13199 .loc 1 5132 7 view .LVU4154 13200 0122 BBE7 b .L727 13201 .LVL973: 13202 .L734: 5135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13203 .loc 1 5135 8 is_stmt 1 view .LVU4155 5135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13204 .loc 1 5135 11 is_stmt 0 view .LVU4156 13205 0124 8B06 lsls r3, r1, #26 13206 0126 B9D5 bpl .L727 5135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13207 .loc 1 5135 63 discriminator 1 view .LVU4157 13208 0128 9306 lsls r3, r2, #26 13209 012a B7D5 bpl .L727 5139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13210 .loc 1 5139 5 is_stmt 1 view .LVU4158 13211 012c 2000 movs r0, r4 13212 012e FFF7FEFF bl I2C_ITMasterCplt 13213 .LVL974: 5139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13214 .loc 1 5139 5 is_stmt 0 view .LVU4159 13215 0132 B3E7 b .L727 13216 .LVL975: 13217 .L737: 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13218 .loc 1 5027 3 view .LVU4160 13219 0134 0220 movs r0, #2 13220 .LVL976: 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13221 .loc 1 5027 3 view .LVU4161 13222 0136 B5E7 b .L725 13223 .L742: 13224 .align 2 13225 .L741: 13226 0138 0000FFFF .word -65536 13227 .cfi_endproc ARM GAS /tmp/ccRVAHyi.s page 421 13228 .LFE91: 13230 .section .text.I2C_DMAError,"ax",%progbits 13231 .align 1 13232 .syntax unified 13233 .code 16 13234 .thumb_func 13235 .fpu softvfp 13237 I2C_DMAError: 13238 .LVL977: 13239 .LFB108: 6312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13240 .loc 1 6312 1 is_stmt 1 view -0 13241 .cfi_startproc 13242 @ args = 0, pretend = 0, frame = 0 13243 @ frame_needed = 0, uses_anonymous_args = 0 6312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13244 .loc 1 6312 1 is_stmt 0 view .LVU4163 13245 0000 10B5 push {r4, lr} 13246 .LCFI86: 13247 .cfi_def_cfa_offset 8 13248 .cfi_offset 4, -8 13249 .cfi_offset 14, -4 6314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13250 .loc 1 6314 3 is_stmt 1 view .LVU4164 6314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13251 .loc 1 6314 22 is_stmt 0 view .LVU4165 13252 0002 406A ldr r0, [r0, #36] 13253 .LVL978: 6317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13254 .loc 1 6317 3 is_stmt 1 view .LVU4166 6317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13255 .loc 1 6317 7 is_stmt 0 view .LVU4167 13256 0004 0268 ldr r2, [r0] 6317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13257 .loc 1 6317 23 view .LVU4168 13258 0006 5168 ldr r1, [r2, #4] 13259 0008 8023 movs r3, #128 13260 000a 1B02 lsls r3, r3, #8 13261 000c 0B43 orrs r3, r1 13262 000e 5360 str r3, [r2, #4] 6320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13263 .loc 1 6320 3 is_stmt 1 view .LVU4169 13264 0010 1021 movs r1, #16 13265 0012 FFF7FEFF bl I2C_ITError 13266 .LVL979: 6321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13267 .loc 1 6321 1 is_stmt 0 view .LVU4170 13268 @ sp needed 13269 0016 10BD pop {r4, pc} 13270 .cfi_endproc 13271 .LFE108: 13273 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 13274 .align 1 13275 .syntax unified 13276 .code 16 13277 .thumb_func 13278 .fpu softvfp ARM GAS /tmp/ccRVAHyi.s page 422 13280 I2C_DMAMasterTransmitCplt: 13281 .LVL980: 13282 .LFB104: 6156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13283 .loc 1 6156 1 is_stmt 1 view -0 13284 .cfi_startproc 13285 @ args = 0, pretend = 0, frame = 0 13286 @ frame_needed = 0, uses_anonymous_args = 0 6156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13287 .loc 1 6156 1 is_stmt 0 view .LVU4172 13288 0000 10B5 push {r4, lr} 13289 .LCFI87: 13290 .cfi_def_cfa_offset 8 13291 .cfi_offset 4, -8 13292 .cfi_offset 14, -4 6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13293 .loc 1 6158 3 is_stmt 1 view .LVU4173 6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13294 .loc 1 6158 22 is_stmt 0 view .LVU4174 13295 0002 446A ldr r4, [r0, #36] 13296 .LVL981: 6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13297 .loc 1 6161 3 is_stmt 1 view .LVU4175 6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13298 .loc 1 6161 7 is_stmt 0 view .LVU4176 13299 0004 2268 ldr r2, [r4] 6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13300 .loc 1 6161 23 view .LVU4177 13301 0006 1368 ldr r3, [r2] 13302 0008 1549 ldr r1, .L751 13303 000a 0B40 ands r3, r1 13304 000c 1360 str r3, [r2] 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13305 .loc 1 6164 3 is_stmt 1 view .LVU4178 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13306 .loc 1 6164 11 is_stmt 0 view .LVU4179 13307 000e 638D ldrh r3, [r4, #42] 13308 0010 9BB2 uxth r3, r3 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13309 .loc 1 6164 6 view .LVU4180 13310 0012 002B cmp r3, #0 13311 0014 17D0 beq .L750 6173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13312 .loc 1 6173 5 is_stmt 1 view .LVU4181 6173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13313 .loc 1 6173 27 is_stmt 0 view .LVU4182 13314 0016 218D ldrh r1, [r4, #40] 6173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13315 .loc 1 6173 20 view .LVU4183 13316 0018 636A ldr r3, [r4, #36] 13317 001a 9C46 mov ip, r3 13318 001c 6144 add r1, r1, ip 13319 001e 6162 str r1, [r4, #36] 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13320 .loc 1 6176 5 is_stmt 1 view .LVU4184 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13321 .loc 1 6176 13 is_stmt 0 view .LVU4185 ARM GAS /tmp/ccRVAHyi.s page 423 13322 0020 638D ldrh r3, [r4, #42] 13323 0022 9BB2 uxth r3, r3 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13324 .loc 1 6176 8 view .LVU4186 13325 0024 FF2B cmp r3, #255 13326 0026 13D9 bls .L747 6178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13327 .loc 1 6178 7 is_stmt 1 view .LVU4187 6178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13328 .loc 1 6178 22 is_stmt 0 view .LVU4188 13329 0028 FF23 movs r3, #255 13330 002a 2385 strh r3, [r4, #40] 13331 .L748: 6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13332 .loc 1 6186 5 is_stmt 1 view .LVU4189 6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13333 .loc 1 6186 76 is_stmt 0 view .LVU4190 13334 002c 2268 ldr r2, [r4] 13335 002e 2832 adds r2, r2, #40 6187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13336 .loc 1 6187 30 view .LVU4191 13337 0030 238D ldrh r3, [r4, #40] 6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13338 .loc 1 6186 9 view .LVU4192 13339 0032 A06B ldr r0, [r4, #56] 13340 .LVL982: 6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13341 .loc 1 6186 9 view .LVU4193 13342 0034 FFF7FEFF bl HAL_DMA_Start_IT 13343 .LVL983: 6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13344 .loc 1 6186 8 view .LVU4194 13345 0038 0028 cmp r0, #0 13346 003a 0CD0 beq .L749 6190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13347 .loc 1 6190 7 is_stmt 1 view .LVU4195 13348 003c 1021 movs r1, #16 13349 003e 2000 movs r0, r4 13350 0040 FFF7FEFF bl I2C_ITError 13351 .LVL984: 13352 .L744: 6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13353 .loc 1 6198 1 is_stmt 0 view .LVU4196 13354 @ sp needed 13355 .LVL985: 6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13356 .loc 1 6198 1 view .LVU4197 13357 0044 10BD pop {r4, pc} 13358 .LVL986: 13359 .L750: 6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13360 .loc 1 6167 5 is_stmt 1 view .LVU4198 13361 0046 2021 movs r1, #32 13362 0048 2000 movs r0, r4 13363 .LVL987: 6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13364 .loc 1 6167 5 is_stmt 0 view .LVU4199 ARM GAS /tmp/ccRVAHyi.s page 424 13365 004a FFF7FEFF bl I2C_Enable_IRQ 13366 .LVL988: 13367 004e F9E7 b .L744 13368 .LVL989: 13369 .L747: 6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13370 .loc 1 6182 7 is_stmt 1 view .LVU4200 6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13371 .loc 1 6182 28 is_stmt 0 view .LVU4201 13372 0050 638D ldrh r3, [r4, #42] 6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13373 .loc 1 6182 22 view .LVU4202 13374 0052 2385 strh r3, [r4, #40] 13375 0054 EAE7 b .L748 13376 .LVL990: 13377 .L749: 6195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13378 .loc 1 6195 7 is_stmt 1 view .LVU4203 13379 0056 4021 movs r1, #64 13380 0058 2000 movs r0, r4 13381 005a FFF7FEFF bl I2C_Enable_IRQ 13382 .LVL991: 6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13383 .loc 1 6198 1 is_stmt 0 view .LVU4204 13384 005e F1E7 b .L744 13385 .L752: 13386 .align 2 13387 .L751: 13388 0060 FFBFFFFF .word -16385 13389 .cfi_endproc 13390 .LFE104: 13392 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 13393 .align 1 13394 .syntax unified 13395 .code 16 13396 .thumb_func 13397 .fpu softvfp 13399 I2C_DMAMasterReceiveCplt: 13400 .LVL992: 13401 .LFB106: 6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13402 .loc 1 6234 1 is_stmt 1 view -0 13403 .cfi_startproc 13404 @ args = 0, pretend = 0, frame = 0 13405 @ frame_needed = 0, uses_anonymous_args = 0 6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13406 .loc 1 6234 1 is_stmt 0 view .LVU4206 13407 0000 10B5 push {r4, lr} 13408 .LCFI88: 13409 .cfi_def_cfa_offset 8 13410 .cfi_offset 4, -8 13411 .cfi_offset 14, -4 6236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13412 .loc 1 6236 3 is_stmt 1 view .LVU4207 6236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13413 .loc 1 6236 22 is_stmt 0 view .LVU4208 13414 0002 446A ldr r4, [r0, #36] ARM GAS /tmp/ccRVAHyi.s page 425 13415 .LVL993: 6239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13416 .loc 1 6239 3 is_stmt 1 view .LVU4209 6239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13417 .loc 1 6239 7 is_stmt 0 view .LVU4210 13418 0004 2268 ldr r2, [r4] 6239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13419 .loc 1 6239 23 view .LVU4211 13420 0006 1368 ldr r3, [r2] 13421 0008 1549 ldr r1, .L760 13422 000a 0B40 ands r3, r1 13423 000c 1360 str r3, [r2] 6242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13424 .loc 1 6242 3 is_stmt 1 view .LVU4212 6242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13425 .loc 1 6242 11 is_stmt 0 view .LVU4213 13426 000e 638D ldrh r3, [r4, #42] 13427 0010 9BB2 uxth r3, r3 6242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13428 .loc 1 6242 6 view .LVU4214 13429 0012 002B cmp r3, #0 13430 0014 17D0 beq .L759 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13431 .loc 1 6251 5 is_stmt 1 view .LVU4215 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13432 .loc 1 6251 27 is_stmt 0 view .LVU4216 13433 0016 228D ldrh r2, [r4, #40] 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13434 .loc 1 6251 20 view .LVU4217 13435 0018 636A ldr r3, [r4, #36] 13436 001a 9C46 mov ip, r3 13437 001c 6244 add r2, r2, ip 13438 001e 6262 str r2, [r4, #36] 6254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13439 .loc 1 6254 5 is_stmt 1 view .LVU4218 6254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13440 .loc 1 6254 13 is_stmt 0 view .LVU4219 13441 0020 638D ldrh r3, [r4, #42] 13442 0022 9BB2 uxth r3, r3 6254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13443 .loc 1 6254 8 view .LVU4220 13444 0024 FF2B cmp r3, #255 13445 0026 13D9 bls .L756 6256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13446 .loc 1 6256 7 is_stmt 1 view .LVU4221 6256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13447 .loc 1 6256 22 is_stmt 0 view .LVU4222 13448 0028 FF23 movs r3, #255 13449 002a 2385 strh r3, [r4, #40] 13450 .L757: 6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13451 .loc 1 6264 5 is_stmt 1 view .LVU4223 6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13452 .loc 1 6264 50 is_stmt 0 view .LVU4224 13453 002c 2168 ldr r1, [r4] 13454 002e 2431 adds r1, r1, #36 6265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccRVAHyi.s page 426 13455 .loc 1 6265 30 view .LVU4225 13456 0030 238D ldrh r3, [r4, #40] 6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13457 .loc 1 6264 9 view .LVU4226 13458 0032 E06B ldr r0, [r4, #60] 13459 .LVL994: 6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13460 .loc 1 6264 9 view .LVU4227 13461 0034 FFF7FEFF bl HAL_DMA_Start_IT 13462 .LVL995: 6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13463 .loc 1 6264 8 view .LVU4228 13464 0038 0028 cmp r0, #0 13465 003a 0CD0 beq .L758 6268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13466 .loc 1 6268 7 is_stmt 1 view .LVU4229 13467 003c 1021 movs r1, #16 13468 003e 2000 movs r0, r4 13469 0040 FFF7FEFF bl I2C_ITError 13470 .LVL996: 13471 .L753: 6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13472 .loc 1 6276 1 is_stmt 0 view .LVU4230 13473 @ sp needed 13474 .LVL997: 6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13475 .loc 1 6276 1 view .LVU4231 13476 0044 10BD pop {r4, pc} 13477 .LVL998: 13478 .L759: 6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13479 .loc 1 6245 5 is_stmt 1 view .LVU4232 13480 0046 2021 movs r1, #32 13481 0048 2000 movs r0, r4 13482 .LVL999: 6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13483 .loc 1 6245 5 is_stmt 0 view .LVU4233 13484 004a FFF7FEFF bl I2C_Enable_IRQ 13485 .LVL1000: 13486 004e F9E7 b .L753 13487 .LVL1001: 13488 .L756: 6260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13489 .loc 1 6260 7 is_stmt 1 view .LVU4234 6260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13490 .loc 1 6260 28 is_stmt 0 view .LVU4235 13491 0050 638D ldrh r3, [r4, #42] 6260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13492 .loc 1 6260 22 view .LVU4236 13493 0052 2385 strh r3, [r4, #40] 13494 0054 EAE7 b .L757 13495 .LVL1002: 13496 .L758: 6273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13497 .loc 1 6273 7 is_stmt 1 view .LVU4237 13498 0056 4021 movs r1, #64 13499 0058 2000 movs r0, r4 ARM GAS /tmp/ccRVAHyi.s page 427 13500 005a FFF7FEFF bl I2C_Enable_IRQ 13501 .LVL1003: 6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13502 .loc 1 6276 1 is_stmt 0 view .LVU4238 13503 005e F1E7 b .L753 13504 .L761: 13505 .align 2 13506 .L760: 13507 0060 FF7FFFFF .word -32769 13508 .cfi_endproc 13509 .LFE106: 13511 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 13512 .align 1 13513 .global HAL_I2C_ER_IRQHandler 13514 .syntax unified 13515 .code 16 13516 .thumb_func 13517 .fpu softvfp 13519 HAL_I2C_ER_IRQHandler: 13520 .LVL1004: 13521 .LFB75: 4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 13522 .loc 1 4452 1 is_stmt 1 view -0 13523 .cfi_startproc 13524 @ args = 0, pretend = 0, frame = 0 13525 @ frame_needed = 0, uses_anonymous_args = 0 4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 13526 .loc 1 4452 1 is_stmt 0 view .LVU4240 13527 0000 70B5 push {r4, r5, r6, lr} 13528 .LCFI89: 13529 .cfi_def_cfa_offset 16 13530 .cfi_offset 4, -16 13531 .cfi_offset 5, -12 13532 .cfi_offset 6, -8 13533 .cfi_offset 14, -4 4453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 13534 .loc 1 4453 3 is_stmt 1 view .LVU4241 4453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 13535 .loc 1 4453 24 is_stmt 0 view .LVU4242 13536 0002 0268 ldr r2, [r0] 4453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 13537 .loc 1 4453 12 view .LVU4243 13538 0004 9369 ldr r3, [r2, #24] 13539 .LVL1005: 4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 13540 .loc 1 4454 3 is_stmt 1 view .LVU4244 4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 13541 .loc 1 4454 12 is_stmt 0 view .LVU4245 13542 0006 1168 ldr r1, [r2] 13543 .LVL1006: 4455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13544 .loc 1 4455 3 is_stmt 1 view .LVU4246 4458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13545 .loc 1 4458 3 view .LVU4247 4458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13546 .loc 1 4458 6 is_stmt 0 view .LVU4248 13547 0008 DC05 lsls r4, r3, #23 ARM GAS /tmp/ccRVAHyi.s page 428 13548 000a 08D5 bpl .L763 4458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13549 .loc 1 4458 57 discriminator 1 view .LVU4249 13550 000c 0C06 lsls r4, r1, #24 13551 000e 06D5 bpl .L763 4461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13552 .loc 1 4461 5 is_stmt 1 view .LVU4250 4461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13553 .loc 1 4461 21 is_stmt 0 view .LVU4251 13554 0010 446C ldr r4, [r0, #68] 13555 0012 0125 movs r5, #1 13556 0014 2C43 orrs r4, r5 13557 0016 4464 str r4, [r0, #68] 4464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13558 .loc 1 4464 5 is_stmt 1 view .LVU4252 13559 0018 8024 movs r4, #128 13560 001a 6400 lsls r4, r4, #1 13561 001c D461 str r4, [r2, #28] 13562 .L763: 4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13563 .loc 1 4468 3 view .LVU4253 4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13564 .loc 1 4468 6 is_stmt 0 view .LVU4254 13565 001e 5A05 lsls r2, r3, #21 13566 0020 09D5 bpl .L764 4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13567 .loc 1 4468 56 discriminator 1 view .LVU4255 13568 0022 0A06 lsls r2, r1, #24 13569 0024 07D5 bpl .L764 4471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13570 .loc 1 4471 5 is_stmt 1 view .LVU4256 4471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13571 .loc 1 4471 21 is_stmt 0 view .LVU4257 13572 0026 426C ldr r2, [r0, #68] 13573 0028 0824 movs r4, #8 13574 002a 2243 orrs r2, r4 13575 002c 4264 str r2, [r0, #68] 4474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13576 .loc 1 4474 5 is_stmt 1 view .LVU4258 13577 002e 0268 ldr r2, [r0] 13578 0030 8024 movs r4, #128 13579 0032 E400 lsls r4, r4, #3 13580 0034 D461 str r4, [r2, #28] 13581 .L764: 4478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13582 .loc 1 4478 3 view .LVU4259 4478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13583 .loc 1 4478 6 is_stmt 0 view .LVU4260 13584 0036 9B05 lsls r3, r3, #22 13585 0038 09D5 bpl .L765 13586 .LVL1007: 4478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 13587 .loc 1 4478 57 discriminator 1 view .LVU4261 13588 003a 0B06 lsls r3, r1, #24 13589 003c 07D5 bpl .L765 4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13590 .loc 1 4481 5 is_stmt 1 view .LVU4262 ARM GAS /tmp/ccRVAHyi.s page 429 4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13591 .loc 1 4481 21 is_stmt 0 view .LVU4263 13592 003e 436C ldr r3, [r0, #68] 13593 0040 0222 movs r2, #2 13594 0042 1343 orrs r3, r2 13595 0044 4364 str r3, [r0, #68] 4484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13596 .loc 1 4484 5 is_stmt 1 view .LVU4264 13597 0046 0368 ldr r3, [r0] 13598 0048 FF32 adds r2, r2, #255 13599 004a FF32 adds r2, r2, #255 13600 004c DA61 str r2, [r3, #28] 13601 .L765: 4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13602 .loc 1 4488 3 view .LVU4265 4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13603 .loc 1 4488 12 is_stmt 0 view .LVU4266 13604 004e 416C ldr r1, [r0, #68] 13605 .LVL1008: 4491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13606 .loc 1 4491 3 is_stmt 1 view .LVU4267 4491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13607 .loc 1 4491 17 is_stmt 0 view .LVU4268 13608 0050 0B23 movs r3, #11 4491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13609 .loc 1 4491 6 view .LVU4269 13610 0052 0B42 tst r3, r1 13611 0054 00D1 bne .L767 13612 .LVL1009: 13613 .L762: 4495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13614 .loc 1 4495 1 view .LVU4270 13615 @ sp needed 13616 0056 70BD pop {r4, r5, r6, pc} 13617 .LVL1010: 13618 .L767: 4493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13619 .loc 1 4493 5 is_stmt 1 view .LVU4271 13620 0058 FFF7FEFF bl I2C_ITError 13621 .LVL1011: 4495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13622 .loc 1 4495 1 is_stmt 0 view .LVU4272 13623 005c FBE7 b .L762 13624 .cfi_endproc 13625 .LFE75: 13627 .section .text.I2C_DMAAbort,"ax",%progbits 13628 .align 1 13629 .syntax unified 13630 .code 16 13631 .thumb_func 13632 .fpu softvfp 13634 I2C_DMAAbort: 13635 .LVL1012: 13636 .LFB109: 6330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13637 .loc 1 6330 1 is_stmt 1 view -0 13638 .cfi_startproc ARM GAS /tmp/ccRVAHyi.s page 430 13639 @ args = 0, pretend = 0, frame = 0 13640 @ frame_needed = 0, uses_anonymous_args = 0 6330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13641 .loc 1 6330 1 is_stmt 0 view .LVU4274 13642 0000 10B5 push {r4, lr} 13643 .LCFI90: 13644 .cfi_def_cfa_offset 8 13645 .cfi_offset 4, -8 13646 .cfi_offset 14, -4 6332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13647 .loc 1 6332 3 is_stmt 1 view .LVU4275 6332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13648 .loc 1 6332 22 is_stmt 0 view .LVU4276 13649 0002 406A ldr r0, [r0, #36] 13650 .LVL1013: 6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13651 .loc 1 6335 3 is_stmt 1 view .LVU4277 6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13652 .loc 1 6335 11 is_stmt 0 view .LVU4278 13653 0004 836B ldr r3, [r0, #56] 6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13654 .loc 1 6335 6 view .LVU4279 13655 0006 002B cmp r3, #0 13656 0008 01D0 beq .L769 6337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13657 .loc 1 6337 5 is_stmt 1 view .LVU4280 6337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13658 .loc 1 6337 37 is_stmt 0 view .LVU4281 13659 000a 0022 movs r2, #0 13660 000c 5A63 str r2, [r3, #52] 13661 .L769: 6339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13662 .loc 1 6339 3 is_stmt 1 view .LVU4282 6339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13663 .loc 1 6339 11 is_stmt 0 view .LVU4283 13664 000e C36B ldr r3, [r0, #60] 6339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13665 .loc 1 6339 6 view .LVU4284 13666 0010 002B cmp r3, #0 13667 0012 01D0 beq .L770 6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13668 .loc 1 6341 5 is_stmt 1 view .LVU4285 6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13669 .loc 1 6341 37 is_stmt 0 view .LVU4286 13670 0014 0022 movs r2, #0 13671 0016 5A63 str r2, [r3, #52] 13672 .L770: 6344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13673 .loc 1 6344 3 is_stmt 1 view .LVU4287 13674 0018 FFF7FEFF bl I2C_TreatErrorCallback 13675 .LVL1014: 6345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13676 .loc 1 6345 1 is_stmt 0 view .LVU4288 13677 @ sp needed 13678 001c 10BD pop {r4, pc} 13679 .cfi_endproc 13680 .LFE109: ARM GAS /tmp/ccRVAHyi.s page 431 13682 .section .text.HAL_I2C_GetState,"ax",%progbits 13683 .align 1 13684 .global HAL_I2C_GetState 13685 .syntax unified 13686 .code 16 13687 .thumb_func 13688 .fpu softvfp 13690 HAL_I2C_GetState: 13691 .LVL1015: 13692 .LFB86: 4686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */ 13693 .loc 1 4686 1 is_stmt 1 view -0 13694 .cfi_startproc 13695 @ args = 0, pretend = 0, frame = 0 13696 @ frame_needed = 0, uses_anonymous_args = 0 13697 @ link register save eliminated. 4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13698 .loc 1 4688 3 view .LVU4290 4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13699 .loc 1 4688 14 is_stmt 0 view .LVU4291 13700 0000 4123 movs r3, #65 13701 0002 C05C ldrb r0, [r0, r3] 13702 .LVL1016: 4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13703 .loc 1 4688 14 view .LVU4292 13704 0004 C0B2 uxtb r0, r0 4689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13705 .loc 1 4689 1 view .LVU4293 13706 @ sp needed 13707 0006 7047 bx lr 13708 .cfi_endproc 13709 .LFE86: 13711 .section .text.HAL_I2C_GetMode,"ax",%progbits 13712 .align 1 13713 .global HAL_I2C_GetMode 13714 .syntax unified 13715 .code 16 13716 .thumb_func 13717 .fpu softvfp 13719 HAL_I2C_GetMode: 13720 .LVL1017: 13721 .LFB87: 4698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode; 13722 .loc 1 4698 1 is_stmt 1 view -0 13723 .cfi_startproc 13724 @ args = 0, pretend = 0, frame = 0 13725 @ frame_needed = 0, uses_anonymous_args = 0 13726 @ link register save eliminated. 4699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13727 .loc 1 4699 3 view .LVU4295 4699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13728 .loc 1 4699 14 is_stmt 0 view .LVU4296 13729 0000 4223 movs r3, #66 13730 0002 C05C ldrb r0, [r0, r3] 13731 .LVL1018: 4699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13732 .loc 1 4699 14 view .LVU4297 ARM GAS /tmp/ccRVAHyi.s page 432 13733 0004 C0B2 uxtb r0, r0 4700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13734 .loc 1 4700 1 view .LVU4298 13735 @ sp needed 13736 0006 7047 bx lr 13737 .cfi_endproc 13738 .LFE87: 13740 .section .text.HAL_I2C_GetError,"ax",%progbits 13741 .align 1 13742 .global HAL_I2C_GetError 13743 .syntax unified 13744 .code 16 13745 .thumb_func 13746 .fpu softvfp 13748 HAL_I2C_GetError: 13749 .LVL1019: 13750 .LFB88: 4709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode; 13751 .loc 1 4709 1 is_stmt 1 view -0 13752 .cfi_startproc 13753 @ args = 0, pretend = 0, frame = 0 13754 @ frame_needed = 0, uses_anonymous_args = 0 13755 @ link register save eliminated. 4710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13756 .loc 1 4710 3 view .LVU4300 4710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13757 .loc 1 4710 14 is_stmt 0 view .LVU4301 13758 0000 406C ldr r0, [r0, #68] 13759 .LVL1020: 4711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13760 .loc 1 4711 1 view .LVU4302 13761 @ sp needed 13762 0002 7047 bx lr 13763 .cfi_endproc 13764 .LFE88: 13766 .text 13767 .Letext0: 13768 .file 2 "/usr/lib/gcc/arm-none-eabi/8.3.1/include/stdint.h" 13769 .file 3 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" 13770 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h" 13771 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h" 13772 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h" 13773 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h" 13774 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h" 13775 .file 9 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" ARM GAS /tmp/ccRVAHyi.s page 433 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f0xx_hal_i2c.c /tmp/ccRVAHyi.s:16 .text.I2C_Flush_TXDR:0000000000000000 $t /tmp/ccRVAHyi.s:23 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR /tmp/ccRVAHyi.s:64 .text.I2C_TransferConfig:0000000000000000 $t /tmp/ccRVAHyi.s:70 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig /tmp/ccRVAHyi.s:120 .text.I2C_TransferConfig:0000000000000028 $d /tmp/ccRVAHyi.s:125 .text.I2C_Enable_IRQ:0000000000000000 $t /tmp/ccRVAHyi.s:131 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ /tmp/ccRVAHyi.s:269 .text.I2C_Enable_IRQ:0000000000000068 $d /tmp/ccRVAHyi.s:12914 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA /tmp/ccRVAHyi.s:12598 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA /tmp/ccRVAHyi.s:275 .text.I2C_Disable_IRQ:0000000000000000 $t /tmp/ccRVAHyi.s:281 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ /tmp/ccRVAHyi.s:423 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t /tmp/ccRVAHyi.s:429 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions /tmp/ccRVAHyi.s:474 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t /tmp/ccRVAHyi.s:480 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed /tmp/ccRVAHyi.s:627 .text.I2C_IsAcknowledgeFailed:000000000000008c $d /tmp/ccRVAHyi.s:632 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t /tmp/ccRVAHyi.s:638 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccRVAHyi.s:735 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/ccRVAHyi.s:741 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout /tmp/ccRVAHyi.s:831 .text.I2C_RequestMemoryWrite:0000000000000000 $t /tmp/ccRVAHyi.s:837 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite /tmp/ccRVAHyi.s:957 .text.I2C_RequestMemoryWrite:0000000000000074 $d /tmp/ccRVAHyi.s:962 .text.I2C_RequestMemoryRead:0000000000000000 $t /tmp/ccRVAHyi.s:968 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead /tmp/ccRVAHyi.s:1084 .text.I2C_RequestMemoryRead:0000000000000070 $d /tmp/ccRVAHyi.s:1089 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t /tmp/ccRVAHyi.s:1095 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccRVAHyi.s:1188 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t /tmp/ccRVAHyi.s:1194 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccRVAHyi.s:1331 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000080 $d /tmp/ccRVAHyi.s:1336 .text.HAL_I2C_MspInit:0000000000000000 $t /tmp/ccRVAHyi.s:1343 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit /tmp/ccRVAHyi.s:1359 .text.HAL_I2C_Init:0000000000000000 $t /tmp/ccRVAHyi.s:1366 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init /tmp/ccRVAHyi.s:1563 .text.HAL_I2C_Init:00000000000000c0 $d /tmp/ccRVAHyi.s:1570 .text.HAL_I2C_MspDeInit:0000000000000000 $t /tmp/ccRVAHyi.s:1577 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit /tmp/ccRVAHyi.s:1593 .text.HAL_I2C_DeInit:0000000000000000 $t /tmp/ccRVAHyi.s:1600 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit /tmp/ccRVAHyi.s:1672 .text.HAL_I2C_Master_Transmit:0000000000000000 $t /tmp/ccRVAHyi.s:1679 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit /tmp/ccRVAHyi.s:1999 .text.HAL_I2C_Master_Transmit:0000000000000164 $d /tmp/ccRVAHyi.s:2005 .text.HAL_I2C_Master_Receive:0000000000000000 $t /tmp/ccRVAHyi.s:2012 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive /tmp/ccRVAHyi.s:2332 .text.HAL_I2C_Master_Receive:0000000000000164 $d /tmp/ccRVAHyi.s:2338 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t /tmp/ccRVAHyi.s:2345 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit /tmp/ccRVAHyi.s:2718 .text.HAL_I2C_Slave_Transmit:0000000000000194 $d /tmp/ccRVAHyi.s:2723 .text.HAL_I2C_Slave_Receive:0000000000000000 $t /tmp/ccRVAHyi.s:2730 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive /tmp/ccRVAHyi.s:3080 .text.HAL_I2C_Slave_Receive:0000000000000174 $d /tmp/ccRVAHyi.s:3085 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t /tmp/ccRVAHyi.s:3092 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT ARM GAS /tmp/ccRVAHyi.s page 434 /tmp/ccRVAHyi.s:3248 .text.HAL_I2C_Master_Transmit_IT:0000000000000088 $d /tmp/ccRVAHyi.s:12213 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT /tmp/ccRVAHyi.s:3255 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t /tmp/ccRVAHyi.s:3262 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT /tmp/ccRVAHyi.s:3418 .text.HAL_I2C_Master_Receive_IT:0000000000000088 $d /tmp/ccRVAHyi.s:3425 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t /tmp/ccRVAHyi.s:3432 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT /tmp/ccRVAHyi.s:3540 .text.HAL_I2C_Slave_Transmit_IT:0000000000000058 $d /tmp/ccRVAHyi.s:11608 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT /tmp/ccRVAHyi.s:3548 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t /tmp/ccRVAHyi.s:3555 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT /tmp/ccRVAHyi.s:3663 .text.HAL_I2C_Slave_Receive_IT:0000000000000058 $d /tmp/ccRVAHyi.s:3671 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:3678 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA /tmp/ccRVAHyi.s:4008 .text.HAL_I2C_Master_Transmit_DMA:000000000000013c $d /tmp/ccRVAHyi.s:13280 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt /tmp/ccRVAHyi.s:13237 .text.I2C_DMAError:0000000000000000 I2C_DMAError /tmp/ccRVAHyi.s:4018 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:4025 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA /tmp/ccRVAHyi.s:4354 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d /tmp/ccRVAHyi.s:13399 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt /tmp/ccRVAHyi.s:4364 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:4371 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccRVAHyi.s:4612 .text.HAL_I2C_Slave_Transmit_DMA:00000000000000e0 $d /tmp/ccRVAHyi.s:10358 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt /tmp/ccRVAHyi.s:4621 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:4628 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA /tmp/ccRVAHyi.s:4872 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d /tmp/ccRVAHyi.s:10420 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt /tmp/ccRVAHyi.s:4881 .text.HAL_I2C_Mem_Write:0000000000000000 $t /tmp/ccRVAHyi.s:4888 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write /tmp/ccRVAHyi.s:5260 .text.HAL_I2C_Mem_Write:000000000000019c $d /tmp/ccRVAHyi.s:5265 .text.HAL_I2C_Mem_Read:0000000000000000 $t /tmp/ccRVAHyi.s:5272 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read /tmp/ccRVAHyi.s:5644 .text.HAL_I2C_Mem_Read:00000000000001a0 $d /tmp/ccRVAHyi.s:5650 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t /tmp/ccRVAHyi.s:5657 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT /tmp/ccRVAHyi.s:5882 .text.HAL_I2C_Mem_Write_IT:00000000000000d8 $d /tmp/ccRVAHyi.s:5888 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t /tmp/ccRVAHyi.s:5895 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT /tmp/ccRVAHyi.s:6121 .text.HAL_I2C_Mem_Read_IT:00000000000000d8 $d /tmp/ccRVAHyi.s:6128 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:6135 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA /tmp/ccRVAHyi.s:6480 .text.HAL_I2C_Mem_Write_DMA:0000000000000158 $d /tmp/ccRVAHyi.s:6488 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:6495 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA /tmp/ccRVAHyi.s:6841 .text.HAL_I2C_Mem_Read_DMA:0000000000000158 $d /tmp/ccRVAHyi.s:6850 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t /tmp/ccRVAHyi.s:6857 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady /tmp/ccRVAHyi.s:7229 .text.HAL_I2C_IsDeviceReady:0000000000000184 $d /tmp/ccRVAHyi.s:7234 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t /tmp/ccRVAHyi.s:7241 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccRVAHyi.s:7446 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000000000b0 $d /tmp/ccRVAHyi.s:7452 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:7459 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccRVAHyi.s:7816 .text.HAL_I2C_Master_Seq_Transmit_DMA:000000000000015c $d /tmp/ccRVAHyi.s:7825 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t ARM GAS /tmp/ccRVAHyi.s page 435 /tmp/ccRVAHyi.s:7832 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccRVAHyi.s:8037 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000b0 $d /tmp/ccRVAHyi.s:8043 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:8050 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/ccRVAHyi.s:8407 .text.HAL_I2C_Master_Seq_Receive_DMA:000000000000015c $d /tmp/ccRVAHyi.s:8416 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t /tmp/ccRVAHyi.s:8423 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccRVAHyi.s:8636 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000c8 $d /tmp/ccRVAHyi.s:13634 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort /tmp/ccRVAHyi.s:8644 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:8651 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccRVAHyi.s:9041 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000184 $d /tmp/ccRVAHyi.s:9052 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t /tmp/ccRVAHyi.s:9059 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccRVAHyi.s:9272 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000c8 $d /tmp/ccRVAHyi.s:9281 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:9288 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccRVAHyi.s:9679 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000180 $d /tmp/ccRVAHyi.s:9690 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t /tmp/ccRVAHyi.s:9697 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT /tmp/ccRVAHyi.s:9747 .text.HAL_I2C_EnableListen_IT:0000000000000024 $d /tmp/ccRVAHyi.s:9752 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t /tmp/ccRVAHyi.s:9759 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT /tmp/ccRVAHyi.s:9832 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t /tmp/ccRVAHyi.s:9839 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT /tmp/ccRVAHyi.s:9969 .text.HAL_I2C_Master_Abort_IT:000000000000007c $d /tmp/ccRVAHyi.s:9974 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t /tmp/ccRVAHyi.s:9981 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler /tmp/ccRVAHyi.s:10021 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10028 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback /tmp/ccRVAHyi.s:10044 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10051 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback /tmp/ccRVAHyi.s:10067 .text.I2C_ITMasterSeqCplt:0000000000000000 $t /tmp/ccRVAHyi.s:10073 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt /tmp/ccRVAHyi.s:10164 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10171 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccRVAHyi.s:10187 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10194 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccRVAHyi.s:10210 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t /tmp/ccRVAHyi.s:10216 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt /tmp/ccRVAHyi.s:10346 .text.I2C_ITSlaveSeqCplt:000000000000007c $d /tmp/ccRVAHyi.s:10352 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t /tmp/ccRVAHyi.s:10409 .text.I2C_DMASlaveTransmitCplt:0000000000000024 $d /tmp/ccRVAHyi.s:10414 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t /tmp/ccRVAHyi.s:10478 .text.I2C_DMASlaveReceiveCplt:0000000000000028 $d /tmp/ccRVAHyi.s:10484 .text.HAL_I2C_AddrCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10491 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback /tmp/ccRVAHyi.s:10509 .text.I2C_ITAddrCplt:0000000000000000 $t /tmp/ccRVAHyi.s:10515 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt /tmp/ccRVAHyi.s:10690 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10697 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback /tmp/ccRVAHyi.s:10713 .text.I2C_ITListenCplt:0000000000000000 $t /tmp/ccRVAHyi.s:10719 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt /tmp/ccRVAHyi.s:10824 .text.I2C_ITListenCplt:0000000000000060 $d /tmp/ccRVAHyi.s:10830 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10837 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback /tmp/ccRVAHyi.s:10853 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t ARM GAS /tmp/ccRVAHyi.s page 436 /tmp/ccRVAHyi.s:10860 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback /tmp/ccRVAHyi.s:10876 .text.HAL_I2C_ErrorCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10883 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback /tmp/ccRVAHyi.s:10899 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10906 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback /tmp/ccRVAHyi.s:10922 .text.I2C_TreatErrorCallback:0000000000000000 $t /tmp/ccRVAHyi.s:10928 .text.I2C_TreatErrorCallback:0000000000000000 I2C_TreatErrorCallback /tmp/ccRVAHyi.s:10987 .text.I2C_ITError:0000000000000000 $t /tmp/ccRVAHyi.s:10993 .text.I2C_ITError:0000000000000000 I2C_ITError /tmp/ccRVAHyi.s:11246 .text.I2C_ITError:00000000000000f8 $d /tmp/ccRVAHyi.s:11256 .text.I2C_ITSlaveCplt:0000000000000000 $t /tmp/ccRVAHyi.s:11262 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt /tmp/ccRVAHyi.s:11592 .text.I2C_ITSlaveCplt:0000000000000150 $d /tmp/ccRVAHyi.s:11602 .text.I2C_Slave_ISR_IT:0000000000000000 $t /tmp/ccRVAHyi.s:11918 .text.I2C_Slave_ISR_IT:0000000000000148 $d /tmp/ccRVAHyi.s:11923 .text.I2C_ITMasterCplt:0000000000000000 $t /tmp/ccRVAHyi.s:11929 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt /tmp/ccRVAHyi.s:12201 .text.I2C_ITMasterCplt:0000000000000110 $d /tmp/ccRVAHyi.s:12207 .text.I2C_Master_ISR_IT:0000000000000000 $t /tmp/ccRVAHyi.s:12587 .text.I2C_Master_ISR_IT:0000000000000174 $d /tmp/ccRVAHyi.s:12592 .text.I2C_Slave_ISR_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:12903 .text.I2C_Slave_ISR_DMA:0000000000000124 $d /tmp/ccRVAHyi.s:12908 .text.I2C_Master_ISR_DMA:0000000000000000 $t /tmp/ccRVAHyi.s:13226 .text.I2C_Master_ISR_DMA:0000000000000138 $d /tmp/ccRVAHyi.s:13231 .text.I2C_DMAError:0000000000000000 $t /tmp/ccRVAHyi.s:13274 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t /tmp/ccRVAHyi.s:13388 .text.I2C_DMAMasterTransmitCplt:0000000000000060 $d /tmp/ccRVAHyi.s:13393 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t /tmp/ccRVAHyi.s:13507 .text.I2C_DMAMasterReceiveCplt:0000000000000060 $d /tmp/ccRVAHyi.s:13512 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t /tmp/ccRVAHyi.s:13519 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler /tmp/ccRVAHyi.s:13628 .text.I2C_DMAAbort:0000000000000000 $t /tmp/ccRVAHyi.s:13683 .text.HAL_I2C_GetState:0000000000000000 $t /tmp/ccRVAHyi.s:13690 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState /tmp/ccRVAHyi.s:13712 .text.HAL_I2C_GetMode:0000000000000000 $t /tmp/ccRVAHyi.s:13719 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode /tmp/ccRVAHyi.s:13741 .text.HAL_I2C_GetError:0000000000000000 $t /tmp/ccRVAHyi.s:13748 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState