ARM GAS /tmp/ccpuPECZ.s page 1 1 .cpu cortex-m0plus 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 "stm32l0xx_hal_i2c.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 16 .align 1 17 .syntax unified 18 .code 16 19 .thumb_func 20 .fpu softvfp 22 I2C_DMASlaveTransmitCplt: 23 .LFB99: 24 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c" 1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ****************************************************************************** 3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @file stm32l0xx_hal_i2c.c 4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @author MCD Application Team 5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C HAL module driver. 6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This file provides firmware functions to manage the following 7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: 8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * + Initialization and de-initialization functions 9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * + IO operation functions 10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * + Peripheral State and Errors functions 11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim 13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ============================================================================== 14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### How to use this driver ##### 15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ============================================================================== 16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** The I2C HAL driver can be used as follows: 18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: 20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; 21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: 23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) Enable the I2Cx interface clock 24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) I2C pins configuration 25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs 26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain 27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process 28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority 29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel 30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process 31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive channel 32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using 33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the DMA handle parameters 34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel ARM GAS /tmp/ccpuPECZ.s page 2 35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle 36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on 37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the DMA Tx or Rx channel 38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres 40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure 41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H 43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. 44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead 46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : 48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Polling mode IO operation *** 50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ================================= 51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit( 53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() 54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() 55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() 56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Polling mode IO MEM operation *** 58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ===================================== 59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W 61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_ 62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Interrupt mode IO operation *** 65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =================================== 66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans 68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and user can 69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv 71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and user can 72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi 74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and user can 75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_ 77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can 78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can 80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback() 81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can 83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback() 84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Interrupt mode IO sequential operation *** 89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ============================================== 90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition ARM GAS /tmp/ccpuPECZ.s page 3 92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** when a direction change during transfer 93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer 95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Option field values are defined through @ref I2C_XFEROPTIONS and are listed below: 96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfa 97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con 98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and data to transfer without a final stop condition 99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a 100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and data to transfer without a final stop condition, an then permit a c 101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** several times (like HAL_I2C_Master_Sequential_Transmit_IT() then HAL_I2 102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart 103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases 105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart 106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases 108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Differents sequential I2C interfaces are listed below: 110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using HAL_ 111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut 112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using HAL_I 114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed 115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can 118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback() 119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() 120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and user can 121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code to check the Address Match Code and the transmission direction request 122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and user can 123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ListenCpltCallback() 124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using HAL_I 125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute 126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using HAL_I2 128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a 129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can 131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback() 132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can 134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback() 135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** 139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ======================================= 140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address 142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT() 143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and user can 144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address 146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT() 147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and user can 148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemRxCpltCallback() ARM GAS /tmp/ccpuPECZ.s page 4 149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can 150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback() 151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** DMA mode IO operation *** 153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ============================== 154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using 156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA() 157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and user can 158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using 160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA() 161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and user can 162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using 164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA() 165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and user can 166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using 168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA() 169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and user can 170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can 172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback() 173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and user can 175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_AbortCpltCallback() 176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** DMA mode IO MEM operation *** 180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ================================= 181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using 183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA() 184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and user can 185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using 187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA() 188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and user can 189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and user can 191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** add his own code by customization of function pointer HAL_I2C_ErrorCallback() 192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *** I2C HAL driver macros list *** 195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ================================== 196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. 198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral 200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral 201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode 202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not 203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag 204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt 205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt ARM GAS /tmp/ccpuPECZ.s page 5 206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros 209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim 211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ****************************************************************************** 212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @attention 213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** *

© COPYRIGHT(c) 2016 STMicroelectronics

215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * Redistribution and use in source and binary forms, with or without modification, 217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * are permitted provided that the following conditions are met: 218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 1. Redistributions of source code must retain the above copyright notice, 219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * this list of conditions and the following disclaimer. 220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 2. Redistributions in binary form must reproduce the above copyright notice, 221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * this list of conditions and the following disclaimer in the documentation 222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * and/or other materials provided with the distribution. 223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors 224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * may be used to endorse or promote products derived from this software 225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * without specific prior written permission. 226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ****************************************************************************** 239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #include 243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #include "stm32l0xx_hal.h" 244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @addtogroup STM32L0xx_HAL_Driver 246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C I2C 250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C HAL module driver 251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ ARM GAS /tmp/ccpuPECZ.s page 6 263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define SlaveAddr_SHIFT 7U 275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define SlaveAddr_MSK 0x06U 276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((HAL_I2C_STATE_BUSY_TX | HAL_I2C_STATE_BUSY_RX) & (~( 279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MOD 281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MOD 282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MOD 283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MOD 284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MOD 285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MOD 286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_TX_IT (0x00000001U) 290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_RX_IT (0x00000002U) 291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (0x00000004U) 292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (0x00000011U) 294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (0x00000012U) 295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (0x00000012U) 296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @} 301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/ 304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) ((((__HANDLE__)->State) == HAL_I2C_STATE_BUSY_TX) ? \ 305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((uint32_t)((__HANDLE__)->hdmatx->Instance->CNDTR)) : \ 306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((uint32_t)((__HANDLE__)->hdmarx->Instance->CNDTR))) 307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); ARM GAS /tmp/ccpuPECZ.s page 7 320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterSequentialCplt(I2C_HandleTypeDef *hi2c); 325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveSequentialCplt(I2C_HandleTypeDef *hi2c); 326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1 333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16 334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3 338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin 339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ 347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to flush TXDR register */ 353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Private functions to handle start, restart or stop a transfer */ 356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_ 357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @} 359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Initialization and Configuration functions 369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim 371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =============================================================================== 372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =============================================================================== 374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 8 377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the selected configuration: 382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Clock Timing 383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Own Address 1 384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Dual Addressing mode 386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Own Address 2 387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Own Address 2 Mask 388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) General call mode 389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Nostretch mode 390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** of the selected I2Cx peripheral. 393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim 395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c == NULL) 409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 9 434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); 460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddr 470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/ccpuPECZ.s page 10 491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c == NULL) 496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Release Lock */ 517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); ARM GAS /tmp/ccpuPECZ.s page 11 548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @} 556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Data transfers functions 560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim 562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =============================================================================== 563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### IO operation functions ##### 564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =============================================================================== 565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** transfers. 568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) There are two modes of transfer: 570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** The status of all data processing is returned by the same function 572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** after finishing transfer. 573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** The end of the data processing will be indicated through the 576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** using DMA mode. 578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) Blocking mode functions are : 580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: ARM GAS /tmp/ccpuPECZ.s page 12 605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim 614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRIT 660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else ARM GAS /tmp/ccpuPECZ.s page 13 662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_WRI 665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */ 682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++); 683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U)) 687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 14 719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccpuPECZ.s page 15 776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ 784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA 789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U)) 812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ ARM GAS /tmp/ccpuPECZ.s page 16 833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui 876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); ARM GAS /tmp/ccpuPECZ.s page 17 890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */ 912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */ 926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 18 947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */ 956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++); 957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOP flag is set */ 961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Normal use case for Transmitter mode */ 969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */ 970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP flag */ 979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 19 1004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 1013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin 1016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 1018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */ 1052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 20 1061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Store Last receive data if any */ 1071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 1074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 1075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 1076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_TIMEOUT) 1079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 1089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 1090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 1091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP flag */ 1110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; ARM GAS /tmp/ccpuPECZ.s page 21 1118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 1143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 1150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/ccpuPECZ.s page 22 1175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 1183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_WRITE); 1185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 1195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 1212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 1219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; ARM GAS /tmp/ccpuPECZ.s page 23 1232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 1252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ); 1254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 1264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); ARM GAS /tmp/ccpuPECZ.s page 24 1289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 1313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 25 1346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 1362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 1363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 1379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 1386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; ARM GAS /tmp/ccpuPECZ.s page 26 1403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 1422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */ 1424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 1425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 1428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 1429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ 1431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSi 1432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 1434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_WRITE); 1436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */ 1438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 1439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 1447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 1448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */ 1450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 1451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 1455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 1458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 1459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_WRI ARM GAS /tmp/ccpuPECZ.s page 27 1460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 1469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ 1470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 1483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 1487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 1494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 28 1517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 1530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */ 1532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 1533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 1536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 1537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ 1539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, hi2c->XferSi 1540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 1542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ); 1544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */ 1546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 1547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 1555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 1556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */ 1558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 1559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 1563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 1566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 1567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA 1568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current ARM GAS /tmp/ccpuPECZ.s page 29 1574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 1577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_ 1578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 1590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 1597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 1617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 1620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */ 1622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 1623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 1626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 1627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ 1629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize 1630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 30 1631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 1641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 1642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */ 1644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 1645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 1656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 1683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 1686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */ ARM GAS /tmp/ccpuPECZ.s page 31 1688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 1689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 1692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 1693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ 1695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, hi2c->XferSize 1696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 1706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 1707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 1708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */ 1710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 1711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 1721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 1725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 1726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 1727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 1730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 1733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 1735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 1737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 1738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 32 1745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 1759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 1767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 1768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 1788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 1793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** do 1796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 33 1802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */ 1811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++); 1812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 1813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 1814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U)) 1816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 1827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 1832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U); 1837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 1840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 1853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccpuPECZ.s page 34 1859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 1865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 1869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 1873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 1874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 1878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 1879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 1880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 1883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 1884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 1885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 1886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 1888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 1890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 1891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("Bad pData or Size=0\r\n"); 1897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("Timeout\r\n"); 1909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 1914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 35 1916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 1922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 1923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("Error in memory read - %d\r\n", hi2c->ErrorCode); 1925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 1934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 1940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ 1945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA 1950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** do 1953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 1956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("waiting for flag timeout1\r\n"); 1958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 1962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 1963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 1964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 1965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U)) 1967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("waiting for flag timeout2\r\n"); 1972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; ARM GAS /tmp/ccpuPECZ.s page 36 1973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 1979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 1984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (hi2c->XferCount > 0U); 1988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 1991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 1994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("waiting for stop error %d\r\n", hi2c->ErrorCode); 1996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 1997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 1999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 2005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("busy!!\r\n"); 2021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface ARM GAS /tmp/ccpuPECZ.s page 37 2030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 2039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 2040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) ARM GAS /tmp/ccpuPECZ.s page 38 2087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 2112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 2129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 2138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 2139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) ARM GAS /tmp/ccpuPECZ.s page 39 2144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 2184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 2186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ); ARM GAS /tmp/ccpuPECZ.s page 40 2201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* possible to enable all of these */ 2211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI| I2C_IT_STOPI| I2C_IT_NACKI | I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TX 2212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 2227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 2236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 2237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); ARM GAS /tmp/ccpuPECZ.s page 41 2258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar 2282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 2284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */ 2301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ 2308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize 2309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address */ 2311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 2313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */ ARM GAS /tmp/ccpuPECZ.s page 42 2315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */ 2327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 2339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 2343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be read 2347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 2352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 2353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 43 2372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart 2398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 2400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the DMA error callback */ 2417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ 2424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pData, hi2c->XferSize 2425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, I2C_GENERATE_START_READ); 2428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 44 2429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */ 2430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */ 2436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 2454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This function is used with Memory devices 2455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 2459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Trials Number of trials 2460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 2461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 2464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 2466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0U; 2468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 2480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** do 2483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate Start */ 2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); ARM GAS /tmp/ccpuPECZ.s page 45 2486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 2489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (__HAL_I2C_GET_FLAG(hi2c, I2C_F 2491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 2493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout)) 2495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Device is ready */ 2497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 2506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 2507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 2510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 2515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Device is ready */ 2518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 2529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 2534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 2535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 2537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ 2541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_Trials++ == Trials) 2542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 46 2543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate Stop */ 2544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 2545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 2548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 2553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (I2C_Trials < Trials); 2557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 2573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 2574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 2578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 2581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddres 2584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 2586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 2587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 2590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 47 2600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 2604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If size > MAX_NBYTE_SIZE, use reload mode */ 2607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 2616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If transfer direction not change, do not generate Restart Condition */ 2619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 2620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) 2621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 2623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 2626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, xferrequest); 2627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 2646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 2647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 2651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 2654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress ARM GAS /tmp/ccpuPECZ.s page 48 2657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 2659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 2660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 2663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 2677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 2680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 2689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If transfer direction not change, do not generate Restart Condition */ 2692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 2693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) 2694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 2696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 2699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, xferrequest); 2700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; ARM GAS /tmp/ccpuPECZ.s page 49 2714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 2719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 2720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 2725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uin 2728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 2731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) == HAL_I2C_STATE_LISTEN) 2733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 2740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 2741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 2746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 2747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 2748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable associated Interrupts */ 2750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 2751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 2754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 2765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 2766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 2768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 2770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ ARM GAS /tmp/ccpuPECZ.s page 50 2771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 2772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 2781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 2782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 2793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 2794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 2799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint 2802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 2804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 2805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) == HAL_I2C_STATE_LISTEN) 2807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 2814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 2815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 2820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 2821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 2822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable associated Interrupts */ 2824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 2825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; ARM GAS /tmp/ccpuPECZ.s page 51 2828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 2839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 2840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) 2842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 2844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 2845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 2846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 2855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 2856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 2867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 2872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 2877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 2879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 52 2885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 2891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C 2893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 2896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 2898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tmp; 2899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 2901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 2902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 2904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 2905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 2910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 2917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. 2922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 2926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 2927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 2929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 2931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */ 2936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 2937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 2938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 2940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 2941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 53 2942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 2943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 2944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 2945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 2947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** process unlock */ 2952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 2953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 2955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 2957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong usage of abort function */ 2959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 2960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 2961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @} 2966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 2969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 2970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 2974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 2977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) 2979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 2981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 2982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 2983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 2985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 2986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 2988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 2992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 2993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 2996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 2997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 2998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 54 2999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 3000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 3001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 3003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((itflags & I2C_FLAG_BERR) != RESET) && ((itsources & I2C_IT_ERRI) != RESET)) 3004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 3006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear BERR flag */ 3008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 3009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 3012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((itflags & I2C_FLAG_OVR) != RESET) && ((itsources & I2C_IT_ERRI) != RESET)) 3013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 3015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear OVR flag */ 3017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 3018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 3021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((itflags & I2C_FLAG_ARLO) != RESET) && ((itsources & I2C_IT_ERRI) != RESET)) 3022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 3024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ARLO flag */ 3026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 3027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 3030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->ErrorCode & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C 3031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 3033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 3038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 3043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 3049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 3054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccpuPECZ.s page 55 3056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 3059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 3065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 3069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 3074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 3080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 3085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 3090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 3096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Slave Address Match callback. 3101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 3104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 3105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 3108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(TransferDirection); 3112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(AddrMatchCode); ARM GAS /tmp/ccpuPECZ.s page 56 3113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 3116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Listen Complete callback. 3121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 3126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 3132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 3137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 3142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 3148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 3153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 3158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 3164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C error callback. 3169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccpuPECZ.s page 57 3170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 3174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 3180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C abort callback. 3185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 3190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hi2c); 3193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 3195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 3196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @} 3201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 3204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 3205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * 3206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @verbatim 3207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =============================================================================== 3208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 3209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** =============================================================================== 3210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** [..] 3211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 3212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** and the data flow. 3213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** @endverbatim 3215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 3216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Return the I2C handle state. 3220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL state 3223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) 3225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Return I2C handle state */ ARM GAS /tmp/ccpuPECZ.s page 58 3227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->State; 3228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 3232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for I2C module 3234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL mode 3235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) 3237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->Mode; 3239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Return the I2C error code. 3243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval I2C Error Code 3246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) 3248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->ErrorCode; 3250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @} 3254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @} 3258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 3261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @{ 3262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 3266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 3269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 3270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 3271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 3273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U; 3275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ 3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET)) 3280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 59 3284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set corresponding Error Code */ 3285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 3286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 3287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 3288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */ 3290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 3291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_RXNE) != RESET) && ((ITSources & I2C_IT_RXI) != RESET)) 3293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 3295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 3296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 3297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 3298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TXIS) != RESET) && ((ITSources & I2C_IT_TXI) != RESET)) 3300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */ 3302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++); 3303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 3304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 3305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TCR) != RESET) && ((ITSources & I2C_IT_TCI) != RESET)) 3307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize == 0U) && (hi2c->XferCount != 0U)) 3309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** devaddress = (hi2c->Instance->CR2 & I2C_CR2_SADD); 3311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 3316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 3321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, hi2c->XferOptions, I2C_NO_STARTSTOP) 3323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 3327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 3333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 3334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 3336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterSequentialCplt(hi2c); 3337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ ARM GAS /tmp/ccpuPECZ.s page 60 3341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 3342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 3343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TC) != RESET) && ((ITSources & I2C_IT_TCI) != RESET)) 3347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 3349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 3351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 3353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 3354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Generate Stop */ 3356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 3357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 3361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterSequentialCplt(hi2c); 3362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 3368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 3369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 3370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET)) 3374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master complete process */ 3376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 3377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 3383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 3387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 3390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 3391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 3392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint3 3394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */ 3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 61 3398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET)) 3399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check that I2C transfer finished */ 3401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 3402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean XferCount == 0*/ 3403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So clear Flag NACKF only */ 3404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 3405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((hi2c->XferOptions == I2C_FIRST_AND_LAST_FRAME) || (hi2c->XferOptions == I2C_LAST_FRAME) 3407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN)) 3408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 3410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 3411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if ((hi2c->XferOptions != I2C_NO_OPTION_FRAME) && (hi2c->State == HAL_I2C_STATE_BUSY_TX_ 3413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */ 3418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 3419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 3421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 3422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveSequentialCplt(hi2c); 3423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 3433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 3437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 3438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_RXNE) != RESET) && ((ITSources & I2C_IT_RXI) != RESET)) 3441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 3443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 3445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 3446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 3447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 3448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 3451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferOptions != I2C_NO_OPTION_FRAME)) 3452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 3454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveSequentialCplt(hi2c); ARM GAS /tmp/ccpuPECZ.s page 62 3455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_ADDR) != RESET) && ((ITSources & I2C_IT_ADDRI) != RESET)) 3458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 3460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TXIS) != RESET) && ((ITSources & I2C_IT_TXI) != RESET)) 3462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 3464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 3465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if all Datas have already been sent */ 3466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 3467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 3468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write data to TXDR */ 3470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = (*hi2c->pBuffPtr++); 3471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 3472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 3473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferOptions == I2C_NEXT_FRAME) || (hi2c->XferOptions == I2C_FIRST_FRAME)) 3477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 3479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 3480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveSequentialCplt(hi2c); 3481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if STOPF is set */ 3486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET)) 3487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave complete process */ 3489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 3490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 3496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 3500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 3503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 3504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 3505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uin 3507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U; 3509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 3510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccpuPECZ.s page 63 3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET)) 3515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set corresponding Error Code */ 3520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 3521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 3523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 3524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 3525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 3526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */ 3528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 3529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_TCR) != RESET) && ((ITSources & I2C_IT_TCI) != RESET)) 3531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable TC interrupt */ 3533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 3534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 3536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Recover Slave address */ 3538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** devaddress = (hi2c->Instance->CR2 & I2C_CR2_SADD); 3539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 3541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 3553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 3554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update XferCount value */ 3556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable DMA Request */ 3559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 3560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else ARM GAS /tmp/ccpuPECZ.s page 64 3569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 3571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 3572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 3573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET)) 3576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Master complete process */ 3578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 3579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 3585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 3589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 3592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 3593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 3594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint 3596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */ 3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_AF) != RESET) && ((ITSources & I2C_IT_NACKI) != RESET)) 3601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check that I2C transfer finished */ 3603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 3604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean XferCount == 0 */ 3605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So clear Flag NACKF only */ 3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c) == 0U) 3607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 3614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 3618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 3619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_ADDR) != RESET) && ((ITSources & I2C_IT_ADDRI) != RESET)) 3622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */ 3624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 65 3626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (((ITFlags & I2C_FLAG_STOPF) != RESET) && ((ITSources & I2C_IT_STOPI) != RESET)) 3627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Slave complete process */ 3629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 3630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 3636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 3640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 3644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 3645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 3647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value 3648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 3649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1 3651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); 3653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 3655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 3656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 3658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 3660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 3664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Memory Address */ 3671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send MSB of Memory Address */ 3677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 3680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 3681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) ARM GAS /tmp/ccpuPECZ.s page 66 3683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 3685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 3689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send LSB of Memory Address */ 3693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 3697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 3698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 3700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 3703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 3707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * in datasheet must be shift at right before call interface 3711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddress Internal memory address 3712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 3714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value 3715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 3716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16 3718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); 3720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 3722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 3723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_RequestMemoryRead error %d\r\n", hi2c->ErrorCode); 3725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 3726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 3728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 3732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send Memory Address */ 3739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); ARM GAS /tmp/ccpuPECZ.s page 67 3740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send MSB of Memory Address */ 3745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 3748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 3749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_RequestMemoryRead error2 %d\r\n", hi2c->ErrorCode); 3751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 3752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 3754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 3758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Send LSB of Memory Address */ 3762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until TC flag is set */ 3766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 3767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_RequestMemoryRead TIMEOUT\r\n"); 3769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 3770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 3773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Address complete process callback. 3777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 3778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 3779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 3782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint8_t transferdirection = 0U; 3784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t slaveaddrcode = 0U; 3785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t ownadd1code = 0U; 3786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t ownadd2code = 0U; 3787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 3789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(ITFlags); 3790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 3792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) == HAL_I2C_STATE_LISTEN) 3793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 3795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 3796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); ARM GAS /tmp/ccpuPECZ.s page 68 3797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 3798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 3800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 3801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((slaveaddrcode & SlaveAddr_MSK) == ((ownadd1code >> SlaveAddr_SHIFT) & SlaveAddr_MSK)) 3803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 3805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->AddrEventCount++; 3806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 3807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset Address Event counter */ 3809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 3810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */ 3812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Slave Addr callback */ 3818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 3819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 3824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 3826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 3827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Slave Addr callback */ 3832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 3833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 3836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 3839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 3840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Slave Addr callback */ 3845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 3846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Else clear address flag only */ 3849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */ 3852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 69 3854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 3861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 3862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterSequentialCplt(I2C_HandleTypeDef *hi2c) 3865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */ 3867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 3870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 3871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 3872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 3875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 3876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */ 3878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 3879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 3884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 3885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 3887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 3888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 3891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 3892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */ 3894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 3900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 3901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 3906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 3907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveSequentialCplt(I2C_HandleTypeDef *hi2c) 3910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 70 3911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */ 3912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 3915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 3917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 3919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */ 3921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 3922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Tx complete callback to inform upper layer of the end of transmit process */ 3927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 3928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 3933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 3934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 3935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */ 3937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Rx complete callback to inform upper layer of the end of receive process */ 3943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 3944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 3948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Master complete process. 3949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 3950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 3951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 3952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 3953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 3954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 3956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 3959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 3960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */ 3962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 3963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 3964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((ITFlags & I2C_FLAG_AF) != RESET) 3967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 71 3968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 3969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set acknowledge error code */ 3972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 3973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */ 3976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 3977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */ 3979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_RX_IT); 3980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 3982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->ErrorCode != HAL_I2C_ERROR_NONE) || (hi2c->State == HAL_I2C_STATE_ABORT)) 3983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 3985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 3986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 3988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 3989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 3993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 3997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 4001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 4011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 4014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 4019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 72 4025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 4026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 4035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Slave complete process. 4041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 4042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 4046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 4048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 4049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear ADDR flag */ 4051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all interrupts */ 4054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); 4055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 4057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 4058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 4060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 4061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */ 4063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 4066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) || 4067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)) 4068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = I2C_GET_DMA_REMAIN_DATA(hi2c); 4070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 4073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 4074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 4076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Store Last receive data if any */ 4080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_RXNE) != RESET)) 4081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 73 4082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 4083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 4084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 4086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 4088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 4089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 4091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 4096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 4098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 4100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 4103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 4105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 4108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 4109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 4120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 4121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Slave Rx Complete callback */ 4131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 4132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccpuPECZ.s page 74 4139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Slave Tx Complete callback */ 4141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 4142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Listen complete process. 4147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 4148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 4152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */ 4154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 4156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 4159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Store Last receive data if any */ 4161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (((ITFlags & I2C_FLAG_RXNE) != RESET)) 4162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Read data from RXDR */ 4164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (*hi2c->pBuffPtr++) = hi2c->Instance->RXDR; 4165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 4167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 4169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 4170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 4172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all Interrupts*/ 4177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 4178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACK Flag */ 4180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 4186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 4187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C interrupts error process. 4191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 4192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 4193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) ARM GAS /tmp/ccpuPECZ.s page 75 4196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */ 4198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = 0U; 4201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set new error code */ 4203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 4204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Interrupts */ 4206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) || 4207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) || 4208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)) 4209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 4211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 4212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 4214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 4216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable all interrupts */ 4221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 4222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If state is an abort treatment on goind, don't change state */ 4224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* This change will be do later */ 4225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 4226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 4228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 4231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 4232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 4235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA TX */ 4247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 76 4253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 4254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Abort DMA RX */ 4266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 4269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_ABORT) 4273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 4281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 4289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 4294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 4295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 4298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 4300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 4302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 4304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register if not empty */ 4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 4308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); ARM GAS /tmp/ccpuPECZ.s page 77 4310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 4315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle 4316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 4319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable DMA Request */ 4323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 4326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupt */ 4329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 4332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Buffer pointer */ 4335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 4336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the XferSize to transfer */ 4338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ 4348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, hi2c- 4349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */ 4351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 4352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 4357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle 4358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 4361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 25 .loc 1 4361 0 26 .cfi_startproc 27 @ args = 0, pretend = 0, frame = 0 28 @ frame_needed = 0, uses_anonymous_args = 0 29 @ link register save eliminated. ARM GAS /tmp/ccpuPECZ.s page 78 30 .LVL0: 4362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hdma); 4364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 4366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 4367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 4368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 31 .loc 1 4368 0 32 @ sp needed 33 0000 7047 bx lr 34 .cfi_endproc 35 .LFE99: 37 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 38 .align 1 39 .syntax unified 40 .code 16 41 .thumb_func 42 .fpu softvfp 44 I2C_DMASlaveReceiveCplt: 45 .LFB101: 4369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 4372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle 4373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 4376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable DMA Request */ 4380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 4383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupt */ 4386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 4389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Update Buffer pointer */ 4392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 4393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Set the XferSize to transfer */ 4395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable the DMA channel */ ARM GAS /tmp/ccpuPECZ.s page 79 4405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, hi2c- 4406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */ 4408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 4409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 4414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle 4415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 4418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 46 .loc 1 4418 0 47 .cfi_startproc 48 @ args = 0, pretend = 0, frame = 0 49 @ frame_needed = 0, uses_anonymous_args = 0 50 @ link register save eliminated. 51 .LVL1: 4419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** UNUSED(hdma); 4421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 4423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 4424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 4425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 52 .loc 1 4425 0 53 @ sp needed 54 0000 7047 bx lr 55 .cfi_endproc 56 .LFE101: 58 .section .text.I2C_Disable_IRQ,"ax",%progbits 59 .align 1 60 .syntax unified 61 .code 16 62 .thumb_func 63 .fpu softvfp 65 I2C_Disable_IRQ: 66 .LFB111: 4426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 4429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle 4430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 4433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Acknowledge */ 4437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 4438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 4441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 80 4443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 4445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 4446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hdma DMA handle. 4447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 4450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable Acknowledge */ 4454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 4455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 4457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if come from abort from user */ 4461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 4462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 4467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 4472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. 4477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 4480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET). 4481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 4482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value 4483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 4484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 4486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 4488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */ 4490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 4491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout)) 4493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; ARM GAS /tmp/ccpuPECZ.s page 81 4500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 4504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 4508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 4511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value 4512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 4513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 4515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 4517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a NACK is detected */ 4519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 4520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_WaitOnTXISFlagUntilTimeout ->I2C_IsAcknowledgeFailed error\r\n"); 4522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 4523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */ 4526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 4527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout)) 4529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 4531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** PRINTF("I2C_WaitOnTXISFlagUntilTimeout timeout\r\n"); 4538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 4543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 4547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 4550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value 4551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 4552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 4554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 4556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 82 4557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a NACK is detected */ 4558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 4559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 4561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */ 4564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout)) 4565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 4567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 4577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 4581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 4584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value 4585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 4586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 4588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 4590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a NACK is detected */ 4592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK) 4593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 4595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check if a STOPF is detected */ 4598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 4599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 4601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 4602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 4604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 4605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccpuPECZ.s page 83 4614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */ 4617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout)) 4618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 4620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 4629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication. 4633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Timeout Timeout duration 4636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Tickstart Tick start value 4637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 4638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_ 4640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 4642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Wait until STOP Flag is reset */ 4644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 4645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 4646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check for the Timeout */ 4648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 4649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout)) 4651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear NACKF Flag */ 4663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 4666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 4667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Flush TX register */ 4669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 84 4671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 4672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 4673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 4675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 4679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 4682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 4684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 4688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c I2C handle. 4689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 4690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 4691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 4692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 4693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This parameter can be one of the following values: 4694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 4695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 4696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 4697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 4698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * This parameter can be one of the following values: 4699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 4700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 4701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 4702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 4703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval None 4704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_ 4706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 4708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 4709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 4710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 4711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* update CR2 register */ 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEN 4714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 4715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 4719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 4722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 4723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 4725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tmpisr = 0U; 4727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 85 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \ 4729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 4730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 4732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 4734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 4735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT) 4738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 4740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 4741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT) 4744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupts */ 4746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 4747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT) 4750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */ 4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 4753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** else 4756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 4758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */ 4760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 4761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 4764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 4766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 4767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 4770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 4772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 4773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT) 4776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupts */ 4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 4779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable interrupts only at the end */ 4783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 4784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* all interrupts requested done */ ARM GAS /tmp/ccpuPECZ.s page 86 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 4786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 4788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 4792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 4795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** * @retval HAL status 4796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** */ 4797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 4798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 67 .loc 1 4798 0 68 .cfi_startproc 69 @ args = 0, pretend = 0, frame = 0 70 @ frame_needed = 0, uses_anonymous_args = 0 71 .LVL2: 72 0000 30B5 push {r4, r5, lr} 73 .LCFI0: 74 .cfi_def_cfa_offset 12 75 .cfi_offset 4, -12 76 .cfi_offset 5, -8 77 .cfi_offset 14, -4 78 .LVL3: 4799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tmpisr = 0U; 4800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 79 .loc 1 4801 0 80 0002 CB07 lsls r3, r1, #31 81 0004 09D5 bpl .L10 82 .LVL4: 4802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 4804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 4805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) != HAL_I2C_STATE_LISTEN) 83 .loc 1 4806 0 84 0006 4123 movs r3, #65 85 0008 C35C ldrb r3, [r0, r3] 86 000a 2822 movs r2, #40 87 000c 1340 ands r3, r2 88 000e 282B cmp r3, #40 89 0010 01D0 beq .L13 4807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 4809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 90 .loc 1 4809 0 91 0012 F223 movs r3, #242 92 0014 02E0 b .L4 93 .L13: 4804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 94 .loc 1 4804 0 95 0016 1A33 adds r3, r3, #26 96 0018 00E0 b .L4 97 .LVL5: ARM GAS /tmp/ccpuPECZ.s page 87 98 .L10: 4799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 99 .loc 1 4799 0 100 001a 0023 movs r3, #0 101 .LVL6: 102 .L4: 4810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 103 .loc 1 4813 0 104 001c 8A07 lsls r2, r1, #30 105 001e 09D5 bpl .L5 4814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 4816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 106 .loc 1 4816 0 107 0020 4424 movs r4, #68 108 0022 1C43 orrs r4, r3 109 .LVL7: 4817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((hi2c->State & HAL_I2C_STATE_LISTEN) != HAL_I2C_STATE_LISTEN) 110 .loc 1 4818 0 111 0024 4122 movs r2, #65 112 0026 825C ldrb r2, [r0, r2] 113 0028 2825 movs r5, #40 114 002a 2A40 ands r2, r5 115 002c 282A cmp r2, #40 116 002e 15D0 beq .L12 4819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 4821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 117 .loc 1 4821 0 118 0030 F422 movs r2, #244 119 0032 1343 orrs r3, r2 120 .LVL8: 121 .L5: 4822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 122 .loc 1 4825 0 123 0034 4A07 lsls r2, r1, #29 124 0036 01D5 bpl .L6 4826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 4828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 125 .loc 1 4828 0 126 0038 B822 movs r2, #184 127 003a 1343 orrs r3, r2 128 .LVL9: 129 .L6: 4829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_ERROR_IT) == I2C_XFER_ERROR_IT) 130 .loc 1 4831 0 131 003c 1122 movs r2, #17 ARM GAS /tmp/ccpuPECZ.s page 88 132 003e 0A40 ands r2, r1 133 0040 112A cmp r2, #17 134 0042 0DD0 beq .L14 135 .L7: 136 0044 1222 movs r2, #18 137 0046 1140 ands r1, r2 138 .LVL10: 4832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 4834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 4835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_CPLT_IT) == I2C_XFER_CPLT_IT) 139 .loc 1 4837 0 140 0048 1229 cmp r1, #18 141 004a 0CD0 beq .L15 142 .L8: 4838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable STOP interrupts */ 4840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 4841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RELOAD_IT) == I2C_XFER_RELOAD_IT) 143 .loc 1 4843 0 144 004c 1229 cmp r1, #18 145 004e 0DD0 beq .L16 146 .L9: 4844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Enable TC interrupts */ 4846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 4847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Disable interrupts only at the end */ 4850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 4851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* all disable interrupts request are not done */ 4852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 147 .loc 1 4852 0 148 0050 0168 ldr r1, [r0] 149 0052 0A68 ldr r2, [r1] 150 0054 9A43 bics r2, r3 151 0056 0A60 str r2, [r1] 4853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_OK; 4855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 152 .loc 1 4855 0 153 0058 0020 movs r0, #0 154 .LVL11: 155 @ sp needed 156 005a 30BD pop {r4, r5, pc} 157 .LVL12: 158 .L12: 4816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 159 .loc 1 4816 0 160 005c 2300 movs r3, r4 161 005e E9E7 b .L5 162 .LVL13: 163 .L14: ARM GAS /tmp/ccpuPECZ.s page 89 4834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 164 .loc 1 4834 0 165 0060 7F32 adds r2, r2, #127 166 0062 1343 orrs r3, r2 167 .LVL14: 168 0064 EEE7 b .L7 169 .LVL15: 170 .L15: 4840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 171 .loc 1 4840 0 172 0066 0E32 adds r2, r2, #14 173 0068 1343 orrs r3, r2 174 .LVL16: 175 006a EFE7 b .L8 176 .L16: 4846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 177 .loc 1 4846 0 178 006c 4022 movs r2, #64 179 006e 1343 orrs r3, r2 180 .LVL17: 181 0070 EEE7 b .L9 182 .cfi_endproc 183 .LFE111: 185 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits 186 .align 1 187 .syntax unified 188 .code 16 189 .thumb_func 190 .fpu softvfp 192 I2C_IsAcknowledgeFailed: 193 .LFB108: 4640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 194 .loc 1 4640 0 195 .cfi_startproc 196 @ args = 0, pretend = 0, frame = 0 197 @ frame_needed = 0, uses_anonymous_args = 0 198 .LVL18: 199 0000 70B5 push {r4, r5, r6, lr} 200 .LCFI1: 201 .cfi_def_cfa_offset 16 202 .cfi_offset 4, -16 203 .cfi_offset 5, -12 204 .cfi_offset 6, -8 205 .cfi_offset 14, -4 206 0002 0400 movs r4, r0 207 0004 0E00 movs r6, r1 208 0006 1500 movs r5, r2 4641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 209 .loc 1 4641 0 210 0008 0368 ldr r3, [r0] 211 000a 9B69 ldr r3, [r3, #24] 212 000c DB06 lsls r3, r3, #27 213 000e 16D5 bpl .L25 214 .LVL19: 215 .L20: 4645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 216 .loc 1 4645 0 ARM GAS /tmp/ccpuPECZ.s page 90 217 0010 2368 ldr r3, [r4] 218 0012 9A69 ldr r2, [r3, #24] 219 0014 9206 lsls r2, r2, #26 220 0016 14D4 bmi .L26 4648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 221 .loc 1 4648 0 222 0018 731C adds r3, r6, #1 223 001a F9D0 beq .L20 4650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 224 .loc 1 4650 0 225 001c 002E cmp r6, #0 226 001e 04D0 beq .L21 4650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 227 .loc 1 4650 0 is_stmt 0 discriminator 1 228 0020 FFF7FEFF bl HAL_GetTick 229 .LVL20: 230 0024 401B subs r0, r0, r5 231 0026 B042 cmp r0, r6 232 0028 F2D9 bls .L20 233 .L21: 4652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 234 .loc 1 4652 0 is_stmt 1 235 002a 4123 movs r3, #65 236 002c 2022 movs r2, #32 237 002e E254 strb r2, [r4, r3] 4653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 238 .loc 1 4653 0 239 0030 0023 movs r3, #0 240 0032 2232 adds r2, r2, #34 241 0034 A354 strb r3, [r4, r2] 4656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 242 .loc 1 4656 0 243 0036 023A subs r2, r2, #2 244 0038 A354 strb r3, [r4, r2] 4657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 245 .loc 1 4657 0 246 003a 0320 movs r0, #3 247 003c 24E0 b .L19 248 .LVL21: 249 .L25: 4683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 250 .loc 1 4683 0 251 003e 0020 movs r0, #0 252 .LVL22: 253 0040 22E0 b .L19 254 .LVL23: 255 .L26: 4663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 256 .loc 1 4663 0 257 0042 1022 movs r2, #16 258 0044 DA61 str r2, [r3, #28] 4666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 259 .loc 1 4666 0 260 0046 2368 ldr r3, [r4] 261 0048 1032 adds r2, r2, #16 262 004a DA61 str r2, [r3, #28] 263 .LVL24: ARM GAS /tmp/ccpuPECZ.s page 91 264 .LBB142: 265 .LBB143: 4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 266 .loc 1 4301 0 267 004c 2368 ldr r3, [r4] 268 004e 9A69 ldr r2, [r3, #24] 269 0050 9207 lsls r2, r2, #30 270 0052 01D5 bpl .L23 4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 271 .loc 1 4303 0 272 0054 0022 movs r2, #0 273 0056 9A62 str r2, [r3, #40] 274 .L23: 4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 275 .loc 1 4307 0 276 0058 2368 ldr r3, [r4] 277 005a 9A69 ldr r2, [r3, #24] 278 005c D207 lsls r2, r2, #31 279 005e 03D4 bmi .L24 4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 280 .loc 1 4309 0 281 0060 9A69 ldr r2, [r3, #24] 282 0062 0121 movs r1, #1 283 0064 0A43 orrs r2, r1 284 0066 9A61 str r2, [r3, #24] 285 .L24: 286 .LVL25: 287 .LBE143: 288 .LBE142: 4672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 289 .loc 1 4672 0 290 0068 2268 ldr r2, [r4] 291 006a 5368 ldr r3, [r2, #4] 292 006c 0749 ldr r1, .L27 293 006e 0B40 ands r3, r1 294 0070 5360 str r3, [r2, #4] 4674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 295 .loc 1 4674 0 296 0072 0423 movs r3, #4 297 0074 6364 str r3, [r4, #68] 4675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 298 .loc 1 4675 0 299 0076 3D33 adds r3, r3, #61 300 0078 2022 movs r2, #32 301 007a E254 strb r2, [r4, r3] 4676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 302 .loc 1 4676 0 303 007c 0023 movs r3, #0 304 007e 2232 adds r2, r2, #34 305 0080 A354 strb r3, [r4, r2] 4679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 306 .loc 1 4679 0 307 0082 023A subs r2, r2, #2 308 0084 A354 strb r3, [r4, r2] 4681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 309 .loc 1 4681 0 310 0086 0120 movs r0, #1 ARM GAS /tmp/ccpuPECZ.s page 92 311 .L19: 4684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 312 .loc 1 4684 0 313 @ sp needed 314 .LVL26: 315 .LVL27: 316 .LVL28: 317 0088 70BD pop {r4, r5, r6, pc} 318 .L28: 319 008a C046 .align 2 320 .L27: 321 008c 00E800FE .word -33495040 322 .cfi_endproc 323 .LFE108: 325 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 326 .align 1 327 .syntax unified 328 .code 16 329 .thumb_func 330 .fpu softvfp 332 I2C_WaitOnFlagUntilTimeout: 333 .LFB104: 4486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 334 .loc 1 4486 0 335 .cfi_startproc 336 @ args = 4, pretend = 0, frame = 0 337 @ frame_needed = 0, uses_anonymous_args = 0 338 .LVL29: 339 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 340 .LCFI2: 341 .cfi_def_cfa_offset 24 342 .cfi_offset 3, -24 343 .cfi_offset 4, -20 344 .cfi_offset 5, -16 345 .cfi_offset 6, -12 346 .cfi_offset 7, -8 347 .cfi_offset 14, -4 348 0002 0600 movs r6, r0 349 0004 0C00 movs r4, r1 350 0006 1700 movs r7, r2 351 0008 1D00 movs r5, r3 352 .LVL30: 353 .L31: 4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 354 .loc 1 4487 0 355 000a 3368 ldr r3, [r6] 356 000c 9B69 ldr r3, [r3, #24] 357 000e 2340 ands r3, r4 358 0010 1B1B subs r3, r3, r4 359 0012 5A42 rsbs r2, r3, #0 360 0014 5341 adcs r3, r3, r2 361 0016 BB42 cmp r3, r7 362 0018 13D1 bne .L35 4490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 363 .loc 1 4490 0 364 001a 6B1C adds r3, r5, #1 365 001c F5D0 beq .L31 ARM GAS /tmp/ccpuPECZ.s page 93 4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 366 .loc 1 4492 0 367 001e 002D cmp r5, #0 368 0020 05D0 beq .L32 4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 369 .loc 1 4492 0 is_stmt 0 discriminator 1 370 0022 FFF7FEFF bl HAL_GetTick 371 .LVL31: 372 0026 069B ldr r3, [sp, #24] 373 0028 C01A subs r0, r0, r3 374 002a A842 cmp r0, r5 375 002c EDD9 bls .L31 376 .L32: 4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 377 .loc 1 4494 0 is_stmt 1 378 002e 4123 movs r3, #65 379 0030 2022 movs r2, #32 380 0032 F254 strb r2, [r6, r3] 4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 381 .loc 1 4495 0 382 0034 0023 movs r3, #0 383 0036 2232 adds r2, r2, #34 384 0038 B354 strb r3, [r6, r2] 4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 385 .loc 1 4498 0 386 003a 023A subs r2, r2, #2 387 003c B354 strb r3, [r6, r2] 4499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 388 .loc 1 4499 0 389 003e 0320 movs r0, #3 390 0040 00E0 b .L33 391 .L35: 4503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 392 .loc 1 4503 0 393 0042 0020 movs r0, #0 394 .L33: 4504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 395 .loc 1 4504 0 396 @ sp needed 397 .LVL32: 398 .LVL33: 399 .LVL34: 400 0044 F8BD pop {r3, r4, r5, r6, r7, pc} 401 .cfi_endproc 402 .LFE104: 404 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 405 .align 1 406 .syntax unified 407 .code 16 408 .thumb_func 409 .fpu softvfp 411 I2C_WaitOnSTOPFlagUntilTimeout: 412 .LFB106: 4554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 413 .loc 1 4554 0 414 .cfi_startproc 415 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccpuPECZ.s page 94 416 @ frame_needed = 0, uses_anonymous_args = 0 417 .LVL35: 418 0000 70B5 push {r4, r5, r6, lr} 419 .LCFI3: 420 .cfi_def_cfa_offset 16 421 .cfi_offset 4, -16 422 .cfi_offset 5, -12 423 .cfi_offset 6, -8 424 .cfi_offset 14, -4 425 0002 0500 movs r5, r0 426 0004 0C00 movs r4, r1 427 0006 1600 movs r6, r2 428 .LVL36: 429 .L37: 4555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 430 .loc 1 4555 0 431 0008 2B68 ldr r3, [r5] 432 000a 9B69 ldr r3, [r3, #24] 433 000c 9B06 lsls r3, r3, #26 434 000e 1AD4 bmi .L42 4558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 435 .loc 1 4558 0 436 0010 3200 movs r2, r6 437 0012 2100 movs r1, r4 438 0014 2800 movs r0, r5 439 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed 440 .LVL37: 441 001a 0028 cmp r0, #0 442 001c 15D1 bne .L41 4564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 443 .loc 1 4564 0 444 001e 002C cmp r4, #0 445 0020 04D0 beq .L39 4564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 446 .loc 1 4564 0 is_stmt 0 discriminator 1 447 0022 FFF7FEFF bl HAL_GetTick 448 .LVL38: 449 0026 801B subs r0, r0, r6 450 0028 A042 cmp r0, r4 451 002a EDD9 bls .L37 452 .L39: 4566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 453 .loc 1 4566 0 is_stmt 1 454 002c 6B6C ldr r3, [r5, #68] 455 002e 2022 movs r2, #32 456 0030 1343 orrs r3, r2 457 0032 6B64 str r3, [r5, #68] 4567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 458 .loc 1 4567 0 459 0034 4123 movs r3, #65 460 0036 EA54 strb r2, [r5, r3] 4568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 461 .loc 1 4568 0 462 0038 0023 movs r3, #0 463 003a 2232 adds r2, r2, #34 464 003c AB54 strb r3, [r5, r2] 4571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 95 465 .loc 1 4571 0 466 003e 023A subs r2, r2, #2 467 0040 AB54 strb r3, [r5, r2] 4573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 468 .loc 1 4573 0 469 0042 0320 movs r0, #3 470 .L38: 4577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 471 .loc 1 4577 0 472 @ sp needed 473 .LVL39: 474 .LVL40: 475 .LVL41: 476 0044 70BD pop {r4, r5, r6, pc} 477 .LVL42: 478 .L42: 4576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 479 .loc 1 4576 0 480 0046 0020 movs r0, #0 481 0048 FCE7 b .L38 482 .L41: 4560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 483 .loc 1 4560 0 484 004a 0120 movs r0, #1 485 004c FAE7 b .L38 486 .cfi_endproc 487 .LFE106: 489 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 490 .align 1 491 .syntax unified 492 .code 16 493 .thumb_func 494 .fpu softvfp 496 I2C_WaitOnRXNEFlagUntilTimeout: 497 .LFB107: 4588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 498 .loc 1 4588 0 499 .cfi_startproc 500 @ args = 0, pretend = 0, frame = 0 501 @ frame_needed = 0, uses_anonymous_args = 0 502 .LVL43: 503 0000 70B5 push {r4, r5, r6, lr} 504 .LCFI4: 505 .cfi_def_cfa_offset 16 506 .cfi_offset 4, -16 507 .cfi_offset 5, -12 508 .cfi_offset 6, -8 509 .cfi_offset 14, -4 510 0002 0400 movs r4, r0 511 0004 0D00 movs r5, r1 512 0006 1600 movs r6, r2 513 .LVL44: 514 .L44: 4589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 515 .loc 1 4589 0 516 0008 2368 ldr r3, [r4] 517 000a 9B69 ldr r3, [r3, #24] ARM GAS /tmp/ccpuPECZ.s page 96 518 000c 5B07 lsls r3, r3, #29 519 000e 2DD4 bmi .L50 4592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 520 .loc 1 4592 0 521 0010 3200 movs r2, r6 522 0012 2900 movs r1, r5 523 0014 2000 movs r0, r4 524 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed 525 .LVL45: 526 001a 0028 cmp r0, #0 527 001c 28D1 bne .L49 4598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 528 .loc 1 4598 0 529 001e 2368 ldr r3, [r4] 530 0020 9A69 ldr r2, [r3, #24] 531 0022 9206 lsls r2, r2, #26 532 0024 11D4 bmi .L51 4617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 533 .loc 1 4617 0 534 0026 002D cmp r5, #0 535 0028 04D0 beq .L47 4617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 536 .loc 1 4617 0 is_stmt 0 discriminator 1 537 002a FFF7FEFF bl HAL_GetTick 538 .LVL46: 539 002e 801B subs r0, r0, r6 540 0030 A842 cmp r0, r5 541 0032 E9D9 bls .L44 542 .L47: 4619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 543 .loc 1 4619 0 is_stmt 1 544 0034 636C ldr r3, [r4, #68] 545 0036 2022 movs r2, #32 546 0038 1343 orrs r3, r2 547 003a 6364 str r3, [r4, #68] 4620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 548 .loc 1 4620 0 549 003c 4123 movs r3, #65 550 003e E254 strb r2, [r4, r3] 4623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 551 .loc 1 4623 0 552 0040 013B subs r3, r3, #1 553 0042 0022 movs r2, #0 554 0044 E254 strb r2, [r4, r3] 4625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 555 .loc 1 4625 0 556 0046 0320 movs r0, #3 557 .L45: 4629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 558 .loc 1 4629 0 559 @ sp needed 560 .LVL47: 561 .LVL48: 562 .LVL49: 563 0048 70BD pop {r4, r5, r6, pc} 564 .LVL50: 565 .L51: ARM GAS /tmp/ccpuPECZ.s page 97 4601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 566 .loc 1 4601 0 567 004a 2022 movs r2, #32 568 004c DA61 str r2, [r3, #28] 4604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 569 .loc 1 4604 0 570 004e 2168 ldr r1, [r4] 571 0050 4B68 ldr r3, [r1, #4] 572 0052 0848 ldr r0, .L52 573 0054 0340 ands r3, r0 574 0056 4B60 str r3, [r1, #4] 4606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 575 .loc 1 4606 0 576 0058 0023 movs r3, #0 577 005a 6364 str r3, [r4, #68] 4607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 578 .loc 1 4607 0 579 005c 4121 movs r1, #65 580 005e 6254 strb r2, [r4, r1] 4608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 581 .loc 1 4608 0 582 0060 2232 adds r2, r2, #34 583 0062 A354 strb r3, [r4, r2] 4611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 584 .loc 1 4611 0 585 0064 023A subs r2, r2, #2 586 0066 A354 strb r3, [r4, r2] 4613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 587 .loc 1 4613 0 588 0068 0120 movs r0, #1 589 006a EDE7 b .L45 590 .L50: 4628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 591 .loc 1 4628 0 592 006c 0020 movs r0, #0 593 006e EBE7 b .L45 594 .L49: 4594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 595 .loc 1 4594 0 596 0070 0120 movs r0, #1 597 0072 E9E7 b .L45 598 .L53: 599 .align 2 600 .L52: 601 0074 00E800FE .word -33495040 602 .cfi_endproc 603 .LFE107: 605 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 606 .align 1 607 .syntax unified 608 .code 16 609 .thumb_func 610 .fpu softvfp 612 I2C_WaitOnTXISFlagUntilTimeout: 613 .LFB105: 4515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 614 .loc 1 4515 0 ARM GAS /tmp/ccpuPECZ.s page 98 615 .cfi_startproc 616 @ args = 0, pretend = 0, frame = 0 617 @ frame_needed = 0, uses_anonymous_args = 0 618 .LVL51: 619 0000 70B5 push {r4, r5, r6, lr} 620 .LCFI5: 621 .cfi_def_cfa_offset 16 622 .cfi_offset 4, -16 623 .cfi_offset 5, -12 624 .cfi_offset 6, -8 625 .cfi_offset 14, -4 626 0002 0400 movs r4, r0 627 0004 0D00 movs r5, r1 628 0006 1600 movs r6, r2 629 .LVL52: 630 .L58: 4516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 631 .loc 1 4516 0 632 0008 2368 ldr r3, [r4] 633 000a 9B69 ldr r3, [r3, #24] 634 000c 9B07 lsls r3, r3, #30 635 000e 24D4 bmi .L61 4519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 636 .loc 1 4519 0 637 0010 3200 movs r2, r6 638 0012 2900 movs r1, r5 639 0014 2000 movs r0, r4 640 0016 FFF7FEFF bl I2C_IsAcknowledgeFailed 641 .LVL53: 642 001a 0028 cmp r0, #0 643 001c 18D1 bne .L62 4526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 644 .loc 1 4526 0 645 001e 6B1C adds r3, r5, #1 646 0020 F2D0 beq .L58 4528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 647 .loc 1 4528 0 648 0022 002D cmp r5, #0 649 0024 04D0 beq .L59 4528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 650 .loc 1 4528 0 is_stmt 0 discriminator 1 651 0026 FFF7FEFF bl HAL_GetTick 652 .LVL54: 653 002a 801B subs r0, r0, r6 654 002c A842 cmp r0, r5 655 002e EBD9 bls .L58 656 .L59: 4530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 657 .loc 1 4530 0 is_stmt 1 658 0030 636C ldr r3, [r4, #68] 659 0032 2022 movs r2, #32 660 0034 1343 orrs r3, r2 661 0036 6364 str r3, [r4, #68] 4531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 662 .loc 1 4531 0 663 0038 4123 movs r3, #65 664 003a E254 strb r2, [r4, r3] ARM GAS /tmp/ccpuPECZ.s page 99 4532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 665 .loc 1 4532 0 666 003c 0023 movs r3, #0 667 003e 2232 adds r2, r2, #34 668 0040 A354 strb r3, [r4, r2] 4535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 669 .loc 1 4535 0 670 0042 023A subs r2, r2, #2 671 0044 A354 strb r3, [r4, r2] 4537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 672 .loc 1 4537 0 673 0046 0648 ldr r0, .L63 674 0048 FFF7FEFF bl vcom_Send 675 .LVL55: 4538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 676 .loc 1 4538 0 677 004c 0320 movs r0, #3 678 004e 05E0 b .L57 679 .L62: 4521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 680 .loc 1 4521 0 681 0050 0448 ldr r0, .L63+4 682 0052 FFF7FEFF bl vcom_Send 683 .LVL56: 4522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 684 .loc 1 4522 0 685 0056 0120 movs r0, #1 686 0058 00E0 b .L57 687 .L61: 4542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 688 .loc 1 4542 0 689 005a 0020 movs r0, #0 690 .L57: 4543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 691 .loc 1 4543 0 692 @ sp needed 693 .LVL57: 694 .LVL58: 695 .LVL59: 696 005c 70BD pop {r4, r5, r6, pc} 697 .L64: 698 005e C046 .align 2 699 .L63: 700 0060 44000000 .word .LC2 701 0064 00000000 .word .LC0 702 .cfi_endproc 703 .LFE105: 705 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 706 .align 1 707 .syntax unified 708 .code 16 709 .thumb_func 710 .fpu softvfp 712 I2C_RequestMemoryWrite: 713 .LFB88: 3651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); 714 .loc 1 3651 0 ARM GAS /tmp/ccpuPECZ.s page 100 715 .cfi_startproc 716 @ args = 8, pretend = 0, frame = 0 717 @ frame_needed = 0, uses_anonymous_args = 0 718 .LVL60: 719 0000 F0B5 push {r4, r5, r6, r7, lr} 720 .LCFI6: 721 .cfi_def_cfa_offset 20 722 .cfi_offset 4, -20 723 .cfi_offset 5, -16 724 .cfi_offset 6, -12 725 .cfi_offset 7, -8 726 .cfi_offset 14, -4 727 0002 83B0 sub sp, sp, #12 728 .LCFI7: 729 .cfi_def_cfa_offset 32 730 0004 0600 movs r6, r0 731 0006 1500 movs r5, r2 732 0008 1C00 movs r4, r3 3652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 733 .loc 1 3652 0 734 000a DAB2 uxtb r2, r3 735 .LVL61: 736 .LBB144: 737 .LBB145: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 738 .loc 1 4713 0 739 000c 0068 ldr r0, [r0] 740 .LVL62: 741 000e 4368 ldr r3, [r0, #4] 742 .LVL63: 743 0010 1F4F ldr r7, .L73 744 0012 3B40 ands r3, r7 745 0014 8905 lsls r1, r1, #22 746 .LVL64: 747 0016 890D lsrs r1, r1, #22 748 0018 1204 lsls r2, r2, #16 749 .LVL65: 750 001a 1143 orrs r1, r2 751 001c 1D4A ldr r2, .L73+4 752 001e 1143 orrs r1, r2 753 0020 1943 orrs r1, r3 754 0022 4160 str r1, [r0, #4] 755 .LVL66: 756 .LBE145: 757 .LBE144: 3655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 758 .loc 1 3655 0 759 0024 099A ldr r2, [sp, #36] 760 0026 0899 ldr r1, [sp, #32] 761 0028 3000 movs r0, r6 762 002a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 763 .LVL67: 764 002e 0028 cmp r0, #0 765 0030 05D0 beq .L66 3657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 766 .loc 1 3657 0 767 0032 736C ldr r3, [r6, #68] ARM GAS /tmp/ccpuPECZ.s page 101 768 0034 042B cmp r3, #4 769 0036 26D1 bne .L71 3659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 770 .loc 1 3659 0 771 0038 0120 movs r0, #1 772 .L67: 3703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 773 .loc 1 3703 0 774 003a 03B0 add sp, sp, #12 775 @ sp needed 776 .LVL68: 777 003c F0BD pop {r4, r5, r6, r7, pc} 778 .LVL69: 779 .L66: 3668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 780 .loc 1 3668 0 781 003e 012C cmp r4, #1 782 0040 0ED1 bne .L68 3671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 783 .loc 1 3671 0 784 0042 3368 ldr r3, [r6] 785 0044 EDB2 uxtb r5, r5 786 0046 9D62 str r5, [r3, #40] 787 .L69: 3697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 788 .loc 1 3697 0 789 0048 099B ldr r3, [sp, #36] 790 004a 0093 str r3, [sp] 791 004c 089B ldr r3, [sp, #32] 792 004e 0022 movs r2, #0 793 0050 8021 movs r1, #128 794 0052 3000 movs r0, r6 795 0054 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 796 .LVL70: 797 0058 0028 cmp r0, #0 798 005a EED0 beq .L67 3699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 799 .loc 1 3699 0 800 005c 0320 movs r0, #3 801 005e ECE7 b .L67 802 .L68: 3677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 803 .loc 1 3677 0 804 0060 3368 ldr r3, [r6] 805 0062 2A0A lsrs r2, r5, #8 806 0064 9A62 str r2, [r3, #40] 3680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 807 .loc 1 3680 0 808 0066 099A ldr r2, [sp, #36] 809 0068 0899 ldr r1, [sp, #32] 810 006a 3000 movs r0, r6 811 006c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 812 .LVL71: 813 0070 0028 cmp r0, #0 814 0072 04D0 beq .L70 3682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 815 .loc 1 3682 0 ARM GAS /tmp/ccpuPECZ.s page 102 816 0074 736C ldr r3, [r6, #68] 817 0076 042B cmp r3, #4 818 0078 07D1 bne .L72 3684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 819 .loc 1 3684 0 820 007a 0120 movs r0, #1 821 007c DDE7 b .L67 822 .L70: 3693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 823 .loc 1 3693 0 824 007e 3368 ldr r3, [r6] 825 0080 EDB2 uxtb r5, r5 826 0082 9D62 str r5, [r3, #40] 827 0084 E0E7 b .L69 828 .L71: 3663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 829 .loc 1 3663 0 830 0086 0320 movs r0, #3 831 0088 D7E7 b .L67 832 .L72: 3688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 833 .loc 1 3688 0 834 008a 0320 movs r0, #3 835 008c D5E7 b .L67 836 .L74: 837 008e C046 .align 2 838 .L73: 839 0090 009800FC .word -67069952 840 0094 00200081 .word -2130698240 841 .cfi_endproc 842 .LFE88: 844 .section .text.I2C_RequestMemoryRead,"ax",%progbits 845 .align 1 846 .syntax unified 847 .code 16 848 .thumb_func 849 .fpu softvfp 851 I2C_RequestMemoryRead: 852 .LFB89: 3718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WRITE); 853 .loc 1 3718 0 854 .cfi_startproc 855 @ args = 8, pretend = 0, frame = 0 856 @ frame_needed = 0, uses_anonymous_args = 0 857 .LVL72: 858 0000 F0B5 push {r4, r5, r6, r7, lr} 859 .LCFI8: 860 .cfi_def_cfa_offset 20 861 .cfi_offset 4, -20 862 .cfi_offset 5, -16 863 .cfi_offset 6, -12 864 .cfi_offset 7, -8 865 .cfi_offset 14, -4 866 0002 83B0 sub sp, sp, #12 867 .LCFI9: 868 .cfi_def_cfa_offset 32 869 0004 0600 movs r6, r0 ARM GAS /tmp/ccpuPECZ.s page 103 870 0006 1400 movs r4, r2 871 0008 1D00 movs r5, r3 3719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 872 .loc 1 3719 0 873 000a DAB2 uxtb r2, r3 874 .LVL73: 875 .LBB146: 876 .LBB147: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 877 .loc 1 4713 0 878 000c 0068 ldr r0, [r0] 879 .LVL74: 880 000e 4368 ldr r3, [r0, #4] 881 .LVL75: 882 0010 254F ldr r7, .L86 883 0012 3B40 ands r3, r7 884 0014 8905 lsls r1, r1, #22 885 .LVL76: 886 0016 890D lsrs r1, r1, #22 887 0018 1204 lsls r2, r2, #16 888 .LVL77: 889 001a 1143 orrs r1, r2 890 001c 234A ldr r2, .L86+4 891 001e 1143 orrs r1, r2 892 0020 1943 orrs r1, r3 893 0022 4160 str r1, [r0, #4] 894 .LVL78: 895 .LBE147: 896 .LBE146: 3722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 897 .loc 1 3722 0 898 0024 099A ldr r2, [sp, #36] 899 0026 0899 ldr r1, [sp, #32] 900 0028 3000 movs r0, r6 901 002a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 902 .LVL79: 903 002e 0028 cmp r0, #0 904 0030 10D1 bne .L83 3736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 905 .loc 1 3736 0 906 0032 012D cmp r5, #1 907 0034 17D1 bne .L78 3739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 908 .loc 1 3739 0 909 0036 3368 ldr r3, [r6] 910 0038 E4B2 uxtb r4, r4 911 003a 9C62 str r4, [r3, #40] 912 .L79: 3766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 913 .loc 1 3766 0 914 003c 099B ldr r3, [sp, #36] 915 003e 0093 str r3, [sp] 916 0040 089B ldr r3, [sp, #32] 917 0042 0022 movs r2, #0 918 0044 4021 movs r1, #64 919 0046 3000 movs r0, r6 920 0048 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout ARM GAS /tmp/ccpuPECZ.s page 104 921 .LVL80: 922 004c 0028 cmp r0, #0 923 004e 21D1 bne .L84 924 .L77: 3773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 925 .loc 1 3773 0 926 0050 03B0 add sp, sp, #12 927 @ sp needed 928 .LVL81: 929 0052 F0BD pop {r4, r5, r6, r7, pc} 930 .LVL82: 931 .L83: 3724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 932 .loc 1 3724 0 933 0054 716C ldr r1, [r6, #68] 934 0056 1648 ldr r0, .L86+8 935 0058 FFF7FEFF bl vcom_Send 936 .LVL83: 3725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 937 .loc 1 3725 0 938 005c 736C ldr r3, [r6, #68] 939 005e 042B cmp r3, #4 940 0060 1DD1 bne .L81 3727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 941 .loc 1 3727 0 942 0062 0120 movs r0, #1 943 0064 F4E7 b .L77 944 .L78: 3745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 945 .loc 1 3745 0 946 0066 3368 ldr r3, [r6] 947 0068 220A lsrs r2, r4, #8 948 006a 9A62 str r2, [r3, #40] 3748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 949 .loc 1 3748 0 950 006c 099A ldr r2, [sp, #36] 951 006e 0899 ldr r1, [sp, #32] 952 0070 3000 movs r0, r6 953 0072 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 954 .LVL84: 955 0076 0028 cmp r0, #0 956 0078 03D1 bne .L85 3762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 957 .loc 1 3762 0 958 007a 3368 ldr r3, [r6] 959 007c E4B2 uxtb r4, r4 960 007e 9C62 str r4, [r3, #40] 961 0080 DCE7 b .L79 962 .L85: 3750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 963 .loc 1 3750 0 964 0082 716C ldr r1, [r6, #68] 965 0084 0B48 ldr r0, .L86+12 966 0086 FFF7FEFF bl vcom_Send 967 .LVL85: 3751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 968 .loc 1 3751 0 ARM GAS /tmp/ccpuPECZ.s page 105 969 008a 736C ldr r3, [r6, #68] 970 008c 042B cmp r3, #4 971 008e 08D1 bne .L82 3753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 972 .loc 1 3753 0 973 0090 0120 movs r0, #1 974 0092 DDE7 b .L77 975 .L84: 3768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 976 .loc 1 3768 0 977 0094 0848 ldr r0, .L86+16 978 0096 FFF7FEFF bl vcom_Send 979 .LVL86: 3769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 980 .loc 1 3769 0 981 009a 0320 movs r0, #3 982 009c D8E7 b .L77 983 .L81: 3731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 984 .loc 1 3731 0 985 009e 0320 movs r0, #3 986 00a0 D6E7 b .L77 987 .L82: 3757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 988 .loc 1 3757 0 989 00a2 0320 movs r0, #3 990 00a4 D4E7 b .L77 991 .L87: 992 00a6 C046 .align 2 993 .L86: 994 00a8 009800FC .word -67069952 995 00ac 00200080 .word -2147475456 996 00b0 00000000 .word .LC4 997 00b4 24000000 .word .LC6 998 00b8 48000000 .word .LC8 999 .cfi_endproc 1000 .LFE89: 1002 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 1003 .align 1 1004 .syntax unified 1005 .code 16 1006 .thumb_func 1007 .fpu softvfp 1009 I2C_DMAMasterTransmitCplt: 1010 .LFB98: 4319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1011 .loc 1 4319 0 1012 .cfi_startproc 1013 @ args = 0, pretend = 0, frame = 0 1014 @ frame_needed = 0, uses_anonymous_args = 0 1015 .LVL87: 1016 0000 10B5 push {r4, lr} 1017 .LCFI10: 1018 .cfi_def_cfa_offset 8 1019 .cfi_offset 4, -8 1020 .cfi_offset 14, -4 4320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 106 1021 .loc 1 4320 0 1022 0002 846A ldr r4, [r0, #40] 1023 .LVL88: 4323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1024 .loc 1 4323 0 1025 0004 2268 ldr r2, [r4] 1026 0006 1368 ldr r3, [r2] 1027 0008 1E49 ldr r1, .L101 1028 000a 0B40 ands r3, r1 1029 000c 1360 str r3, [r2] 4326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1030 .loc 1 4326 0 1031 000e 638D ldrh r3, [r4, #42] 1032 0010 9BB2 uxth r3, r3 1033 0012 002B cmp r3, #0 1034 0014 10D1 bne .L89 1035 .LVL89: 1036 .LBB148: 1037 .LBB149: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 1038 .loc 1 4728 0 1039 0016 636B ldr r3, [r4, #52] 1040 0018 1B4A ldr r2, .L101+4 1041 001a 9342 cmp r3, r2 1042 001c 0AD0 beq .L95 1043 001e 1B4A ldr r2, .L101+8 1044 0020 9342 cmp r3, r2 1045 0022 05D0 beq .L99 4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1046 .loc 1 4778 0 1047 0024 F421 movs r1, #244 1048 .L90: 1049 .LVL90: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1050 .loc 1 4785 0 1051 0026 2268 ldr r2, [r4] 1052 0028 1368 ldr r3, [r2] 1053 002a 0B43 orrs r3, r1 1054 002c 1360 str r3, [r2] 1055 .LVL91: 1056 .L88: 1057 .LBE149: 1058 .LBE148: 4353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1059 .loc 1 4353 0 1060 @ sp needed 1061 .LVL92: 1062 002e 10BD pop {r4, pc} 1063 .LVL93: 1064 .L99: 1065 .LBB151: 1066 .LBB150: 4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1067 .loc 1 4752 0 1068 0030 6021 movs r1, #96 1069 0032 F8E7 b .L90 1070 .L95: ARM GAS /tmp/ccpuPECZ.s page 107 1071 0034 6021 movs r1, #96 1072 0036 F6E7 b .L90 1073 .LVL94: 1074 .L89: 1075 .LBE150: 1076 .LBE151: 4335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1077 .loc 1 4335 0 1078 0038 218D ldrh r1, [r4, #40] 1079 003a 636A ldr r3, [r4, #36] 1080 003c 9C46 mov ip, r3 1081 003e 6144 add r1, r1, ip 1082 0040 6162 str r1, [r4, #36] 4338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1083 .loc 1 4338 0 1084 0042 638D ldrh r3, [r4, #42] 1085 0044 9BB2 uxth r3, r3 1086 0046 FF2B cmp r3, #255 1087 0048 14D9 bls .L92 4340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1088 .loc 1 4340 0 1089 004a FF23 movs r3, #255 1090 004c 2385 strh r3, [r4, #40] 1091 .L93: 4348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1092 .loc 1 4348 0 1093 004e 2268 ldr r2, [r4] 1094 0050 2832 adds r2, r2, #40 1095 0052 238D ldrh r3, [r4, #40] 1096 0054 A06B ldr r0, [r4, #56] 1097 .LVL95: 1098 0056 FFF7FEFF bl HAL_DMA_Start_IT 1099 .LVL96: 1100 .LBB152: 1101 .LBB153: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 1102 .loc 1 4728 0 1103 005a 636B ldr r3, [r4, #52] 1104 005c 0A4A ldr r2, .L101+4 1105 005e 9342 cmp r3, r2 1106 0060 0DD0 beq .L97 1107 0062 0A4A ldr r2, .L101+8 1108 0064 9342 cmp r3, r2 1109 0066 08D0 beq .L100 4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1110 .loc 1 4778 0 1111 0068 F421 movs r1, #244 1112 .L94: 1113 .LVL97: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1114 .loc 1 4785 0 1115 006a 2268 ldr r2, [r4] 1116 006c 1368 ldr r3, [r2] 1117 006e 0B43 orrs r3, r1 1118 0070 1360 str r3, [r2] 1119 .LBE153: 1120 .LBE152: ARM GAS /tmp/ccpuPECZ.s page 108 4353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1121 .loc 1 4353 0 1122 0072 DCE7 b .L88 1123 .LVL98: 1124 .L92: 4344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1125 .loc 1 4344 0 1126 0074 638D ldrh r3, [r4, #42] 1127 0076 2385 strh r3, [r4, #40] 1128 0078 E9E7 b .L93 1129 .LVL99: 1130 .L100: 1131 .LBB155: 1132 .LBB154: 4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1133 .loc 1 4752 0 1134 007a 6021 movs r1, #96 1135 007c F5E7 b .L94 1136 .L97: 1137 007e 6021 movs r1, #96 1138 0080 F3E7 b .L94 1139 .L102: 1140 0082 C046 .align 2 1141 .L101: 1142 0084 FFBFFFFF .word -16385 1143 0088 00000000 .word I2C_Master_ISR_DMA 1144 008c 00000000 .word I2C_Slave_ISR_DMA 1145 .LBE154: 1146 .LBE155: 1147 .cfi_endproc 1148 .LFE98: 1150 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 1151 .align 1 1152 .syntax unified 1153 .code 16 1154 .thumb_func 1155 .fpu softvfp 1157 I2C_DMAMasterReceiveCplt: 1158 .LFB100: 4376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1159 .loc 1 4376 0 1160 .cfi_startproc 1161 @ args = 0, pretend = 0, frame = 0 1162 @ frame_needed = 0, uses_anonymous_args = 0 1163 .LVL100: 1164 0000 10B5 push {r4, lr} 1165 .LCFI11: 1166 .cfi_def_cfa_offset 8 1167 .cfi_offset 4, -8 1168 .cfi_offset 14, -4 4377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1169 .loc 1 4377 0 1170 0002 846A ldr r4, [r0, #40] 1171 .LVL101: 4380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1172 .loc 1 4380 0 1173 0004 2268 ldr r2, [r4] ARM GAS /tmp/ccpuPECZ.s page 109 1174 0006 1368 ldr r3, [r2] 1175 0008 1E49 ldr r1, .L116 1176 000a 0B40 ands r3, r1 1177 000c 1360 str r3, [r2] 4383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1178 .loc 1 4383 0 1179 000e 638D ldrh r3, [r4, #42] 1180 0010 9BB2 uxth r3, r3 1181 0012 002B cmp r3, #0 1182 0014 10D1 bne .L104 1183 .LVL102: 1184 .LBB156: 1185 .LBB157: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 1186 .loc 1 4728 0 1187 0016 636B ldr r3, [r4, #52] 1188 0018 1B4A ldr r2, .L116+4 1189 001a 9342 cmp r3, r2 1190 001c 0AD0 beq .L110 1191 001e 1B4A ldr r2, .L116+8 1192 0020 9342 cmp r3, r2 1193 0022 05D0 beq .L114 4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1194 .loc 1 4778 0 1195 0024 F421 movs r1, #244 1196 .L105: 1197 .LVL103: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1198 .loc 1 4785 0 1199 0026 2268 ldr r2, [r4] 1200 0028 1368 ldr r3, [r2] 1201 002a 0B43 orrs r3, r1 1202 002c 1360 str r3, [r2] 1203 .LVL104: 1204 .L103: 1205 .LBE157: 1206 .LBE156: 4410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1207 .loc 1 4410 0 1208 @ sp needed 1209 .LVL105: 1210 002e 10BD pop {r4, pc} 1211 .LVL106: 1212 .L114: 1213 .LBB159: 1214 .LBB158: 4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1215 .loc 1 4752 0 1216 0030 6021 movs r1, #96 1217 0032 F8E7 b .L105 1218 .L110: 1219 0034 6021 movs r1, #96 1220 0036 F6E7 b .L105 1221 .LVL107: 1222 .L104: 1223 .LBE158: 1224 .LBE159: ARM GAS /tmp/ccpuPECZ.s page 110 4392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1225 .loc 1 4392 0 1226 0038 228D ldrh r2, [r4, #40] 1227 003a 636A ldr r3, [r4, #36] 1228 003c 9C46 mov ip, r3 1229 003e 6244 add r2, r2, ip 1230 0040 6262 str r2, [r4, #36] 4395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1231 .loc 1 4395 0 1232 0042 638D ldrh r3, [r4, #42] 1233 0044 9BB2 uxth r3, r3 1234 0046 FF2B cmp r3, #255 1235 0048 14D9 bls .L107 4397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1236 .loc 1 4397 0 1237 004a FF23 movs r3, #255 1238 004c 2385 strh r3, [r4, #40] 1239 .L108: 4405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1240 .loc 1 4405 0 1241 004e 2168 ldr r1, [r4] 1242 0050 2431 adds r1, r1, #36 1243 0052 238D ldrh r3, [r4, #40] 1244 0054 E06B ldr r0, [r4, #60] 1245 .LVL108: 1246 0056 FFF7FEFF bl HAL_DMA_Start_IT 1247 .LVL109: 1248 .LBB160: 1249 .LBB161: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 1250 .loc 1 4728 0 1251 005a 636B ldr r3, [r4, #52] 1252 005c 0A4A ldr r2, .L116+4 1253 005e 9342 cmp r3, r2 1254 0060 0DD0 beq .L112 1255 0062 0A4A ldr r2, .L116+8 1256 0064 9342 cmp r3, r2 1257 0066 08D0 beq .L115 4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1258 .loc 1 4778 0 1259 0068 F421 movs r1, #244 1260 .L109: 1261 .LVL110: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1262 .loc 1 4785 0 1263 006a 2268 ldr r2, [r4] 1264 006c 1368 ldr r3, [r2] 1265 006e 0B43 orrs r3, r1 1266 0070 1360 str r3, [r2] 1267 .LBE161: 1268 .LBE160: 4410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1269 .loc 1 4410 0 1270 0072 DCE7 b .L103 1271 .LVL111: 1272 .L107: 4401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 111 1273 .loc 1 4401 0 1274 0074 638D ldrh r3, [r4, #42] 1275 0076 2385 strh r3, [r4, #40] 1276 0078 E9E7 b .L108 1277 .LVL112: 1278 .L115: 1279 .LBB163: 1280 .LBB162: 4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1281 .loc 1 4752 0 1282 007a 6021 movs r1, #96 1283 007c F5E7 b .L109 1284 .L112: 1285 007e 6021 movs r1, #96 1286 0080 F3E7 b .L109 1287 .L117: 1288 0082 C046 .align 2 1289 .L116: 1290 0084 FF7FFFFF .word -32769 1291 0088 00000000 .word I2C_Master_ISR_DMA 1292 008c 00000000 .word I2C_Slave_ISR_DMA 1293 .LBE162: 1294 .LBE163: 1295 .cfi_endproc 1296 .LFE100: 1298 .section .text.HAL_I2C_MspInit,"ax",%progbits 1299 .align 1 1300 .weak HAL_I2C_MspInit 1301 .syntax unified 1302 .code 16 1303 .thumb_func 1304 .fpu softvfp 1306 HAL_I2C_MspInit: 1307 .LFB41: 529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1308 .loc 1 529 0 1309 .cfi_startproc 1310 @ args = 0, pretend = 0, frame = 0 1311 @ frame_needed = 0, uses_anonymous_args = 0 1312 @ link register save eliminated. 1313 .LVL113: 536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1314 .loc 1 536 0 1315 @ sp needed 1316 0000 7047 bx lr 1317 .cfi_endproc 1318 .LFE41: 1320 .section .text.HAL_I2C_Init,"ax",%progbits 1321 .align 1 1322 .global HAL_I2C_Init 1323 .syntax unified 1324 .code 16 1325 .thumb_func 1326 .fpu softvfp 1328 HAL_I2C_Init: 1329 .LFB39: 406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */ ARM GAS /tmp/ccpuPECZ.s page 112 1330 .loc 1 406 0 1331 .cfi_startproc 1332 @ args = 0, pretend = 0, frame = 0 1333 @ frame_needed = 0, uses_anonymous_args = 0 1334 .LVL114: 1335 0000 10B5 push {r4, lr} 1336 .LCFI12: 1337 .cfi_def_cfa_offset 8 1338 .cfi_offset 4, -8 1339 .cfi_offset 14, -4 1340 0002 041E subs r4, r0, #0 408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1341 .loc 1 408 0 1342 0004 59D0 beq .L125 423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1343 .loc 1 423 0 1344 0006 4123 movs r3, #65 1345 0008 C35C ldrb r3, [r0, r3] 1346 000a 002B cmp r3, #0 1347 000c 43D0 beq .L126 1348 .LVL115: 1349 .L121: 432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1350 .loc 1 432 0 1351 000e 4123 movs r3, #65 1352 0010 2422 movs r2, #36 1353 0012 E254 strb r2, [r4, r3] 435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1354 .loc 1 435 0 1355 0014 2268 ldr r2, [r4] 1356 0016 1368 ldr r3, [r2] 1357 0018 0121 movs r1, #1 1358 001a 8B43 bics r3, r1 1359 001c 1360 str r3, [r2] 439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1360 .loc 1 439 0 1361 001e 2268 ldr r2, [r4] 1362 0020 274B ldr r3, .L129 1363 0022 6168 ldr r1, [r4, #4] 1364 0024 0B40 ands r3, r1 1365 0026 1361 str r3, [r2, #16] 443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1366 .loc 1 443 0 1367 0028 2268 ldr r2, [r4] 1368 002a 9368 ldr r3, [r2, #8] 1369 002c 2549 ldr r1, .L129+4 1370 002e 0B40 ands r3, r1 1371 0030 9360 str r3, [r2, #8] 446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1372 .loc 1 446 0 1373 0032 E368 ldr r3, [r4, #12] 1374 0034 012B cmp r3, #1 1375 0036 34D0 beq .L127 452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1376 .loc 1 452 0 1377 0038 2268 ldr r2, [r4] 1378 003a 8423 movs r3, #132 ARM GAS /tmp/ccpuPECZ.s page 113 1379 003c 1B02 lsls r3, r3, #8 1380 003e A168 ldr r1, [r4, #8] 1381 0040 0B43 orrs r3, r1 1382 0042 9360 str r3, [r2, #8] 1383 .L123: 457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1384 .loc 1 457 0 1385 0044 E368 ldr r3, [r4, #12] 1386 0046 022B cmp r3, #2 1387 0048 32D0 beq .L128 1388 .L124: 462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1389 .loc 1 462 0 1390 004a 2268 ldr r2, [r4] 1391 004c 5168 ldr r1, [r2, #4] 1392 004e 1E4B ldr r3, .L129+8 1393 0050 0B43 orrs r3, r1 1394 0052 5360 str r3, [r2, #4] 466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1395 .loc 1 466 0 1396 0054 2268 ldr r2, [r4] 1397 0056 D368 ldr r3, [r2, #12] 1398 0058 1A49 ldr r1, .L129+4 1399 005a 0B40 ands r3, r1 1400 005c D360 str r3, [r2, #12] 469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1401 .loc 1 469 0 1402 005e 2369 ldr r3, [r4, #16] 1403 0060 6269 ldr r2, [r4, #20] 1404 0062 1343 orrs r3, r2 1405 0064 A269 ldr r2, [r4, #24] 1406 0066 1202 lsls r2, r2, #8 1407 0068 2168 ldr r1, [r4] 1408 006a 1343 orrs r3, r2 1409 006c CB60 str r3, [r1, #12] 473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1410 .loc 1 473 0 1411 006e 2268 ldr r2, [r4] 1412 0070 E369 ldr r3, [r4, #28] 1413 0072 216A ldr r1, [r4, #32] 1414 0074 0B43 orrs r3, r1 1415 0076 1360 str r3, [r2] 476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1416 .loc 1 476 0 1417 0078 2268 ldr r2, [r4] 1418 007a 1368 ldr r3, [r2] 1419 007c 0121 movs r1, #1 1420 007e 0B43 orrs r3, r1 1421 0080 1360 str r3, [r2] 478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1422 .loc 1 478 0 1423 0082 0023 movs r3, #0 1424 0084 6364 str r3, [r4, #68] 479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1425 .loc 1 479 0 1426 0086 4122 movs r2, #65 1427 0088 1F31 adds r1, r1, #31 ARM GAS /tmp/ccpuPECZ.s page 114 1428 008a A154 strb r1, [r4, r2] 480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1429 .loc 1 480 0 1430 008c 2363 str r3, [r4, #48] 481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1431 .loc 1 481 0 1432 008e 0132 adds r2, r2, #1 1433 0090 A354 strb r3, [r4, r2] 483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1434 .loc 1 483 0 1435 0092 0020 movs r0, #0 1436 .L120: 484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1437 .loc 1 484 0 1438 @ sp needed 1439 .LVL116: 1440 0094 10BD pop {r4, pc} 1441 .LVL117: 1442 .L126: 426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1443 .loc 1 426 0 1444 0096 4033 adds r3, r3, #64 1445 0098 0022 movs r2, #0 1446 009a C254 strb r2, [r0, r3] 429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1447 .loc 1 429 0 1448 009c FFF7FEFF bl HAL_I2C_MspInit 1449 .LVL118: 1450 00a0 B5E7 b .L121 1451 .L127: 448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1452 .loc 1 448 0 1453 00a2 2268 ldr r2, [r4] 1454 00a4 8023 movs r3, #128 1455 00a6 1B02 lsls r3, r3, #8 1456 00a8 A168 ldr r1, [r4, #8] 1457 00aa 0B43 orrs r3, r1 1458 00ac 9360 str r3, [r2, #8] 1459 00ae C9E7 b .L123 1460 .L128: 459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1461 .loc 1 459 0 1462 00b0 2368 ldr r3, [r4] 1463 00b2 8022 movs r2, #128 1464 00b4 1201 lsls r2, r2, #4 1465 00b6 5A60 str r2, [r3, #4] 1466 00b8 C7E7 b .L124 1467 .LVL119: 1468 .L125: 410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1469 .loc 1 410 0 1470 00ba 0120 movs r0, #1 1471 .LVL120: 1472 00bc EAE7 b .L120 1473 .L130: 1474 00be C046 .align 2 1475 .L129: ARM GAS /tmp/ccpuPECZ.s page 115 1476 00c0 FFFFFFF0 .word -251658241 1477 00c4 FF7FFFFF .word -32769 1478 00c8 00800002 .word 33587200 1479 .cfi_endproc 1480 .LFE39: 1482 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1483 .align 1 1484 .weak HAL_I2C_MspDeInit 1485 .syntax unified 1486 .code 16 1487 .thumb_func 1488 .fpu softvfp 1490 HAL_I2C_MspDeInit: 1491 .LFB42: 545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1492 .loc 1 545 0 1493 .cfi_startproc 1494 @ args = 0, pretend = 0, frame = 0 1495 @ frame_needed = 0, uses_anonymous_args = 0 1496 @ link register save eliminated. 1497 .LVL121: 552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1498 .loc 1 552 0 1499 @ sp needed 1500 0000 7047 bx lr 1501 .cfi_endproc 1502 .LFE42: 1504 .section .text.HAL_I2C_DeInit,"ax",%progbits 1505 .align 1 1506 .global HAL_I2C_DeInit 1507 .syntax unified 1508 .code 16 1509 .thumb_func 1510 .fpu softvfp 1512 HAL_I2C_DeInit: 1513 .LFB40: 493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1514 .loc 1 493 0 1515 .cfi_startproc 1516 @ args = 0, pretend = 0, frame = 0 1517 @ frame_needed = 0, uses_anonymous_args = 0 1518 .LVL122: 1519 0000 70B5 push {r4, r5, r6, lr} 1520 .LCFI13: 1521 .cfi_def_cfa_offset 16 1522 .cfi_offset 4, -16 1523 .cfi_offset 5, -12 1524 .cfi_offset 6, -8 1525 .cfi_offset 14, -4 1526 0002 041E subs r4, r0, #0 495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1527 .loc 1 495 0 1528 0004 13D0 beq .L134 503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1529 .loc 1 503 0 1530 0006 4125 movs r5, #65 1531 0008 2423 movs r3, #36 ARM GAS /tmp/ccpuPECZ.s page 116 1532 000a 4355 strb r3, [r0, r5] 506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1533 .loc 1 506 0 1534 000c 0268 ldr r2, [r0] 1535 000e 1368 ldr r3, [r2] 1536 0010 0121 movs r1, #1 1537 0012 8B43 bics r3, r1 1538 0014 1360 str r3, [r2] 509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1539 .loc 1 509 0 1540 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1541 .LVL123: 511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1542 .loc 1 511 0 1543 001a 0023 movs r3, #0 1544 001c 6364 str r3, [r4, #68] 512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1545 .loc 1 512 0 1546 001e 6355 strb r3, [r4, r5] 513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1547 .loc 1 513 0 1548 0020 2363 str r3, [r4, #48] 514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1549 .loc 1 514 0 1550 0022 4222 movs r2, #66 1551 0024 A354 strb r3, [r4, r2] 517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1552 .loc 1 517 0 1553 0026 023A subs r2, r2, #2 1554 0028 A354 strb r3, [r4, r2] 519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1555 .loc 1 519 0 1556 002a 0020 movs r0, #0 1557 .L133: 520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1558 .loc 1 520 0 1559 @ sp needed 1560 .LVL124: 1561 002c 70BD pop {r4, r5, r6, pc} 1562 .LVL125: 1563 .L134: 497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1564 .loc 1 497 0 1565 002e 0120 movs r0, #1 1566 .LVL126: 1567 0030 FCE7 b .L133 1568 .cfi_endproc 1569 .LFE40: 1571 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1572 .align 1 1573 .global HAL_I2C_Master_Transmit 1574 .syntax unified 1575 .code 16 1576 .thumb_func 1577 .fpu softvfp 1579 HAL_I2C_Master_Transmit: 1580 .LFB43: ARM GAS /tmp/ccpuPECZ.s page 117 629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 1581 .loc 1 629 0 1582 .cfi_startproc 1583 @ args = 4, pretend = 0, frame = 8 1584 @ frame_needed = 0, uses_anonymous_args = 0 1585 .LVL127: 1586 0000 F0B5 push {r4, r5, r6, r7, lr} 1587 .LCFI14: 1588 .cfi_def_cfa_offset 20 1589 .cfi_offset 4, -20 1590 .cfi_offset 5, -16 1591 .cfi_offset 6, -12 1592 .cfi_offset 7, -8 1593 .cfi_offset 14, -4 1594 0002 85B0 sub sp, sp, #20 1595 .LCFI15: 1596 .cfi_def_cfa_offset 40 1597 0004 0400 movs r4, r0 1598 0006 0D00 movs r5, r1 1599 0008 1700 movs r7, r2 1600 000a 0393 str r3, [sp, #12] 1601 .LVL128: 632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1602 .loc 1 632 0 1603 000c 4123 movs r3, #65 1604 .LVL129: 1605 000e C35C ldrb r3, [r0, r3] 1606 0010 202B cmp r3, #32 1607 0012 00D0 beq .LCB1634 1608 0014 BDE0 b .L147 @long jump 1609 .LCB1634: 635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1610 .loc 1 635 0 1611 0016 2033 adds r3, r3, #32 1612 0018 C35C ldrb r3, [r0, r3] 1613 001a 012B cmp r3, #1 1614 001c 00D1 bne .LCB1638 1615 001e BBE0 b .L148 @long jump 1616 .LCB1638: 635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1617 .loc 1 635 0 is_stmt 0 discriminator 2 1618 0020 4023 movs r3, #64 1619 0022 0122 movs r2, #1 1620 .LVL130: 1621 0024 C254 strb r2, [r0, r3] 638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1622 .loc 1 638 0 is_stmt 1 discriminator 2 1623 0026 FFF7FEFF bl HAL_GetTick 1624 .LVL131: 1625 002a 0600 movs r6, r0 1626 .LVL132: 1627 .L137: 1628 .LBB164: 1629 .LBB165: 4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1630 .loc 1 4487 0 1631 002c 2368 ldr r3, [r4] ARM GAS /tmp/ccpuPECZ.s page 118 1632 002e 9A69 ldr r2, [r3, #24] 1633 0030 1204 lsls r2, r2, #16 1634 0032 0ED5 bpl .L152 4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1635 .loc 1 4492 0 1636 0034 FFF7FEFF bl HAL_GetTick 1637 .LVL133: 1638 0038 801B subs r0, r0, r6 1639 003a 1928 cmp r0, #25 1640 003c F6D9 bls .L137 4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1641 .loc 1 4494 0 1642 003e 4123 movs r3, #65 1643 0040 2022 movs r2, #32 1644 0042 E254 strb r2, [r4, r3] 4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1645 .loc 1 4495 0 1646 0044 0023 movs r3, #0 1647 0046 2232 adds r2, r2, #34 1648 0048 A354 strb r3, [r4, r2] 4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 1649 .loc 1 4498 0 1650 004a 023A subs r2, r2, #2 1651 004c A354 strb r3, [r4, r2] 1652 .LVL134: 1653 .LBE165: 1654 .LBE164: 642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1655 .loc 1 642 0 1656 004e 0320 movs r0, #3 1657 0050 A0E0 b .L136 1658 .LVL135: 1659 .L152: 645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1660 .loc 1 645 0 1661 0052 4122 movs r2, #65 1662 0054 2121 movs r1, #33 1663 0056 A154 strb r1, [r4, r2] 646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1664 .loc 1 646 0 1665 0058 0132 adds r2, r2, #1 1666 005a 1139 subs r1, r1, #17 1667 005c A154 strb r1, [r4, r2] 647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1668 .loc 1 647 0 1669 005e 0022 movs r2, #0 1670 0060 6264 str r2, [r4, #68] 650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 1671 .loc 1 650 0 1672 0062 6762 str r7, [r4, #36] 651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1673 .loc 1 651 0 1674 0064 6946 mov r1, sp 1675 0066 8989 ldrh r1, [r1, #12] 1676 0068 6185 strh r1, [r4, #42] 652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1677 .loc 1 652 0 ARM GAS /tmp/ccpuPECZ.s page 119 1678 006a 6263 str r2, [r4, #52] 656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1679 .loc 1 656 0 1680 006c 628D ldrh r2, [r4, #42] 1681 006e 92B2 uxth r2, r2 1682 0070 FF2A cmp r2, #255 1683 0072 0ED9 bls .L139 658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRIT 1684 .loc 1 658 0 1685 0074 FF22 movs r2, #255 1686 0076 2285 strh r2, [r4, #40] 1687 .LVL136: 1688 .LBB166: 1689 .LBB167: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 1690 .loc 1 4713 0 1691 0078 5A68 ldr r2, [r3, #4] 1692 007a 4B49 ldr r1, .L155 1693 007c 0A40 ands r2, r1 1694 007e A805 lsls r0, r5, #22 1695 0080 800D lsrs r0, r0, #22 1696 0082 FF21 movs r1, #255 1697 0084 0904 lsls r1, r1, #16 1698 0086 0843 orrs r0, r1 1699 0088 4849 ldr r1, .L155+4 1700 008a 0143 orrs r1, r0 1701 008c 0A43 orrs r2, r1 1702 008e 5A60 str r2, [r3, #4] 1703 0090 26E0 b .L144 1704 .LVL137: 1705 .L139: 1706 .LBE167: 1707 .LBE166: 663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_WRI 1708 .loc 1 663 0 1709 0092 628D ldrh r2, [r4, #42] 1710 0094 92B2 uxth r2, r2 1711 0096 2285 strh r2, [r4, #40] 664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1712 .loc 1 664 0 1713 0098 D2B2 uxtb r2, r2 1714 .LVL138: 1715 .LBB168: 1716 .LBB169: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 1717 .loc 1 4713 0 1718 009a 5968 ldr r1, [r3, #4] 1719 009c 4248 ldr r0, .L155 1720 009e 0140 ands r1, r0 1721 00a0 A805 lsls r0, r5, #22 1722 00a2 800D lsrs r0, r0, #22 1723 00a4 1204 lsls r2, r2, #16 1724 .LVL139: 1725 00a6 0243 orrs r2, r0 1726 00a8 4148 ldr r0, .L155+8 1727 00aa 0243 orrs r2, r0 1728 00ac 0A43 orrs r2, r1 ARM GAS /tmp/ccpuPECZ.s page 120 1729 00ae 5A60 str r2, [r3, #4] 1730 .LVL140: 1731 00b0 16E0 b .L144 1732 .LVL141: 1733 .L154: 1734 .LBE169: 1735 .LBE168: 672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1736 .loc 1 672 0 1737 00b2 636C ldr r3, [r4, #68] 1738 00b4 042B cmp r3, #4 1739 00b6 00D0 beq .LCB1796 1740 00b8 70E0 b .L149 @long jump 1741 .LCB1796: 674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1742 .loc 1 674 0 1743 00ba 0120 movs r0, #1 1744 00bc 6AE0 b .L136 1745 .L143: 701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 1746 .loc 1 701 0 1747 00be 638D ldrh r3, [r4, #42] 1748 00c0 9BB2 uxth r3, r3 1749 00c2 2385 strh r3, [r4, #40] 702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1750 .loc 1 702 0 1751 00c4 DBB2 uxtb r3, r3 1752 .LVL142: 1753 .LBB170: 1754 .LBB171: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 1755 .loc 1 4713 0 1756 00c6 2068 ldr r0, [r4] 1757 00c8 4268 ldr r2, [r0, #4] 1758 00ca 3A49 ldr r1, .L155+12 1759 00cc 0A40 ands r2, r1 1760 00ce A905 lsls r1, r5, #22 1761 00d0 890D lsrs r1, r1, #22 1762 00d2 1B04 lsls r3, r3, #16 1763 .LVL143: 1764 00d4 0B43 orrs r3, r1 1765 00d6 8021 movs r1, #128 1766 00d8 8904 lsls r1, r1, #18 1767 00da 0B43 orrs r3, r1 1768 00dc 1343 orrs r3, r2 1769 00de 4360 str r3, [r0, #4] 1770 .LVL144: 1771 .L144: 1772 .LBE171: 1773 .LBE170: 667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1774 .loc 1 667 0 1775 00e0 638D ldrh r3, [r4, #42] 1776 00e2 9BB2 uxth r3, r3 1777 00e4 002B cmp r3, #0 1778 00e6 38D0 beq .L153 670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 121 1779 .loc 1 670 0 1780 00e8 3200 movs r2, r6 1781 00ea 0A99 ldr r1, [sp, #40] 1782 00ec 2000 movs r0, r4 1783 00ee FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1784 .LVL145: 1785 00f2 0028 cmp r0, #0 1786 00f4 DDD1 bne .L154 682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 1787 .loc 1 682 0 1788 00f6 636A ldr r3, [r4, #36] 1789 00f8 5A1C adds r2, r3, #1 1790 00fa 6262 str r2, [r4, #36] 1791 00fc 2268 ldr r2, [r4] 1792 00fe 1B78 ldrb r3, [r3] 1793 0100 9362 str r3, [r2, #40] 683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 1794 .loc 1 683 0 1795 0102 638D ldrh r3, [r4, #42] 1796 0104 013B subs r3, r3, #1 1797 0106 9BB2 uxth r3, r3 1798 0108 6385 strh r3, [r4, #42] 684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1799 .loc 1 684 0 1800 010a 238D ldrh r3, [r4, #40] 1801 010c 013B subs r3, r3, #1 1802 010e 9BB2 uxth r3, r3 1803 0110 2385 strh r3, [r4, #40] 686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1804 .loc 1 686 0 1805 0112 002B cmp r3, #0 1806 0114 E4D1 bne .L144 686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1807 .loc 1 686 0 is_stmt 0 discriminator 1 1808 0116 638D ldrh r3, [r4, #42] 1809 0118 9BB2 uxth r3, r3 1810 011a 002B cmp r3, #0 1811 011c E0D0 beq .L144 689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1812 .loc 1 689 0 is_stmt 1 1813 011e 0096 str r6, [sp] 1814 0120 0A9B ldr r3, [sp, #40] 1815 0122 0022 movs r2, #0 1816 0124 8021 movs r1, #128 1817 0126 2000 movs r0, r4 1818 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1819 .LVL146: 1820 012c 0028 cmp r0, #0 1821 012e 37D1 bne .L150 694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1822 .loc 1 694 0 1823 0130 638D ldrh r3, [r4, #42] 1824 0132 9BB2 uxth r3, r3 1825 0134 FF2B cmp r3, #255 1826 0136 C2D9 bls .L143 696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 1827 .loc 1 696 0 ARM GAS /tmp/ccpuPECZ.s page 122 1828 0138 FF23 movs r3, #255 1829 013a 2385 strh r3, [r4, #40] 1830 .LVL147: 1831 .LBB172: 1832 .LBB173: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 1833 .loc 1 4713 0 1834 013c 2068 ldr r0, [r4] 1835 013e 4368 ldr r3, [r0, #4] 1836 0140 1C4A ldr r2, .L155+12 1837 0142 1340 ands r3, r2 1838 0144 A905 lsls r1, r5, #22 1839 0146 890D lsrs r1, r1, #22 1840 0148 FF22 movs r2, #255 1841 014a 1204 lsls r2, r2, #16 1842 014c 1143 orrs r1, r2 1843 014e 8022 movs r2, #128 1844 0150 5204 lsls r2, r2, #17 1845 0152 0A43 orrs r2, r1 1846 0154 1343 orrs r3, r2 1847 0156 4360 str r3, [r0, #4] 1848 0158 C2E7 b .L144 1849 .LVL148: 1850 .L153: 1851 .LBE173: 1852 .LBE172: 709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1853 .loc 1 709 0 1854 015a 3200 movs r2, r6 1855 015c 0A99 ldr r1, [sp, #40] 1856 015e 2000 movs r0, r4 1857 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 1858 .LVL149: 1859 0164 0028 cmp r0, #0 1860 0166 04D0 beq .L146 711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1861 .loc 1 711 0 1862 0168 636C ldr r3, [r4, #68] 1863 016a 042B cmp r3, #4 1864 016c 1AD1 bne .L151 713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1865 .loc 1 713 0 1866 016e 0120 movs r0, #1 1867 0170 10E0 b .L136 1868 .L146: 722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1869 .loc 1 722 0 1870 0172 2368 ldr r3, [r4] 1871 0174 2022 movs r2, #32 1872 0176 DA61 str r2, [r3, #28] 725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1873 .loc 1 725 0 1874 0178 2168 ldr r1, [r4] 1875 017a 4B68 ldr r3, [r1, #4] 1876 017c 0E4D ldr r5, .L155+16 1877 017e 2B40 ands r3, r5 1878 0180 4B60 str r3, [r1, #4] ARM GAS /tmp/ccpuPECZ.s page 123 727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1879 .loc 1 727 0 1880 0182 4123 movs r3, #65 1881 0184 E254 strb r2, [r4, r3] 728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1882 .loc 1 728 0 1883 0186 0023 movs r3, #0 1884 0188 2232 adds r2, r2, #34 1885 018a A354 strb r3, [r4, r2] 731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1886 .loc 1 731 0 1887 018c 023A subs r2, r2, #2 1888 018e A354 strb r3, [r4, r2] 733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1889 .loc 1 733 0 1890 0190 00E0 b .L136 1891 .LVL150: 1892 .L147: 737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1893 .loc 1 737 0 1894 0192 0220 movs r0, #2 1895 .LVL151: 1896 .L136: 739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1897 .loc 1 739 0 1898 0194 05B0 add sp, sp, #20 1899 @ sp needed 1900 .LVL152: 1901 .LVL153: 1902 0196 F0BD pop {r4, r5, r6, r7, pc} 1903 .LVL154: 1904 .L148: 635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1905 .loc 1 635 0 1906 0198 0220 movs r0, #2 1907 .LVL155: 1908 019a FBE7 b .L136 1909 .LVL156: 1910 .L149: 678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1911 .loc 1 678 0 1912 019c 0320 movs r0, #3 1913 019e F9E7 b .L136 1914 .L150: 691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1915 .loc 1 691 0 1916 01a0 0320 movs r0, #3 1917 01a2 F7E7 b .L136 1918 .L151: 717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 1919 .loc 1 717 0 1920 01a4 0320 movs r0, #3 1921 01a6 F5E7 b .L136 1922 .L156: 1923 .align 2 1924 .L155: 1925 01a8 009800FC .word -67069952 ARM GAS /tmp/ccpuPECZ.s page 124 1926 01ac 00200081 .word -2130698240 1927 01b0 00200082 .word -2113921024 1928 01b4 009C00FC .word -67068928 1929 01b8 00E800FE .word -33495040 1930 .cfi_endproc 1931 .LFE43: 1933 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 1934 .align 1 1935 .global HAL_I2C_Master_Receive 1936 .syntax unified 1937 .code 16 1938 .thumb_func 1939 .fpu softvfp 1941 HAL_I2C_Master_Receive: 1942 .LFB44: 753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 1943 .loc 1 753 0 1944 .cfi_startproc 1945 @ args = 4, pretend = 0, frame = 8 1946 @ frame_needed = 0, uses_anonymous_args = 0 1947 .LVL157: 1948 0000 F0B5 push {r4, r5, r6, r7, lr} 1949 .LCFI16: 1950 .cfi_def_cfa_offset 20 1951 .cfi_offset 4, -20 1952 .cfi_offset 5, -16 1953 .cfi_offset 6, -12 1954 .cfi_offset 7, -8 1955 .cfi_offset 14, -4 1956 0002 85B0 sub sp, sp, #20 1957 .LCFI17: 1958 .cfi_def_cfa_offset 40 1959 0004 0400 movs r4, r0 1960 0006 0D00 movs r5, r1 1961 0008 1700 movs r7, r2 1962 000a 0393 str r3, [sp, #12] 1963 .LVL158: 756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1964 .loc 1 756 0 1965 000c 4123 movs r3, #65 1966 .LVL159: 1967 000e C35C ldrb r3, [r0, r3] 1968 0010 202B cmp r3, #32 1969 0012 00D0 beq .LCB2059 1970 0014 BDE0 b .L169 @long jump 1971 .LCB2059: 759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1972 .loc 1 759 0 1973 0016 2033 adds r3, r3, #32 1974 0018 C35C ldrb r3, [r0, r3] 1975 001a 012B cmp r3, #1 1976 001c 00D1 bne .LCB2063 1977 001e BBE0 b .L170 @long jump 1978 .LCB2063: 759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1979 .loc 1 759 0 is_stmt 0 discriminator 2 1980 0020 4023 movs r3, #64 ARM GAS /tmp/ccpuPECZ.s page 125 1981 0022 0122 movs r2, #1 1982 .LVL160: 1983 0024 C254 strb r2, [r0, r3] 762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 1984 .loc 1 762 0 is_stmt 1 discriminator 2 1985 0026 FFF7FEFF bl HAL_GetTick 1986 .LVL161: 1987 002a 0600 movs r6, r0 1988 .LVL162: 1989 .L159: 1990 .LBB174: 1991 .LBB175: 4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1992 .loc 1 4487 0 1993 002c 2368 ldr r3, [r4] 1994 002e 9A69 ldr r2, [r3, #24] 1995 0030 1204 lsls r2, r2, #16 1996 0032 0ED5 bpl .L174 4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 1997 .loc 1 4492 0 1998 0034 FFF7FEFF bl HAL_GetTick 1999 .LVL163: 2000 0038 801B subs r0, r0, r6 2001 003a 1928 cmp r0, #25 2002 003c F6D9 bls .L159 4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2003 .loc 1 4494 0 2004 003e 4123 movs r3, #65 2005 0040 2022 movs r2, #32 2006 0042 E254 strb r2, [r4, r3] 4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2007 .loc 1 4495 0 2008 0044 0023 movs r3, #0 2009 0046 2232 adds r2, r2, #34 2010 0048 A354 strb r3, [r4, r2] 4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2011 .loc 1 4498 0 2012 004a 023A subs r2, r2, #2 2013 004c A354 strb r3, [r4, r2] 2014 .LVL164: 2015 .LBE175: 2016 .LBE174: 766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2017 .loc 1 766 0 2018 004e 0320 movs r0, #3 2019 0050 A0E0 b .L158 2020 .LVL165: 2021 .L174: 769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2022 .loc 1 769 0 2023 0052 4122 movs r2, #65 2024 0054 2221 movs r1, #34 2025 0056 A154 strb r1, [r4, r2] 770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2026 .loc 1 770 0 2027 0058 0132 adds r2, r2, #1 2028 005a 1239 subs r1, r1, #18 ARM GAS /tmp/ccpuPECZ.s page 126 2029 005c A154 strb r1, [r4, r2] 771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2030 .loc 1 771 0 2031 005e 0022 movs r2, #0 2032 0060 6264 str r2, [r4, #68] 774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2033 .loc 1 774 0 2034 0062 6762 str r7, [r4, #36] 775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2035 .loc 1 775 0 2036 0064 6946 mov r1, sp 2037 0066 8989 ldrh r1, [r1, #12] 2038 0068 6185 strh r1, [r4, #42] 776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2039 .loc 1 776 0 2040 006a 6263 str r2, [r4, #52] 780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2041 .loc 1 780 0 2042 006c 628D ldrh r2, [r4, #42] 2043 006e 92B2 uxth r2, r2 2044 0070 FF2A cmp r2, #255 2045 0072 0ED9 bls .L161 782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ 2046 .loc 1 782 0 2047 0074 FF22 movs r2, #255 2048 0076 2285 strh r2, [r4, #40] 2049 .LVL166: 2050 .LBB176: 2051 .LBB177: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 2052 .loc 1 4713 0 2053 0078 5A68 ldr r2, [r3, #4] 2054 007a 4B49 ldr r1, .L177 2055 007c 0A40 ands r2, r1 2056 007e A805 lsls r0, r5, #22 2057 0080 800D lsrs r0, r0, #22 2058 0082 FF21 movs r1, #255 2059 0084 0904 lsls r1, r1, #16 2060 0086 0843 orrs r0, r1 2061 0088 4849 ldr r1, .L177+4 2062 008a 0143 orrs r1, r0 2063 008c 0A43 orrs r2, r1 2064 008e 5A60 str r2, [r3, #4] 2065 0090 26E0 b .L166 2066 .LVL167: 2067 .L161: 2068 .LBE177: 2069 .LBE176: 787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA 2070 .loc 1 787 0 2071 0092 628D ldrh r2, [r4, #42] 2072 0094 92B2 uxth r2, r2 2073 0096 2285 strh r2, [r4, #40] 788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2074 .loc 1 788 0 2075 0098 D2B2 uxtb r2, r2 2076 .LVL168: ARM GAS /tmp/ccpuPECZ.s page 127 2077 .LBB178: 2078 .LBB179: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 2079 .loc 1 4713 0 2080 009a 5968 ldr r1, [r3, #4] 2081 009c 4248 ldr r0, .L177 2082 009e 0140 ands r1, r0 2083 00a0 A805 lsls r0, r5, #22 2084 00a2 800D lsrs r0, r0, #22 2085 00a4 1204 lsls r2, r2, #16 2086 .LVL169: 2087 00a6 0243 orrs r2, r0 2088 00a8 4148 ldr r0, .L177+8 2089 00aa 0243 orrs r2, r0 2090 00ac 0A43 orrs r2, r1 2091 00ae 5A60 str r2, [r3, #4] 2092 .LVL170: 2093 00b0 16E0 b .L166 2094 .LVL171: 2095 .L176: 2096 .LBE179: 2097 .LBE178: 796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2098 .loc 1 796 0 2099 00b2 636C ldr r3, [r4, #68] 2100 00b4 042B cmp r3, #4 2101 00b6 00D0 beq .LCB2221 2102 00b8 70E0 b .L171 @long jump 2103 .LCB2221: 798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2104 .loc 1 798 0 2105 00ba 0120 movs r0, #1 2106 00bc 6AE0 b .L158 2107 .L165: 826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 2108 .loc 1 826 0 2109 00be 638D ldrh r3, [r4, #42] 2110 00c0 9BB2 uxth r3, r3 2111 00c2 2385 strh r3, [r4, #40] 827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2112 .loc 1 827 0 2113 00c4 DBB2 uxtb r3, r3 2114 .LVL172: 2115 .LBB180: 2116 .LBB181: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 2117 .loc 1 4713 0 2118 00c6 2068 ldr r0, [r4] 2119 00c8 4268 ldr r2, [r0, #4] 2120 00ca 3A49 ldr r1, .L177+12 2121 00cc 0A40 ands r2, r1 2122 00ce A905 lsls r1, r5, #22 2123 00d0 890D lsrs r1, r1, #22 2124 00d2 1B04 lsls r3, r3, #16 2125 .LVL173: 2126 00d4 0B43 orrs r3, r1 2127 00d6 8021 movs r1, #128 ARM GAS /tmp/ccpuPECZ.s page 128 2128 00d8 8904 lsls r1, r1, #18 2129 00da 0B43 orrs r3, r1 2130 00dc 1343 orrs r3, r2 2131 00de 4360 str r3, [r0, #4] 2132 .LVL174: 2133 .L166: 2134 .LBE181: 2135 .LBE180: 791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2136 .loc 1 791 0 2137 00e0 638D ldrh r3, [r4, #42] 2138 00e2 9BB2 uxth r3, r3 2139 00e4 002B cmp r3, #0 2140 00e6 38D0 beq .L175 794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2141 .loc 1 794 0 2142 00e8 3200 movs r2, r6 2143 00ea 0A99 ldr r1, [sp, #40] 2144 00ec 2000 movs r0, r4 2145 00ee FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2146 .LVL175: 2147 00f2 0028 cmp r0, #0 2148 00f4 DDD1 bne .L176 807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 2149 .loc 1 807 0 2150 00f6 2368 ldr r3, [r4] 2151 00f8 5A6A ldr r2, [r3, #36] 2152 00fa 636A ldr r3, [r4, #36] 2153 00fc 591C adds r1, r3, #1 2154 00fe 6162 str r1, [r4, #36] 2155 0100 1A70 strb r2, [r3] 808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 2156 .loc 1 808 0 2157 0102 238D ldrh r3, [r4, #40] 2158 0104 013B subs r3, r3, #1 2159 0106 9BB2 uxth r3, r3 2160 0108 2385 strh r3, [r4, #40] 809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2161 .loc 1 809 0 2162 010a 628D ldrh r2, [r4, #42] 2163 010c 013A subs r2, r2, #1 2164 010e 92B2 uxth r2, r2 2165 0110 6285 strh r2, [r4, #42] 811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2166 .loc 1 811 0 2167 0112 002B cmp r3, #0 2168 0114 E4D1 bne .L166 811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2169 .loc 1 811 0 is_stmt 0 discriminator 1 2170 0116 638D ldrh r3, [r4, #42] 2171 0118 9BB2 uxth r3, r3 2172 011a 002B cmp r3, #0 2173 011c E0D0 beq .L166 814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2174 .loc 1 814 0 is_stmt 1 2175 011e 0096 str r6, [sp] 2176 0120 0A9B ldr r3, [sp, #40] ARM GAS /tmp/ccpuPECZ.s page 129 2177 0122 0022 movs r2, #0 2178 0124 8021 movs r1, #128 2179 0126 2000 movs r0, r4 2180 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2181 .LVL176: 2182 012c 0028 cmp r0, #0 2183 012e 37D1 bne .L172 819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2184 .loc 1 819 0 2185 0130 638D ldrh r3, [r4, #42] 2186 0132 9BB2 uxth r3, r3 2187 0134 FF2B cmp r3, #255 2188 0136 C2D9 bls .L165 821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 2189 .loc 1 821 0 2190 0138 FF23 movs r3, #255 2191 013a 2385 strh r3, [r4, #40] 2192 .LVL177: 2193 .LBB182: 2194 .LBB183: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 2195 .loc 1 4713 0 2196 013c 2068 ldr r0, [r4] 2197 013e 4368 ldr r3, [r0, #4] 2198 0140 1C4A ldr r2, .L177+12 2199 0142 1340 ands r3, r2 2200 0144 A905 lsls r1, r5, #22 2201 0146 890D lsrs r1, r1, #22 2202 0148 FF22 movs r2, #255 2203 014a 1204 lsls r2, r2, #16 2204 014c 1143 orrs r1, r2 2205 014e 8022 movs r2, #128 2206 0150 5204 lsls r2, r2, #17 2207 0152 0A43 orrs r2, r1 2208 0154 1343 orrs r3, r2 2209 0156 4360 str r3, [r0, #4] 2210 0158 C2E7 b .L166 2211 .LVL178: 2212 .L175: 2213 .LBE183: 2214 .LBE182: 834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2215 .loc 1 834 0 2216 015a 3200 movs r2, r6 2217 015c 0A99 ldr r1, [sp, #40] 2218 015e 2000 movs r0, r4 2219 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2220 .LVL179: 2221 0164 0028 cmp r0, #0 2222 0166 04D0 beq .L168 836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2223 .loc 1 836 0 2224 0168 636C ldr r3, [r4, #68] 2225 016a 042B cmp r3, #4 2226 016c 1AD1 bne .L173 838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2227 .loc 1 838 0 ARM GAS /tmp/ccpuPECZ.s page 130 2228 016e 0120 movs r0, #1 2229 0170 10E0 b .L158 2230 .L168: 847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2231 .loc 1 847 0 2232 0172 2368 ldr r3, [r4] 2233 0174 2022 movs r2, #32 2234 0176 DA61 str r2, [r3, #28] 850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2235 .loc 1 850 0 2236 0178 2168 ldr r1, [r4] 2237 017a 4B68 ldr r3, [r1, #4] 2238 017c 0E4D ldr r5, .L177+16 2239 017e 2B40 ands r3, r5 2240 0180 4B60 str r3, [r1, #4] 852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2241 .loc 1 852 0 2242 0182 4123 movs r3, #65 2243 0184 E254 strb r2, [r4, r3] 853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2244 .loc 1 853 0 2245 0186 0023 movs r3, #0 2246 0188 2232 adds r2, r2, #34 2247 018a A354 strb r3, [r4, r2] 856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2248 .loc 1 856 0 2249 018c 023A subs r2, r2, #2 2250 018e A354 strb r3, [r4, r2] 858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2251 .loc 1 858 0 2252 0190 00E0 b .L158 2253 .LVL180: 2254 .L169: 862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2255 .loc 1 862 0 2256 0192 0220 movs r0, #2 2257 .LVL181: 2258 .L158: 864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2259 .loc 1 864 0 2260 0194 05B0 add sp, sp, #20 2261 @ sp needed 2262 .LVL182: 2263 .LVL183: 2264 0196 F0BD pop {r4, r5, r6, r7, pc} 2265 .LVL184: 2266 .L170: 759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2267 .loc 1 759 0 2268 0198 0220 movs r0, #2 2269 .LVL185: 2270 019a FBE7 b .L158 2271 .LVL186: 2272 .L171: 802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2273 .loc 1 802 0 2274 019c 0320 movs r0, #3 ARM GAS /tmp/ccpuPECZ.s page 131 2275 019e F9E7 b .L158 2276 .L172: 816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2277 .loc 1 816 0 2278 01a0 0320 movs r0, #3 2279 01a2 F7E7 b .L158 2280 .L173: 842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2281 .loc 1 842 0 2282 01a4 0320 movs r0, #3 2283 01a6 F5E7 b .L158 2284 .L178: 2285 .align 2 2286 .L177: 2287 01a8 009800FC .word -67069952 2288 01ac 00240081 .word -2130697216 2289 01b0 00240082 .word -2113920000 2290 01b4 009C00FC .word -67068928 2291 01b8 00E800FE .word -33495040 2292 .cfi_endproc 2293 .LFE44: 2295 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2296 .align 1 2297 .global HAL_I2C_Slave_Transmit 2298 .syntax unified 2299 .code 16 2300 .thumb_func 2301 .fpu softvfp 2303 HAL_I2C_Slave_Transmit: 2304 .LFB45: 876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 2305 .loc 1 876 0 2306 .cfi_startproc 2307 @ args = 0, pretend = 0, frame = 8 2308 @ frame_needed = 0, uses_anonymous_args = 0 2309 .LVL187: 2310 0000 F0B5 push {r4, r5, r6, r7, lr} 2311 .LCFI18: 2312 .cfi_def_cfa_offset 20 2313 .cfi_offset 4, -20 2314 .cfi_offset 5, -16 2315 .cfi_offset 6, -12 2316 .cfi_offset 7, -8 2317 .cfi_offset 14, -4 2318 0002 85B0 sub sp, sp, #20 2319 .LCFI19: 2320 .cfi_def_cfa_offset 40 2321 0004 0400 movs r4, r0 2322 0006 0D00 movs r5, r1 2323 0008 1600 movs r6, r2 2324 000a 0393 str r3, [sp, #12] 2325 .LVL188: 879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2326 .loc 1 879 0 2327 000c 4123 movs r3, #65 2328 .LVL189: 2329 000e C35C ldrb r3, [r0, r3] ARM GAS /tmp/ccpuPECZ.s page 132 2330 0010 202B cmp r3, #32 2331 0012 00D0 beq .LCB2483 2332 0014 B5E0 b .L189 @long jump 2333 .LCB2483: 881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2334 .loc 1 881 0 2335 0016 0029 cmp r1, #0 2336 0018 00D1 bne .LCB2485 2337 001a B5E0 b .L190 @long jump 2338 .LCB2485: 881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2339 .loc 1 881 0 is_stmt 0 discriminator 1 2340 001c 002A cmp r2, #0 2341 001e 00D1 bne .LCB2487 2342 0020 B4E0 b .L191 @long jump 2343 .LCB2487: 886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2344 .loc 1 886 0 is_stmt 1 2345 0022 2033 adds r3, r3, #32 2346 0024 C35C ldrb r3, [r0, r3] 2347 0026 012B cmp r3, #1 2348 0028 00D1 bne .LCB2491 2349 002a B1E0 b .L192 @long jump 2350 .LCB2491: 886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2351 .loc 1 886 0 is_stmt 0 discriminator 2 2352 002c 4023 movs r3, #64 2353 002e 0122 movs r2, #1 2354 .LVL190: 2355 0030 C254 strb r2, [r0, r3] 889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2356 .loc 1 889 0 is_stmt 1 discriminator 2 2357 0032 FFF7FEFF bl HAL_GetTick 2358 .LVL191: 2359 0036 0700 movs r7, r0 2360 .LVL192: 891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2361 .loc 1 891 0 discriminator 2 2362 0038 4123 movs r3, #65 2363 003a 2122 movs r2, #33 2364 003c E254 strb r2, [r4, r3] 892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2365 .loc 1 892 0 discriminator 2 2366 003e 0133 adds r3, r3, #1 2367 0040 013A subs r2, r2, #1 2368 0042 E254 strb r2, [r4, r3] 893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2369 .loc 1 893 0 discriminator 2 2370 0044 0023 movs r3, #0 2371 0046 6364 str r3, [r4, #68] 896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2372 .loc 1 896 0 discriminator 2 2373 0048 6562 str r5, [r4, #36] 897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2374 .loc 1 897 0 discriminator 2 2375 004a 6685 strh r6, [r4, #42] 898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 133 2376 .loc 1 898 0 discriminator 2 2377 004c 6363 str r3, [r4, #52] 901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2378 .loc 1 901 0 discriminator 2 2379 004e 2268 ldr r2, [r4] 2380 0050 5368 ldr r3, [r2, #4] 2381 0052 5249 ldr r1, .L202 2382 0054 0B40 ands r3, r1 2383 0056 5360 str r3, [r2, #4] 904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2384 .loc 1 904 0 discriminator 2 2385 0058 0090 str r0, [sp] 2386 005a 039B ldr r3, [sp, #12] 2387 005c 0022 movs r2, #0 2388 005e 0821 movs r1, #8 2389 0060 2000 movs r0, r4 2390 .LVL193: 2391 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2392 .LVL194: 2393 0066 0028 cmp r0, #0 2394 0068 25D1 bne .L195 912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2395 .loc 1 912 0 2396 006a 2368 ldr r3, [r4] 2397 006c 0822 movs r2, #8 2398 006e DA61 str r2, [r3, #28] 915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2399 .loc 1 915 0 2400 0070 E368 ldr r3, [r4, #12] 2401 0072 022B cmp r3, #2 2402 0074 27D0 beq .L196 2403 .L182: 930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2404 .loc 1 930 0 2405 0076 8021 movs r1, #128 2406 0078 0097 str r7, [sp] 2407 007a 039B ldr r3, [sp, #12] 2408 007c 0022 movs r2, #0 2409 007e 4902 lsls r1, r1, #9 2410 0080 2000 movs r0, r4 2411 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2412 .LVL195: 2413 0086 0028 cmp r0, #0 2414 0088 32D1 bne .L197 2415 .L184: 937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2416 .loc 1 937 0 2417 008a 638D ldrh r3, [r4, #42] 2418 008c 9BB2 uxth r3, r3 2419 008e 002B cmp r3, #0 2420 0090 41D0 beq .L198 940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2421 .loc 1 940 0 2422 0092 3A00 movs r2, r7 2423 0094 0399 ldr r1, [sp, #12] 2424 0096 2000 movs r0, r4 2425 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout ARM GAS /tmp/ccpuPECZ.s page 134 2426 .LVL196: 2427 009c 0028 cmp r0, #0 2428 009e 2FD1 bne .L199 956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 2429 .loc 1 956 0 2430 00a0 636A ldr r3, [r4, #36] 2431 00a2 5A1C adds r2, r3, #1 2432 00a4 6262 str r2, [r4, #36] 2433 00a6 2268 ldr r2, [r4] 2434 00a8 1B78 ldrb r3, [r3] 2435 00aa 9362 str r3, [r2, #40] 957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2436 .loc 1 957 0 2437 00ac 638D ldrh r3, [r4, #42] 2438 00ae 013B subs r3, r3, #1 2439 00b0 9BB2 uxth r3, r3 2440 00b2 6385 strh r3, [r4, #42] 2441 00b4 E9E7 b .L184 2442 .L195: 907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2443 .loc 1 907 0 2444 00b6 2268 ldr r2, [r4] 2445 00b8 5168 ldr r1, [r2, #4] 2446 00ba 8023 movs r3, #128 2447 00bc 1B02 lsls r3, r3, #8 2448 00be 0B43 orrs r3, r1 2449 00c0 5360 str r3, [r2, #4] 908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2450 .loc 1 908 0 2451 00c2 0320 movs r0, #3 2452 00c4 5EE0 b .L180 2453 .L196: 918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2454 .loc 1 918 0 2455 00c6 0097 str r7, [sp] 2456 00c8 039B ldr r3, [sp, #12] 2457 00ca 0022 movs r2, #0 2458 00cc 0821 movs r1, #8 2459 00ce 2000 movs r0, r4 2460 00d0 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2461 .LVL197: 2462 00d4 0028 cmp r0, #0 2463 00d6 03D1 bne .L200 926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2464 .loc 1 926 0 2465 00d8 2368 ldr r3, [r4] 2466 00da 0822 movs r2, #8 2467 00dc DA61 str r2, [r3, #28] 2468 00de CAE7 b .L182 2469 .L200: 921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2470 .loc 1 921 0 2471 00e0 2268 ldr r2, [r4] 2472 00e2 5168 ldr r1, [r2, #4] 2473 00e4 8023 movs r3, #128 2474 00e6 1B02 lsls r3, r3, #8 2475 00e8 0B43 orrs r3, r1 ARM GAS /tmp/ccpuPECZ.s page 135 2476 00ea 5360 str r3, [r2, #4] 922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2477 .loc 1 922 0 2478 00ec 0320 movs r0, #3 2479 00ee 49E0 b .L180 2480 .L197: 933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2481 .loc 1 933 0 2482 00f0 2268 ldr r2, [r4] 2483 00f2 5168 ldr r1, [r2, #4] 2484 00f4 8023 movs r3, #128 2485 00f6 1B02 lsls r3, r3, #8 2486 00f8 0B43 orrs r3, r1 2487 00fa 5360 str r3, [r2, #4] 934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2488 .loc 1 934 0 2489 00fc 0320 movs r0, #3 2490 00fe 41E0 b .L180 2491 .L199: 943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2492 .loc 1 943 0 2493 0100 2268 ldr r2, [r4] 2494 0102 5168 ldr r1, [r2, #4] 2495 0104 8023 movs r3, #128 2496 0106 1B02 lsls r3, r3, #8 2497 0108 0B43 orrs r3, r1 2498 010a 5360 str r3, [r2, #4] 945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2499 .loc 1 945 0 2500 010c 636C ldr r3, [r4, #68] 2501 010e 042B cmp r3, #4 2502 0110 40D1 bne .L193 947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2503 .loc 1 947 0 2504 0112 0120 movs r0, #1 2505 0114 36E0 b .L180 2506 .L198: 961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2507 .loc 1 961 0 2508 0116 3A00 movs r2, r7 2509 0118 0399 ldr r1, [sp, #12] 2510 011a 2000 movs r0, r4 2511 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2512 .LVL198: 2513 0120 0028 cmp r0, #0 2514 0122 0AD0 beq .L187 964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2515 .loc 1 964 0 2516 0124 2268 ldr r2, [r4] 2517 0126 5168 ldr r1, [r2, #4] 2518 0128 8023 movs r3, #128 2519 012a 1B02 lsls r3, r3, #8 2520 012c 0B43 orrs r3, r1 2521 012e 5360 str r3, [r2, #4] 966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2522 .loc 1 966 0 2523 0130 636C ldr r3, [r4, #68] ARM GAS /tmp/ccpuPECZ.s page 136 2524 0132 042B cmp r3, #4 2525 0134 30D1 bne .L194 970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2526 .loc 1 970 0 2527 0136 0023 movs r3, #0 2528 0138 6364 str r3, [r4, #68] 2529 .L187: 979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2530 .loc 1 979 0 2531 013a 2368 ldr r3, [r4] 2532 013c 2022 movs r2, #32 2533 013e DA61 str r2, [r3, #28] 982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2534 .loc 1 982 0 2535 0140 8021 movs r1, #128 2536 0142 0097 str r7, [sp] 2537 0144 039B ldr r3, [sp, #12] 2538 0146 1F3A subs r2, r2, #31 2539 0148 0902 lsls r1, r1, #8 2540 014a 2000 movs r0, r4 2541 014c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2542 .LVL199: 2543 0150 0028 cmp r0, #0 2544 0152 0ED1 bne .L201 990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2545 .loc 1 990 0 2546 0154 2268 ldr r2, [r4] 2547 0156 5168 ldr r1, [r2, #4] 2548 0158 8023 movs r3, #128 2549 015a 1B02 lsls r3, r3, #8 2550 015c 0B43 orrs r3, r1 2551 015e 5360 str r3, [r2, #4] 992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2552 .loc 1 992 0 2553 0160 4123 movs r3, #65 2554 0162 2022 movs r2, #32 2555 0164 E254 strb r2, [r4, r3] 993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2556 .loc 1 993 0 2557 0166 0023 movs r3, #0 2558 0168 2232 adds r2, r2, #34 2559 016a A354 strb r3, [r4, r2] 996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2560 .loc 1 996 0 2561 016c 023A subs r2, r2, #2 2562 016e A354 strb r3, [r4, r2] 998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2563 .loc 1 998 0 2564 0170 08E0 b .L180 2565 .L201: 985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2566 .loc 1 985 0 2567 0172 2268 ldr r2, [r4] 2568 0174 5168 ldr r1, [r2, #4] 2569 0176 8023 movs r3, #128 2570 0178 1B02 lsls r3, r3, #8 2571 017a 0B43 orrs r3, r1 ARM GAS /tmp/ccpuPECZ.s page 137 2572 017c 5360 str r3, [r2, #4] 986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2573 .loc 1 986 0 2574 017e 0320 movs r0, #3 2575 0180 00E0 b .L180 2576 .LVL200: 2577 .L189: 1002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2578 .loc 1 1002 0 2579 0182 0220 movs r0, #2 2580 .LVL201: 2581 .L180: 1004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2582 .loc 1 1004 0 2583 0184 05B0 add sp, sp, #20 2584 @ sp needed 2585 .LVL202: 2586 .LVL203: 2587 0186 F0BD pop {r4, r5, r6, r7, pc} 2588 .LVL204: 2589 .L190: 883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2590 .loc 1 883 0 2591 0188 0120 movs r0, #1 2592 .LVL205: 2593 018a FBE7 b .L180 2594 .LVL206: 2595 .L191: 2596 018c 0120 movs r0, #1 2597 .LVL207: 2598 018e F9E7 b .L180 2599 .LVL208: 2600 .L192: 886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2601 .loc 1 886 0 2602 0190 0220 movs r0, #2 2603 .LVL209: 2604 0192 F7E7 b .L180 2605 .LVL210: 2606 .L193: 951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2607 .loc 1 951 0 2608 0194 0320 movs r0, #3 2609 0196 F5E7 b .L180 2610 .L194: 974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2611 .loc 1 974 0 2612 0198 0320 movs r0, #3 2613 019a F3E7 b .L180 2614 .L203: 2615 .align 2 2616 .L202: 2617 019c FF7FFFFF .word -32769 2618 .cfi_endproc 2619 .LFE45: 2621 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2622 .align 1 ARM GAS /tmp/ccpuPECZ.s page 138 2623 .global HAL_I2C_Slave_Receive 2624 .syntax unified 2625 .code 16 2626 .thumb_func 2627 .fpu softvfp 2629 HAL_I2C_Slave_Receive: 2630 .LFB46: 1016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 2631 .loc 1 1016 0 2632 .cfi_startproc 2633 @ args = 0, pretend = 0, frame = 8 2634 @ frame_needed = 0, uses_anonymous_args = 0 2635 .LVL211: 2636 0000 F0B5 push {r4, r5, r6, r7, lr} 2637 .LCFI20: 2638 .cfi_def_cfa_offset 20 2639 .cfi_offset 4, -20 2640 .cfi_offset 5, -16 2641 .cfi_offset 6, -12 2642 .cfi_offset 7, -8 2643 .cfi_offset 14, -4 2644 0002 85B0 sub sp, sp, #20 2645 .LCFI21: 2646 .cfi_def_cfa_offset 40 2647 0004 0500 movs r5, r0 2648 0006 0C00 movs r4, r1 2649 0008 1600 movs r6, r2 2650 000a 0393 str r3, [sp, #12] 2651 .LVL212: 1019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2652 .loc 1 1019 0 2653 000c 4123 movs r3, #65 2654 .LVL213: 2655 000e C35C ldrb r3, [r0, r3] 2656 0010 202B cmp r3, #32 2657 0012 00D0 beq .LCB2808 2658 0014 ACE0 b .L213 @long jump 2659 .LCB2808: 1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2660 .loc 1 1021 0 2661 0016 0029 cmp r1, #0 2662 0018 00D1 bne .LCB2810 2663 001a ACE0 b .L214 @long jump 2664 .LCB2810: 1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2665 .loc 1 1021 0 is_stmt 0 discriminator 1 2666 001c 002A cmp r2, #0 2667 001e 00D1 bne .LCB2812 2668 0020 ABE0 b .L215 @long jump 2669 .LCB2812: 1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2670 .loc 1 1026 0 is_stmt 1 2671 0022 2033 adds r3, r3, #32 2672 0024 C35C ldrb r3, [r0, r3] 2673 0026 012B cmp r3, #1 2674 0028 00D1 bne .LCB2816 2675 002a A8E0 b .L216 @long jump ARM GAS /tmp/ccpuPECZ.s page 139 2676 .LCB2816: 1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2677 .loc 1 1026 0 is_stmt 0 discriminator 2 2678 002c 4023 movs r3, #64 2679 002e 0122 movs r2, #1 2680 .LVL214: 2681 0030 C254 strb r2, [r0, r3] 1029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2682 .loc 1 1029 0 is_stmt 1 discriminator 2 2683 0032 FFF7FEFF bl HAL_GetTick 2684 .LVL215: 2685 0036 0700 movs r7, r0 2686 .LVL216: 1031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2687 .loc 1 1031 0 discriminator 2 2688 0038 4123 movs r3, #65 2689 003a 2222 movs r2, #34 2690 003c EA54 strb r2, [r5, r3] 1032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2691 .loc 1 1032 0 discriminator 2 2692 003e 0133 adds r3, r3, #1 2693 0040 023A subs r2, r2, #2 2694 0042 EA54 strb r2, [r5, r3] 1033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2695 .loc 1 1033 0 discriminator 2 2696 0044 0023 movs r3, #0 2697 0046 6B64 str r3, [r5, #68] 1036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2698 .loc 1 1036 0 discriminator 2 2699 0048 6C62 str r4, [r5, #36] 1037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2700 .loc 1 1037 0 discriminator 2 2701 004a 6E85 strh r6, [r5, #42] 1038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2702 .loc 1 1038 0 discriminator 2 2703 004c 6B63 str r3, [r5, #52] 1041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2704 .loc 1 1041 0 discriminator 2 2705 004e 2A68 ldr r2, [r5] 2706 0050 5368 ldr r3, [r2, #4] 2707 0052 4D49 ldr r1, .L225 2708 0054 0B40 ands r3, r1 2709 0056 5360 str r3, [r2, #4] 1044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2710 .loc 1 1044 0 discriminator 2 2711 0058 0090 str r0, [sp] 2712 005a 039B ldr r3, [sp, #12] 2713 005c 0022 movs r2, #0 2714 005e 0821 movs r1, #8 2715 0060 2800 movs r0, r5 2716 .LVL217: 2717 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2718 .LVL218: 2719 0066 0028 cmp r0, #0 2720 0068 22D1 bne .L219 1052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2721 .loc 1 1052 0 ARM GAS /tmp/ccpuPECZ.s page 140 2722 006a 2B68 ldr r3, [r5] 2723 006c 0822 movs r2, #8 2724 006e DA61 str r2, [r3, #28] 1055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2725 .loc 1 1055 0 2726 0070 8021 movs r1, #128 2727 0072 0097 str r7, [sp] 2728 0074 039B ldr r3, [sp, #12] 2729 0076 073A subs r2, r2, #7 2730 0078 4902 lsls r1, r1, #9 2731 007a 2800 movs r0, r5 2732 007c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2733 .LVL219: 2734 0080 0028 cmp r0, #0 2735 0082 1DD1 bne .L220 2736 .L207: 1062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2737 .loc 1 1062 0 2738 0084 6B8D ldrh r3, [r5, #42] 2739 0086 9BB2 uxth r3, r3 2740 0088 002B cmp r3, #0 2741 008a 3BD0 beq .L221 1065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2742 .loc 1 1065 0 2743 008c 3A00 movs r2, r7 2744 008e 0399 ldr r1, [sp, #12] 2745 0090 2800 movs r0, r5 2746 0092 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2747 .LVL220: 2748 0096 0028 cmp r0, #0 2749 0098 1AD1 bne .L222 1089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 2750 .loc 1 1089 0 2751 009a 2B68 ldr r3, [r5] 2752 009c 5A6A ldr r2, [r3, #36] 2753 009e 6B6A ldr r3, [r5, #36] 2754 00a0 591C adds r1, r3, #1 2755 00a2 6962 str r1, [r5, #36] 2756 00a4 1A70 strb r2, [r3] 1090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2757 .loc 1 1090 0 2758 00a6 6B8D ldrh r3, [r5, #42] 2759 00a8 013B subs r3, r3, #1 2760 00aa 9BB2 uxth r3, r3 2761 00ac 6B85 strh r3, [r5, #42] 2762 00ae E9E7 b .L207 2763 .L219: 1047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2764 .loc 1 1047 0 2765 00b0 2A68 ldr r2, [r5] 2766 00b2 5168 ldr r1, [r2, #4] 2767 00b4 8023 movs r3, #128 2768 00b6 1B02 lsls r3, r3, #8 2769 00b8 0B43 orrs r3, r1 2770 00ba 5360 str r3, [r2, #4] 1048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2771 .loc 1 1048 0 ARM GAS /tmp/ccpuPECZ.s page 141 2772 00bc 0320 movs r0, #3 2773 00be 58E0 b .L205 2774 .L220: 1058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2775 .loc 1 1058 0 2776 00c0 2A68 ldr r2, [r5] 2777 00c2 5168 ldr r1, [r2, #4] 2778 00c4 8023 movs r3, #128 2779 00c6 1B02 lsls r3, r3, #8 2780 00c8 0B43 orrs r3, r1 2781 00ca 5360 str r3, [r2, #4] 1059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2782 .loc 1 1059 0 2783 00cc 0320 movs r0, #3 2784 00ce 50E0 b .L205 2785 .L222: 1068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2786 .loc 1 1068 0 2787 00d0 2A68 ldr r2, [r5] 2788 00d2 5168 ldr r1, [r2, #4] 2789 00d4 8023 movs r3, #128 2790 00d6 1B02 lsls r3, r3, #8 2791 00d8 0B43 orrs r3, r1 2792 00da 5360 str r3, [r2, #4] 1071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2793 .loc 1 1071 0 2794 00dc 2B68 ldr r3, [r5] 2795 00de 9A69 ldr r2, [r3, #24] 2796 00e0 5207 lsls r2, r2, #29 2797 00e2 08D5 bpl .L209 1074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 2798 .loc 1 1074 0 2799 00e4 5A6A ldr r2, [r3, #36] 2800 00e6 6B6A ldr r3, [r5, #36] 2801 00e8 591C adds r1, r3, #1 2802 00ea 6962 str r1, [r5, #36] 2803 00ec 1A70 strb r2, [r3] 1075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2804 .loc 1 1075 0 2805 00ee 6B8D ldrh r3, [r5, #42] 2806 00f0 013B subs r3, r3, #1 2807 00f2 9BB2 uxth r3, r3 2808 00f4 6B85 strh r3, [r5, #42] 2809 .L209: 1078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2810 .loc 1 1078 0 2811 00f6 6B6C ldr r3, [r5, #68] 2812 00f8 202B cmp r3, #32 2813 00fa 01D0 beq .L223 1084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2814 .loc 1 1084 0 2815 00fc 0120 movs r0, #1 2816 00fe 38E0 b .L205 2817 .L223: 1080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2818 .loc 1 1080 0 2819 0100 0320 movs r0, #3 ARM GAS /tmp/ccpuPECZ.s page 142 2820 0102 36E0 b .L205 2821 .L221: 1094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2822 .loc 1 1094 0 2823 0104 3A00 movs r2, r7 2824 0106 0399 ldr r1, [sp, #12] 2825 0108 2800 movs r0, r5 2826 010a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2827 .LVL221: 2828 010e 0028 cmp r0, #0 2829 0110 0AD0 beq .L211 1097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2830 .loc 1 1097 0 2831 0112 2A68 ldr r2, [r5] 2832 0114 5168 ldr r1, [r2, #4] 2833 0116 8023 movs r3, #128 2834 0118 1B02 lsls r3, r3, #8 2835 011a 0B43 orrs r3, r1 2836 011c 5360 str r3, [r2, #4] 1099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2837 .loc 1 1099 0 2838 011e 6B6C ldr r3, [r5, #68] 2839 0120 042B cmp r3, #4 2840 0122 2ED1 bne .L218 1101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2841 .loc 1 1101 0 2842 0124 0120 movs r0, #1 2843 0126 24E0 b .L205 2844 .L211: 1110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2845 .loc 1 1110 0 2846 0128 2B68 ldr r3, [r5] 2847 012a 2022 movs r2, #32 2848 012c DA61 str r2, [r3, #28] 1113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2849 .loc 1 1113 0 2850 012e 8021 movs r1, #128 2851 0130 0097 str r7, [sp] 2852 0132 039B ldr r3, [sp, #12] 2853 0134 1F3A subs r2, r2, #31 2854 0136 0902 lsls r1, r1, #8 2855 0138 2800 movs r0, r5 2856 013a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2857 .LVL222: 2858 013e 0028 cmp r0, #0 2859 0140 0ED1 bne .L224 1121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2860 .loc 1 1121 0 2861 0142 2A68 ldr r2, [r5] 2862 0144 5168 ldr r1, [r2, #4] 2863 0146 8023 movs r3, #128 2864 0148 1B02 lsls r3, r3, #8 2865 014a 0B43 orrs r3, r1 2866 014c 5360 str r3, [r2, #4] 1123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2867 .loc 1 1123 0 2868 014e 4123 movs r3, #65 ARM GAS /tmp/ccpuPECZ.s page 143 2869 0150 2022 movs r2, #32 2870 0152 EA54 strb r2, [r5, r3] 1124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2871 .loc 1 1124 0 2872 0154 0023 movs r3, #0 2873 0156 2232 adds r2, r2, #34 2874 0158 AB54 strb r3, [r5, r2] 1127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2875 .loc 1 1127 0 2876 015a 023A subs r2, r2, #2 2877 015c AB54 strb r3, [r5, r2] 1129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2878 .loc 1 1129 0 2879 015e 08E0 b .L205 2880 .L224: 1116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 2881 .loc 1 1116 0 2882 0160 2A68 ldr r2, [r5] 2883 0162 5168 ldr r1, [r2, #4] 2884 0164 8023 movs r3, #128 2885 0166 1B02 lsls r3, r3, #8 2886 0168 0B43 orrs r3, r1 2887 016a 5360 str r3, [r2, #4] 1117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2888 .loc 1 1117 0 2889 016c 0320 movs r0, #3 2890 016e 00E0 b .L205 2891 .LVL223: 2892 .L213: 1133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2893 .loc 1 1133 0 2894 0170 0220 movs r0, #2 2895 .LVL224: 2896 .L205: 1135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2897 .loc 1 1135 0 2898 0172 05B0 add sp, sp, #20 2899 @ sp needed 2900 .LVL225: 2901 .LVL226: 2902 0174 F0BD pop {r4, r5, r6, r7, pc} 2903 .LVL227: 2904 .L214: 1023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2905 .loc 1 1023 0 2906 0176 0120 movs r0, #1 2907 .LVL228: 2908 0178 FBE7 b .L205 2909 .LVL229: 2910 .L215: 2911 017a 0120 movs r0, #1 2912 .LVL230: 2913 017c F9E7 b .L205 2914 .LVL231: 2915 .L216: 1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2916 .loc 1 1026 0 ARM GAS /tmp/ccpuPECZ.s page 144 2917 017e 0220 movs r0, #2 2918 .LVL232: 2919 0180 F7E7 b .L205 2920 .LVL233: 2921 .L218: 1105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 2922 .loc 1 1105 0 2923 0182 0320 movs r0, #3 2924 0184 F5E7 b .L205 2925 .L226: 2926 0186 C046 .align 2 2927 .L225: 2928 0188 FF7FFFFF .word -32769 2929 .cfi_endproc 2930 .LFE46: 2932 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 2933 .align 1 2934 .global HAL_I2C_Master_Transmit_IT 2935 .syntax unified 2936 .code 16 2937 .thumb_func 2938 .fpu softvfp 2940 HAL_I2C_Master_Transmit_IT: 2941 .LFB47: 1148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 2942 .loc 1 1148 0 2943 .cfi_startproc 2944 @ args = 0, pretend = 0, frame = 0 2945 @ frame_needed = 0, uses_anonymous_args = 0 2946 .LVL234: 2947 0000 70B5 push {r4, r5, r6, lr} 2948 .LCFI22: 2949 .cfi_def_cfa_offset 16 2950 .cfi_offset 4, -16 2951 .cfi_offset 5, -12 2952 .cfi_offset 6, -8 2953 .cfi_offset 14, -4 2954 .LVL235: 1151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2955 .loc 1 1151 0 2956 0002 4124 movs r4, #65 2957 0004 045D ldrb r4, [r0, r4] 2958 0006 202C cmp r4, #32 2959 0008 48D1 bne .L232 1153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2960 .loc 1 1153 0 2961 000a 0468 ldr r4, [r0] 2962 000c A569 ldr r5, [r4, #24] 2963 000e 2D04 lsls r5, r5, #16 2964 0010 46D4 bmi .L233 1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2965 .loc 1 1159 0 2966 0012 4025 movs r5, #64 2967 0014 455D ldrb r5, [r0, r5] 2968 0016 012D cmp r5, #1 2969 0018 44D0 beq .L234 1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 145 2970 .loc 1 1159 0 is_stmt 0 discriminator 2 2971 001a 4025 movs r5, #64 2972 001c 0126 movs r6, #1 2973 001e 4655 strb r6, [r0, r5] 1161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2974 .loc 1 1161 0 is_stmt 1 discriminator 2 2975 0020 0135 adds r5, r5, #1 2976 0022 2036 adds r6, r6, #32 2977 0024 4655 strb r6, [r0, r5] 1162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2978 .loc 1 1162 0 discriminator 2 2979 0026 0135 adds r5, r5, #1 2980 0028 113E subs r6, r6, #17 2981 002a 4655 strb r6, [r0, r5] 1163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2982 .loc 1 1163 0 discriminator 2 2983 002c 0025 movs r5, #0 2984 002e 4564 str r5, [r0, #68] 1166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 2985 .loc 1 1166 0 discriminator 2 2986 0030 4262 str r2, [r0, #36] 1167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2987 .loc 1 1167 0 discriminator 2 2988 0032 4385 strh r3, [r0, #42] 1168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2989 .loc 1 1168 0 discriminator 2 2990 0034 1C4B ldr r3, .L238 2991 .LVL236: 2992 0036 C362 str r3, [r0, #44] 2993 .LVL237: 1169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 2994 .loc 1 1169 0 discriminator 2 2995 0038 1C4B ldr r3, .L238+4 2996 003a 4363 str r3, [r0, #52] 1171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 2997 .loc 1 1171 0 discriminator 2 2998 003c 438D ldrh r3, [r0, #42] 2999 003e 9BB2 uxth r3, r3 3000 0040 FF2B cmp r3, #255 3001 0042 22D9 bls .L229 1173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3002 .loc 1 1173 0 3003 0044 FF23 movs r3, #255 3004 0046 0385 strh r3, [r0, #40] 3005 .LVL238: 1174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3006 .loc 1 1174 0 3007 0048 8025 movs r5, #128 3008 004a 6D04 lsls r5, r5, #17 3009 .LVL239: 3010 .L230: 1184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3011 .loc 1 1184 0 3012 004c 028D ldrh r2, [r0, #40] 3013 .LVL240: 3014 004e D2B2 uxtb r2, r2 3015 .LVL241: ARM GAS /tmp/ccpuPECZ.s page 146 3016 .LBB184: 3017 .LBB185: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 3018 .loc 1 4713 0 3019 0050 6368 ldr r3, [r4, #4] 3020 0052 174E ldr r6, .L238+8 3021 0054 3340 ands r3, r6 3022 0056 8905 lsls r1, r1, #22 3023 .LVL242: 3024 0058 890D lsrs r1, r1, #22 3025 005a 1204 lsls r2, r2, #16 3026 .LVL243: 3027 005c 1143 orrs r1, r2 3028 005e 0D43 orrs r5, r1 3029 .LVL244: 3030 0060 1449 ldr r1, .L238+12 3031 0062 2943 orrs r1, r5 3032 0064 1943 orrs r1, r3 3033 0066 6160 str r1, [r4, #4] 3034 .LVL245: 3035 .LBE185: 3036 .LBE184: 1187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3037 .loc 1 1187 0 3038 0068 4023 movs r3, #64 3039 006a 0022 movs r2, #0 3040 006c C254 strb r2, [r0, r3] 3041 .LVL246: 3042 .LBB186: 3043 .LBB187: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3044 .loc 1 4728 0 3045 006e 436B ldr r3, [r0, #52] 3046 0070 114A ldr r2, .L238+16 3047 0072 9342 cmp r3, r2 3048 0074 10D0 beq .L235 3049 0076 114A ldr r2, .L238+20 3050 0078 9342 cmp r3, r2 3051 007a 0BD0 beq .L237 3052 007c F221 movs r1, #242 3053 .L231: 3054 .LVL247: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3055 .loc 1 4785 0 3056 007e 0268 ldr r2, [r0] 3057 0080 1368 ldr r3, [r2] 3058 0082 0B43 orrs r3, r1 3059 0084 1360 str r3, [r2] 3060 .LVL248: 3061 .LBE187: 3062 .LBE186: 1198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3063 .loc 1 1198 0 3064 0086 0020 movs r0, #0 3065 .LVL249: 3066 0088 09E0 b .L228 3067 .LVL250: ARM GAS /tmp/ccpuPECZ.s page 147 3068 .L229: 1178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3069 .loc 1 1178 0 3070 008a 438D ldrh r3, [r0, #42] 3071 008c 0385 strh r3, [r0, #40] 3072 .LVL251: 1179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3073 .loc 1 1179 0 3074 008e 8025 movs r5, #128 3075 0090 AD04 lsls r5, r5, #18 3076 0092 DBE7 b .L230 3077 .LVL252: 3078 .L237: 3079 .LBB189: 3080 .LBB188: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3081 .loc 1 4728 0 3082 0094 0021 movs r1, #0 3083 0096 F2E7 b .L231 3084 .L235: 3085 0098 0021 movs r1, #0 3086 009a F0E7 b .L231 3087 .LVL253: 3088 .L232: 3089 .LBE188: 3090 .LBE189: 1202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3091 .loc 1 1202 0 3092 009c 0220 movs r0, #2 3093 .LVL254: 3094 .L228: 1204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3095 .loc 1 1204 0 3096 @ sp needed 3097 009e 70BD pop {r4, r5, r6, pc} 3098 .LVL255: 3099 .L233: 1155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3100 .loc 1 1155 0 3101 00a0 0220 movs r0, #2 3102 .LVL256: 3103 00a2 FCE7 b .L228 3104 .LVL257: 3105 .L234: 1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3106 .loc 1 1159 0 3107 00a4 0220 movs r0, #2 3108 .LVL258: 3109 00a6 FAE7 b .L228 3110 .L239: 3111 .align 2 3112 .L238: 3113 00a8 0000FFFF .word -65536 3114 00ac 00000000 .word I2C_Master_ISR_IT 3115 00b0 009800FC .word -67069952 3116 00b4 00200080 .word -2147475456 3117 00b8 00000000 .word I2C_Master_ISR_DMA ARM GAS /tmp/ccpuPECZ.s page 148 3118 00bc 00000000 .word I2C_Slave_ISR_DMA 3119 .cfi_endproc 3120 .LFE47: 3122 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3123 .align 1 3124 .global HAL_I2C_Master_Receive_IT 3125 .syntax unified 3126 .code 16 3127 .thumb_func 3128 .fpu softvfp 3130 HAL_I2C_Master_Receive_IT: 3131 .LFB48: 1217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 3132 .loc 1 1217 0 3133 .cfi_startproc 3134 @ args = 0, pretend = 0, frame = 0 3135 @ frame_needed = 0, uses_anonymous_args = 0 3136 .LVL259: 3137 0000 70B5 push {r4, r5, r6, lr} 3138 .LCFI23: 3139 .cfi_def_cfa_offset 16 3140 .cfi_offset 4, -16 3141 .cfi_offset 5, -12 3142 .cfi_offset 6, -8 3143 .cfi_offset 14, -4 3144 .LVL260: 1220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3145 .loc 1 1220 0 3146 0002 4124 movs r4, #65 3147 0004 045D ldrb r4, [r0, r4] 3148 0006 202C cmp r4, #32 3149 0008 48D1 bne .L245 1222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3150 .loc 1 1222 0 3151 000a 0468 ldr r4, [r0] 3152 000c A569 ldr r5, [r4, #24] 3153 000e 2D04 lsls r5, r5, #16 3154 0010 46D4 bmi .L246 1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3155 .loc 1 1228 0 3156 0012 4025 movs r5, #64 3157 0014 455D ldrb r5, [r0, r5] 3158 0016 012D cmp r5, #1 3159 0018 44D0 beq .L247 1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3160 .loc 1 1228 0 is_stmt 0 discriminator 2 3161 001a 4025 movs r5, #64 3162 001c 0126 movs r6, #1 3163 001e 4655 strb r6, [r0, r5] 1230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3164 .loc 1 1230 0 is_stmt 1 discriminator 2 3165 0020 0135 adds r5, r5, #1 3166 0022 2136 adds r6, r6, #33 3167 0024 4655 strb r6, [r0, r5] 1231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3168 .loc 1 1231 0 discriminator 2 3169 0026 0135 adds r5, r5, #1 ARM GAS /tmp/ccpuPECZ.s page 149 3170 0028 123E subs r6, r6, #18 3171 002a 4655 strb r6, [r0, r5] 1232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3172 .loc 1 1232 0 discriminator 2 3173 002c 0025 movs r5, #0 3174 002e 4564 str r5, [r0, #68] 1235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 3175 .loc 1 1235 0 discriminator 2 3176 0030 4262 str r2, [r0, #36] 1236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3177 .loc 1 1236 0 discriminator 2 3178 0032 4385 strh r3, [r0, #42] 1237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3179 .loc 1 1237 0 discriminator 2 3180 0034 1C4B ldr r3, .L251 3181 .LVL261: 3182 0036 C362 str r3, [r0, #44] 3183 .LVL262: 1238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3184 .loc 1 1238 0 discriminator 2 3185 0038 1C4B ldr r3, .L251+4 3186 003a 4363 str r3, [r0, #52] 1240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3187 .loc 1 1240 0 discriminator 2 3188 003c 438D ldrh r3, [r0, #42] 3189 003e 9BB2 uxth r3, r3 3190 0040 FF2B cmp r3, #255 3191 0042 22D9 bls .L242 1242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3192 .loc 1 1242 0 3193 0044 FF23 movs r3, #255 3194 0046 0385 strh r3, [r0, #40] 3195 .LVL263: 1243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3196 .loc 1 1243 0 3197 0048 8025 movs r5, #128 3198 004a 6D04 lsls r5, r5, #17 3199 .LVL264: 3200 .L243: 1253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3201 .loc 1 1253 0 3202 004c 028D ldrh r2, [r0, #40] 3203 .LVL265: 3204 004e D2B2 uxtb r2, r2 3205 .LVL266: 3206 .LBB190: 3207 .LBB191: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 3208 .loc 1 4713 0 3209 0050 6368 ldr r3, [r4, #4] 3210 0052 174E ldr r6, .L251+8 3211 0054 3340 ands r3, r6 3212 0056 8905 lsls r1, r1, #22 3213 .LVL267: 3214 0058 890D lsrs r1, r1, #22 3215 005a 1204 lsls r2, r2, #16 3216 .LVL268: ARM GAS /tmp/ccpuPECZ.s page 150 3217 005c 1143 orrs r1, r2 3218 005e 0D43 orrs r5, r1 3219 .LVL269: 3220 0060 1449 ldr r1, .L251+12 3221 0062 2943 orrs r1, r5 3222 0064 1943 orrs r1, r3 3223 0066 6160 str r1, [r4, #4] 3224 .LVL270: 3225 .LBE191: 3226 .LBE190: 1256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3227 .loc 1 1256 0 3228 0068 4023 movs r3, #64 3229 006a 0022 movs r2, #0 3230 006c C254 strb r2, [r0, r3] 3231 .LVL271: 3232 .LBB192: 3233 .LBB193: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3234 .loc 1 4728 0 3235 006e 436B ldr r3, [r0, #52] 3236 0070 114A ldr r2, .L251+16 3237 0072 9342 cmp r3, r2 3238 0074 10D0 beq .L248 3239 0076 114A ldr r2, .L251+20 3240 0078 9342 cmp r3, r2 3241 007a 0BD0 beq .L250 3242 007c F421 movs r1, #244 3243 .L244: 3244 .LVL272: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3245 .loc 1 4785 0 3246 007e 0268 ldr r2, [r0] 3247 0080 1368 ldr r3, [r2] 3248 0082 0B43 orrs r3, r1 3249 0084 1360 str r3, [r2] 3250 .LVL273: 3251 .LBE193: 3252 .LBE192: 1267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3253 .loc 1 1267 0 3254 0086 0020 movs r0, #0 3255 .LVL274: 3256 0088 09E0 b .L241 3257 .LVL275: 3258 .L242: 1247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3259 .loc 1 1247 0 3260 008a 438D ldrh r3, [r0, #42] 3261 008c 0385 strh r3, [r0, #40] 3262 .LVL276: 1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3263 .loc 1 1248 0 3264 008e 8025 movs r5, #128 3265 0090 AD04 lsls r5, r5, #18 3266 0092 DBE7 b .L243 3267 .LVL277: ARM GAS /tmp/ccpuPECZ.s page 151 3268 .L250: 3269 .LBB195: 3270 .LBB194: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3271 .loc 1 4728 0 3272 0094 0021 movs r1, #0 3273 0096 F2E7 b .L244 3274 .L248: 3275 0098 0021 movs r1, #0 3276 009a F0E7 b .L244 3277 .LVL278: 3278 .L245: 3279 .LBE194: 3280 .LBE195: 1271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3281 .loc 1 1271 0 3282 009c 0220 movs r0, #2 3283 .LVL279: 3284 .L241: 1273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3285 .loc 1 1273 0 3286 @ sp needed 3287 009e 70BD pop {r4, r5, r6, pc} 3288 .LVL280: 3289 .L246: 1224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3290 .loc 1 1224 0 3291 00a0 0220 movs r0, #2 3292 .LVL281: 3293 00a2 FCE7 b .L241 3294 .LVL282: 3295 .L247: 1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3296 .loc 1 1228 0 3297 00a4 0220 movs r0, #2 3298 .LVL283: 3299 00a6 FAE7 b .L241 3300 .L252: 3301 .align 2 3302 .L251: 3303 00a8 0000FFFF .word -65536 3304 00ac 00000000 .word I2C_Master_ISR_IT 3305 00b0 009800FC .word -67069952 3306 00b4 00240080 .word -2147474432 3307 00b8 00000000 .word I2C_Master_ISR_DMA 3308 00bc 00000000 .word I2C_Slave_ISR_DMA 3309 .cfi_endproc 3310 .LFE48: 3312 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3313 .align 1 3314 .global HAL_I2C_Slave_Transmit_IT 3315 .syntax unified 3316 .code 16 3317 .thumb_func 3318 .fpu softvfp 3320 HAL_I2C_Slave_Transmit_IT: 3321 .LFB49: ARM GAS /tmp/ccpuPECZ.s page 152 1284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3322 .loc 1 1284 0 3323 .cfi_startproc 3324 @ args = 0, pretend = 0, frame = 0 3325 @ frame_needed = 0, uses_anonymous_args = 0 3326 .LVL284: 3327 0000 F0B5 push {r4, r5, r6, r7, lr} 3328 .LCFI24: 3329 .cfi_def_cfa_offset 20 3330 .cfi_offset 4, -20 3331 .cfi_offset 5, -16 3332 .cfi_offset 6, -12 3333 .cfi_offset 7, -8 3334 .cfi_offset 14, -4 1285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3335 .loc 1 1285 0 3336 0002 4123 movs r3, #65 3337 0004 C35C ldrb r3, [r0, r3] 3338 0006 202B cmp r3, #32 3339 0008 23D1 bne .L255 1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3340 .loc 1 1288 0 3341 000a 2033 adds r3, r3, #32 3342 000c C35C ldrb r3, [r0, r3] 3343 000e 012B cmp r3, #1 3344 0010 21D0 beq .L256 1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3345 .loc 1 1288 0 is_stmt 0 discriminator 2 3346 0012 4024 movs r4, #64 3347 0014 0123 movs r3, #1 3348 0016 0355 strb r3, [r0, r4] 1290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3349 .loc 1 1290 0 is_stmt 1 discriminator 2 3350 0018 4033 adds r3, r3, #64 3351 001a 2125 movs r5, #33 3352 001c C554 strb r5, [r0, r3] 1291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3353 .loc 1 1291 0 discriminator 2 3354 001e 0133 adds r3, r3, #1 3355 0020 013D subs r5, r5, #1 3356 0022 C554 strb r5, [r0, r3] 1292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3357 .loc 1 1292 0 discriminator 2 3358 0024 0025 movs r5, #0 3359 0026 4564 str r5, [r0, #68] 1295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3360 .loc 1 1295 0 discriminator 2 3361 0028 0668 ldr r6, [r0] 3362 002a 7368 ldr r3, [r6, #4] 3363 002c 0B4F ldr r7, .L257 3364 002e 3B40 ands r3, r7 3365 0030 7360 str r3, [r6, #4] 1298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 3366 .loc 1 1298 0 discriminator 2 3367 0032 4162 str r1, [r0, #36] 1299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3368 .loc 1 1299 0 discriminator 2 ARM GAS /tmp/ccpuPECZ.s page 153 3369 0034 4285 strh r2, [r0, #42] 1300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3370 .loc 1 1300 0 discriminator 2 3371 0036 438D ldrh r3, [r0, #42] 3372 0038 0385 strh r3, [r0, #40] 1301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3373 .loc 1 1301 0 discriminator 2 3374 003a 094B ldr r3, .L257+4 3375 003c C362 str r3, [r0, #44] 1302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3376 .loc 1 1302 0 discriminator 2 3377 003e 094B ldr r3, .L257+8 3378 0040 4363 str r3, [r0, #52] 1305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3379 .loc 1 1305 0 discriminator 2 3380 0042 0555 strb r5, [r0, r4] 3381 .LVL285: 3382 .LBB196: 3383 .LBB197: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3384 .loc 1 4785 0 discriminator 2 3385 0044 0268 ldr r2, [r0] 3386 .LVL286: 3387 0046 1368 ldr r3, [r2] 3388 0048 FA21 movs r1, #250 3389 .LVL287: 3390 004a 0B43 orrs r3, r1 3391 004c 1360 str r3, [r2] 3392 .LVL288: 3393 .LBE197: 3394 .LBE196: 1316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3395 .loc 1 1316 0 discriminator 2 3396 004e 0020 movs r0, #0 3397 .LVL289: 3398 0050 00E0 b .L254 3399 .LVL290: 3400 .L255: 1320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3401 .loc 1 1320 0 3402 0052 0220 movs r0, #2 3403 .LVL291: 3404 .L254: 1322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3405 .loc 1 1322 0 3406 @ sp needed 3407 0054 F0BD pop {r4, r5, r6, r7, pc} 3408 .LVL292: 3409 .L256: 1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3410 .loc 1 1288 0 3411 0056 0220 movs r0, #2 3412 .LVL293: 3413 0058 FCE7 b .L254 3414 .L258: 3415 005a C046 .align 2 3416 .L257: ARM GAS /tmp/ccpuPECZ.s page 154 3417 005c FF7FFFFF .word -32769 3418 0060 0000FFFF .word -65536 3419 0064 00000000 .word I2C_Slave_ISR_IT 3420 .cfi_endproc 3421 .LFE49: 3423 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3424 .align 1 3425 .global HAL_I2C_Slave_Receive_IT 3426 .syntax unified 3427 .code 16 3428 .thumb_func 3429 .fpu softvfp 3431 HAL_I2C_Slave_Receive_IT: 3432 .LFB50: 1333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3433 .loc 1 1333 0 3434 .cfi_startproc 3435 @ args = 0, pretend = 0, frame = 0 3436 @ frame_needed = 0, uses_anonymous_args = 0 3437 .LVL294: 3438 0000 F0B5 push {r4, r5, r6, r7, lr} 3439 .LCFI25: 3440 .cfi_def_cfa_offset 20 3441 .cfi_offset 4, -20 3442 .cfi_offset 5, -16 3443 .cfi_offset 6, -12 3444 .cfi_offset 7, -8 3445 .cfi_offset 14, -4 1334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3446 .loc 1 1334 0 3447 0002 4123 movs r3, #65 3448 0004 C35C ldrb r3, [r0, r3] 3449 0006 202B cmp r3, #32 3450 0008 23D1 bne .L261 1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3451 .loc 1 1337 0 3452 000a 2033 adds r3, r3, #32 3453 000c C35C ldrb r3, [r0, r3] 3454 000e 012B cmp r3, #1 3455 0010 21D0 beq .L262 1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3456 .loc 1 1337 0 is_stmt 0 discriminator 2 3457 0012 4024 movs r4, #64 3458 0014 0123 movs r3, #1 3459 0016 0355 strb r3, [r0, r4] 1339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3460 .loc 1 1339 0 is_stmt 1 discriminator 2 3461 0018 4033 adds r3, r3, #64 3462 001a 2225 movs r5, #34 3463 001c C554 strb r5, [r0, r3] 1340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3464 .loc 1 1340 0 discriminator 2 3465 001e 0133 adds r3, r3, #1 3466 0020 023D subs r5, r5, #2 3467 0022 C554 strb r5, [r0, r3] 1341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3468 .loc 1 1341 0 discriminator 2 ARM GAS /tmp/ccpuPECZ.s page 155 3469 0024 0025 movs r5, #0 3470 0026 4564 str r5, [r0, #68] 1344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3471 .loc 1 1344 0 discriminator 2 3472 0028 0668 ldr r6, [r0] 3473 002a 7368 ldr r3, [r6, #4] 3474 002c 0B4F ldr r7, .L263 3475 002e 3B40 ands r3, r7 3476 0030 7360 str r3, [r6, #4] 1347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 3477 .loc 1 1347 0 discriminator 2 3478 0032 4162 str r1, [r0, #36] 1348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3479 .loc 1 1348 0 discriminator 2 3480 0034 4285 strh r2, [r0, #42] 1349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3481 .loc 1 1349 0 discriminator 2 3482 0036 438D ldrh r3, [r0, #42] 3483 0038 0385 strh r3, [r0, #40] 1350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3484 .loc 1 1350 0 discriminator 2 3485 003a 094B ldr r3, .L263+4 3486 003c C362 str r3, [r0, #44] 1351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3487 .loc 1 1351 0 discriminator 2 3488 003e 094B ldr r3, .L263+8 3489 0040 4363 str r3, [r0, #52] 1354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3490 .loc 1 1354 0 discriminator 2 3491 0042 0555 strb r5, [r0, r4] 3492 .LVL295: 3493 .LBB198: 3494 .LBB199: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3495 .loc 1 4785 0 discriminator 2 3496 0044 0268 ldr r2, [r0] 3497 .LVL296: 3498 0046 1368 ldr r3, [r2] 3499 0048 FC21 movs r1, #252 3500 .LVL297: 3501 004a 0B43 orrs r3, r1 3502 004c 1360 str r3, [r2] 3503 .LVL298: 3504 .LBE199: 3505 .LBE198: 1365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3506 .loc 1 1365 0 discriminator 2 3507 004e 0020 movs r0, #0 3508 .LVL299: 3509 0050 00E0 b .L260 3510 .LVL300: 3511 .L261: 1369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3512 .loc 1 1369 0 3513 0052 0220 movs r0, #2 3514 .LVL301: 3515 .L260: ARM GAS /tmp/ccpuPECZ.s page 156 1371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3516 .loc 1 1371 0 3517 @ sp needed 3518 0054 F0BD pop {r4, r5, r6, r7, pc} 3519 .LVL302: 3520 .L262: 1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3521 .loc 1 1337 0 3522 0056 0220 movs r0, #2 3523 .LVL303: 3524 0058 FCE7 b .L260 3525 .L264: 3526 005a C046 .align 2 3527 .L263: 3528 005c FF7FFFFF .word -32769 3529 0060 0000FFFF .word -65536 3530 0064 00000000 .word I2C_Slave_ISR_IT 3531 .cfi_endproc 3532 .LFE50: 3534 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3535 .align 1 3536 .global HAL_I2C_Master_Transmit_DMA 3537 .syntax unified 3538 .code 16 3539 .thumb_func 3540 .fpu softvfp 3542 HAL_I2C_Master_Transmit_DMA: 3543 .LFB51: 1384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 3544 .loc 1 1384 0 3545 .cfi_startproc 3546 @ args = 0, pretend = 0, frame = 0 3547 @ frame_needed = 0, uses_anonymous_args = 0 3548 .LVL304: 3549 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 3550 .LCFI26: 3551 .cfi_def_cfa_offset 24 3552 .cfi_offset 3, -24 3553 .cfi_offset 4, -20 3554 .cfi_offset 5, -16 3555 .cfi_offset 6, -12 3556 .cfi_offset 7, -8 3557 .cfi_offset 14, -4 3558 0002 0400 movs r4, r0 3559 0004 0D00 movs r5, r1 3560 0006 1100 movs r1, r2 3561 .LVL305: 1387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3562 .loc 1 1387 0 3563 0008 4122 movs r2, #65 3564 .LVL306: 3565 000a 825C ldrb r2, [r0, r2] 3566 000c 202A cmp r2, #32 3567 000e 00D0 beq .LCB3787 3568 0010 8CE0 b .L272 @long jump 3569 .LCB3787: 1389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 157 3570 .loc 1 1389 0 3571 0012 0268 ldr r2, [r0] 3572 0014 9069 ldr r0, [r2, #24] 3573 .LVL307: 3574 0016 0004 lsls r0, r0, #16 3575 0018 00D5 bpl .LCB3794 3576 001a 89E0 b .L273 @long jump 3577 .LCB3794: 1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3578 .loc 1 1395 0 3579 001c 4020 movs r0, #64 3580 001e 205C ldrb r0, [r4, r0] 3581 0020 0128 cmp r0, #1 3582 0022 00D1 bne .LCB3798 3583 0024 86E0 b .L274 @long jump 3584 .LCB3798: 1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3585 .loc 1 1395 0 is_stmt 0 discriminator 2 3586 0026 4020 movs r0, #64 3587 0028 0126 movs r6, #1 3588 002a 2654 strb r6, [r4, r0] 1397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3589 .loc 1 1397 0 is_stmt 1 discriminator 2 3590 002c 0130 adds r0, r0, #1 3591 002e 2036 adds r6, r6, #32 3592 0030 2654 strb r6, [r4, r0] 1398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3593 .loc 1 1398 0 discriminator 2 3594 0032 0130 adds r0, r0, #1 3595 0034 113E subs r6, r6, #17 3596 0036 2654 strb r6, [r4, r0] 1399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3597 .loc 1 1399 0 discriminator 2 3598 0038 0020 movs r0, #0 3599 003a 6064 str r0, [r4, #68] 1402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 3600 .loc 1 1402 0 discriminator 2 3601 003c 6162 str r1, [r4, #36] 1403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3602 .loc 1 1403 0 discriminator 2 3603 003e 6385 strh r3, [r4, #42] 1404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3604 .loc 1 1404 0 discriminator 2 3605 0040 3D4B ldr r3, .L282 3606 .LVL308: 3607 0042 E362 str r3, [r4, #44] 3608 .LVL309: 1405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3609 .loc 1 1405 0 discriminator 2 3610 0044 3D4B ldr r3, .L282+4 3611 0046 6363 str r3, [r4, #52] 1407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3612 .loc 1 1407 0 discriminator 2 3613 0048 638D ldrh r3, [r4, #42] 3614 004a 9BB2 uxth r3, r3 3615 004c FF2B cmp r3, #255 3616 004e 25D9 bls .L267 ARM GAS /tmp/ccpuPECZ.s page 158 1409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3617 .loc 1 1409 0 3618 0050 FF23 movs r3, #255 3619 0052 2385 strh r3, [r4, #40] 3620 .LVL310: 1410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3621 .loc 1 1410 0 3622 0054 8026 movs r6, #128 3623 0056 7604 lsls r6, r6, #17 3624 .LVL311: 3625 .L268: 1418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3626 .loc 1 1418 0 3627 0058 238D ldrh r3, [r4, #40] 3628 005a 002B cmp r3, #0 3629 005c 23D1 bne .L279 1455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3630 .loc 1 1455 0 3631 005e 3849 ldr r1, .L282+8 3632 .LVL312: 3633 0060 6163 str r1, [r4, #52] 1459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3634 .loc 1 1459 0 3635 0062 DBB2 uxtb r3, r3 3636 .LVL313: 3637 .LBB200: 3638 .LBB201: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 3639 .loc 1 4713 0 3640 0064 5168 ldr r1, [r2, #4] 3641 0066 3748 ldr r0, .L282+12 3642 0068 0140 ands r1, r0 3643 006a AD05 lsls r5, r5, #22 3644 .LVL314: 3645 006c AD0D lsrs r5, r5, #22 3646 006e 1B04 lsls r3, r3, #16 3647 .LVL315: 3648 0070 1D43 orrs r5, r3 3649 0072 354B ldr r3, .L282+16 3650 0074 1D43 orrs r5, r3 3651 0076 0D43 orrs r5, r1 3652 0078 5560 str r5, [r2, #4] 3653 .LVL316: 3654 .LBE201: 3655 .LBE200: 1462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3656 .loc 1 1462 0 3657 007a 4023 movs r3, #64 3658 007c 0022 movs r2, #0 3659 007e E254 strb r2, [r4, r3] 3660 .LVL317: 3661 .LBB202: 3662 .LBB203: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3663 .loc 1 4728 0 3664 0080 636B ldr r3, [r4, #52] 3665 0082 2E4A ldr r2, .L282+4 ARM GAS /tmp/ccpuPECZ.s page 159 3666 0084 9342 cmp r3, r2 3667 0086 4FD0 beq .L277 3668 0088 304A ldr r2, .L282+20 3669 008a 9342 cmp r3, r2 3670 008c 4AD0 beq .L280 3671 008e F221 movs r1, #242 3672 .L271: 3673 .LVL318: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3674 .loc 1 4785 0 3675 0090 2268 ldr r2, [r4] 3676 0092 1368 ldr r3, [r2] 3677 0094 0B43 orrs r3, r1 3678 0096 1360 str r3, [r2] 3679 .LBE203: 3680 .LBE202: 1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3681 .loc 1 1473 0 3682 0098 0020 movs r0, #0 3683 009a 48E0 b .L266 3684 .LVL319: 3685 .L267: 1414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3686 .loc 1 1414 0 3687 009c 638D ldrh r3, [r4, #42] 3688 009e 2385 strh r3, [r4, #40] 3689 .LVL320: 1415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3690 .loc 1 1415 0 3691 00a0 8026 movs r6, #128 3692 00a2 B604 lsls r6, r6, #18 3693 00a4 D8E7 b .L268 3694 .LVL321: 3695 .L279: 1421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3696 .loc 1 1421 0 3697 00a6 A36B ldr r3, [r4, #56] 3698 00a8 294A ldr r2, .L282+24 3699 00aa DA62 str r2, [r3, #44] 1424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3700 .loc 1 1424 0 3701 00ac A36B ldr r3, [r4, #56] 3702 00ae 294A ldr r2, .L282+28 3703 00b0 5A63 str r2, [r3, #52] 1427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3704 .loc 1 1427 0 3705 00b2 A36B ldr r3, [r4, #56] 3706 00b4 0027 movs r7, #0 3707 00b6 1F63 str r7, [r3, #48] 1428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3708 .loc 1 1428 0 3709 00b8 A36B ldr r3, [r4, #56] 3710 00ba 9F63 str r7, [r3, #56] 1431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3711 .loc 1 1431 0 3712 00bc 2268 ldr r2, [r4] 3713 00be 2832 adds r2, r2, #40 ARM GAS /tmp/ccpuPECZ.s page 160 3714 00c0 238D ldrh r3, [r4, #40] 3715 00c2 A06B ldr r0, [r4, #56] 3716 00c4 FFF7FEFF bl HAL_DMA_Start_IT 3717 .LVL322: 1435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3718 .loc 1 1435 0 3719 00c8 238D ldrh r3, [r4, #40] 3720 00ca DBB2 uxtb r3, r3 3721 .LVL323: 3722 .LBB205: 3723 .LBB206: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 3724 .loc 1 4713 0 3725 00cc 2168 ldr r1, [r4] 3726 00ce 4868 ldr r0, [r1, #4] 3727 00d0 1C4A ldr r2, .L282+12 3728 00d2 0240 ands r2, r0 3729 00d4 AD05 lsls r5, r5, #22 3730 .LVL324: 3731 00d6 AD0D lsrs r5, r5, #22 3732 00d8 1B04 lsls r3, r3, #16 3733 .LVL325: 3734 00da 1D43 orrs r5, r3 3735 00dc 2E43 orrs r6, r5 3736 .LVL326: 3737 00de 1E4D ldr r5, .L282+32 3738 00e0 2E43 orrs r6, r5 3739 00e2 1643 orrs r6, r2 3740 00e4 4E60 str r6, [r1, #4] 3741 .LVL327: 3742 .LBE206: 3743 .LBE205: 1438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3744 .loc 1 1438 0 3745 00e6 638D ldrh r3, [r4, #42] 3746 00e8 228D ldrh r2, [r4, #40] 3747 00ea 9B1A subs r3, r3, r2 3748 00ec 9BB2 uxth r3, r3 3749 00ee 6385 strh r3, [r4, #42] 1441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3750 .loc 1 1441 0 3751 00f0 4023 movs r3, #64 3752 00f2 E754 strb r7, [r4, r3] 3753 .LVL328: 3754 .LBB207: 3755 .LBB208: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3756 .loc 1 4728 0 3757 00f4 636B ldr r3, [r4, #52] 3758 00f6 114A ldr r2, .L282+4 3759 00f8 9342 cmp r3, r2 3760 00fa 11D0 beq .L275 3761 00fc 134A ldr r2, .L282+20 3762 00fe 9342 cmp r3, r2 3763 0100 0CD0 beq .L281 3764 0102 F221 movs r1, #242 3765 .L270: ARM GAS /tmp/ccpuPECZ.s page 161 3766 .LVL329: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3767 .loc 1 4785 0 3768 0104 2268 ldr r2, [r4] 3769 0106 1368 ldr r3, [r2] 3770 0108 0B43 orrs r3, r1 3771 010a 1360 str r3, [r2] 3772 .LVL330: 3773 .LBE208: 3774 .LBE207: 1450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3775 .loc 1 1450 0 3776 010c 2268 ldr r2, [r4] 3777 010e 1168 ldr r1, [r2] 3778 0110 8023 movs r3, #128 3779 0112 DB01 lsls r3, r3, #7 3780 0114 0B43 orrs r3, r1 3781 0116 1360 str r3, [r2] 1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3782 .loc 1 1473 0 3783 0118 0020 movs r0, #0 3784 011a 08E0 b .L266 3785 .LVL331: 3786 .L281: 3787 .LBB210: 3788 .LBB209: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3789 .loc 1 4728 0 3790 011c 9021 movs r1, #144 3791 011e F1E7 b .L270 3792 .L275: 3793 0120 9021 movs r1, #144 3794 0122 EFE7 b .L270 3795 .LVL332: 3796 .L280: 3797 .LBE209: 3798 .LBE210: 3799 .LBB211: 3800 .LBB204: 3801 0124 0021 movs r1, #0 3802 0126 B3E7 b .L271 3803 .L277: 3804 0128 0021 movs r1, #0 3805 012a B1E7 b .L271 3806 .LVL333: 3807 .L272: 3808 .LBE204: 3809 .LBE211: 1477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3810 .loc 1 1477 0 3811 012c 0220 movs r0, #2 3812 .LVL334: 3813 .L266: 1479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3814 .loc 1 1479 0 3815 @ sp needed 3816 .LVL335: ARM GAS /tmp/ccpuPECZ.s page 162 3817 012e F8BD pop {r3, r4, r5, r6, r7, pc} 3818 .LVL336: 3819 .L273: 1391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3820 .loc 1 1391 0 3821 0130 0220 movs r0, #2 3822 0132 FCE7 b .L266 3823 .L274: 1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3824 .loc 1 1395 0 3825 0134 0220 movs r0, #2 3826 0136 FAE7 b .L266 3827 .L283: 3828 .align 2 3829 .L282: 3830 0138 0000FFFF .word -65536 3831 013c 00000000 .word I2C_Master_ISR_DMA 3832 0140 00000000 .word I2C_Master_ISR_IT 3833 0144 009800FC .word -67069952 3834 0148 00200082 .word -2113921024 3835 014c 00000000 .word I2C_Slave_ISR_DMA 3836 0150 00000000 .word I2C_DMAMasterTransmitCplt 3837 0154 00000000 .word I2C_DMAError 3838 0158 00200080 .word -2147475456 3839 .cfi_endproc 3840 .LFE51: 3842 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 3843 .align 1 3844 .global HAL_I2C_Master_Receive_DMA 3845 .syntax unified 3846 .code 16 3847 .thumb_func 3848 .fpu softvfp 3850 HAL_I2C_Master_Receive_DMA: 3851 .LFB52: 1492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 3852 .loc 1 1492 0 3853 .cfi_startproc 3854 @ args = 0, pretend = 0, frame = 0 3855 @ frame_needed = 0, uses_anonymous_args = 0 3856 .LVL337: 3857 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 3858 .LCFI27: 3859 .cfi_def_cfa_offset 24 3860 .cfi_offset 3, -24 3861 .cfi_offset 4, -20 3862 .cfi_offset 5, -16 3863 .cfi_offset 6, -12 3864 .cfi_offset 7, -8 3865 .cfi_offset 14, -4 3866 0002 0400 movs r4, r0 3867 0004 0D00 movs r5, r1 3868 .LVL338: 1495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3869 .loc 1 1495 0 3870 0006 4121 movs r1, #65 3871 .LVL339: ARM GAS /tmp/ccpuPECZ.s page 163 3872 0008 415C ldrb r1, [r0, r1] 3873 000a 2029 cmp r1, #32 3874 000c 00D0 beq .LCB4139 3875 000e 8CE0 b .L291 @long jump 3876 .LCB4139: 1497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3877 .loc 1 1497 0 3878 0010 0168 ldr r1, [r0] 3879 0012 8869 ldr r0, [r1, #24] 3880 .LVL340: 3881 0014 0004 lsls r0, r0, #16 3882 0016 00D5 bpl .LCB4146 3883 0018 89E0 b .L292 @long jump 3884 .LCB4146: 1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3885 .loc 1 1503 0 3886 001a 4020 movs r0, #64 3887 001c 205C ldrb r0, [r4, r0] 3888 001e 0128 cmp r0, #1 3889 0020 00D1 bne .LCB4150 3890 0022 86E0 b .L293 @long jump 3891 .LCB4150: 1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3892 .loc 1 1503 0 is_stmt 0 discriminator 2 3893 0024 4020 movs r0, #64 3894 0026 0126 movs r6, #1 3895 0028 2654 strb r6, [r4, r0] 1505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3896 .loc 1 1505 0 is_stmt 1 discriminator 2 3897 002a 0130 adds r0, r0, #1 3898 002c 2136 adds r6, r6, #33 3899 002e 2654 strb r6, [r4, r0] 1506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3900 .loc 1 1506 0 discriminator 2 3901 0030 0130 adds r0, r0, #1 3902 0032 123E subs r6, r6, #18 3903 0034 2654 strb r6, [r4, r0] 1507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3904 .loc 1 1507 0 discriminator 2 3905 0036 0020 movs r0, #0 3906 0038 6064 str r0, [r4, #68] 1510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 3907 .loc 1 1510 0 discriminator 2 3908 003a 6262 str r2, [r4, #36] 1511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3909 .loc 1 1511 0 discriminator 2 3910 003c 6385 strh r3, [r4, #42] 1512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3911 .loc 1 1512 0 discriminator 2 3912 003e 3E4B ldr r3, .L301 3913 .LVL341: 3914 0040 E362 str r3, [r4, #44] 3915 .LVL342: 1513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3916 .loc 1 1513 0 discriminator 2 3917 0042 3E4B ldr r3, .L301+4 3918 0044 6363 str r3, [r4, #52] ARM GAS /tmp/ccpuPECZ.s page 164 1515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3919 .loc 1 1515 0 discriminator 2 3920 0046 638D ldrh r3, [r4, #42] 3921 0048 9BB2 uxth r3, r3 3922 004a FF2B cmp r3, #255 3923 004c 25D9 bls .L286 1517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3924 .loc 1 1517 0 3925 004e FF23 movs r3, #255 3926 0050 2385 strh r3, [r4, #40] 3927 .LVL343: 1518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3928 .loc 1 1518 0 3929 0052 8026 movs r6, #128 3930 0054 7604 lsls r6, r6, #17 3931 .LVL344: 3932 .L287: 1526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 3933 .loc 1 1526 0 3934 0056 238D ldrh r3, [r4, #40] 3935 0058 002B cmp r3, #0 3936 005a 23D1 bne .L298 1563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3937 .loc 1 1563 0 3938 005c 384A ldr r2, .L301+8 3939 .LVL345: 3940 005e 6263 str r2, [r4, #52] 1567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3941 .loc 1 1567 0 3942 0060 DBB2 uxtb r3, r3 3943 .LVL346: 3944 .LBB212: 3945 .LBB213: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 3946 .loc 1 4713 0 3947 0062 4A68 ldr r2, [r1, #4] 3948 0064 3748 ldr r0, .L301+12 3949 0066 0240 ands r2, r0 3950 0068 AD05 lsls r5, r5, #22 3951 .LVL347: 3952 006a AD0D lsrs r5, r5, #22 3953 006c 1B04 lsls r3, r3, #16 3954 .LVL348: 3955 006e 1D43 orrs r5, r3 3956 0070 354B ldr r3, .L301+16 3957 0072 1D43 orrs r5, r3 3958 0074 1543 orrs r5, r2 3959 0076 4D60 str r5, [r1, #4] 3960 .LVL349: 3961 .LBE213: 3962 .LBE212: 1570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3963 .loc 1 1570 0 3964 0078 4023 movs r3, #64 3965 007a 0022 movs r2, #0 3966 007c E254 strb r2, [r4, r3] 3967 .LVL350: ARM GAS /tmp/ccpuPECZ.s page 165 3968 .LBB214: 3969 .LBB215: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 3970 .loc 1 4728 0 3971 007e 636B ldr r3, [r4, #52] 3972 0080 2E4A ldr r2, .L301+4 3973 0082 9342 cmp r3, r2 3974 0084 4FD0 beq .L296 3975 0086 314A ldr r2, .L301+20 3976 0088 9342 cmp r3, r2 3977 008a 4AD0 beq .L299 3978 008c F221 movs r1, #242 3979 .L290: 3980 .LVL351: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 3981 .loc 1 4785 0 3982 008e 2268 ldr r2, [r4] 3983 0090 1368 ldr r3, [r2] 3984 0092 0B43 orrs r3, r1 3985 0094 1360 str r3, [r2] 3986 .LBE215: 3987 .LBE214: 1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3988 .loc 1 1580 0 3989 0096 0020 movs r0, #0 3990 0098 48E0 b .L285 3991 .LVL352: 3992 .L286: 1522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3993 .loc 1 1522 0 3994 009a 638D ldrh r3, [r4, #42] 3995 009c 2385 strh r3, [r4, #40] 3996 .LVL353: 1523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 3997 .loc 1 1523 0 3998 009e 8026 movs r6, #128 3999 00a0 B604 lsls r6, r6, #18 4000 00a2 D8E7 b .L287 4001 .LVL354: 4002 .L298: 1529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4003 .loc 1 1529 0 4004 00a4 E36B ldr r3, [r4, #60] 4005 00a6 2A49 ldr r1, .L301+24 4006 00a8 D962 str r1, [r3, #44] 1532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4007 .loc 1 1532 0 4008 00aa E36B ldr r3, [r4, #60] 4009 00ac 2949 ldr r1, .L301+28 4010 00ae 5963 str r1, [r3, #52] 1535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4011 .loc 1 1535 0 4012 00b0 E36B ldr r3, [r4, #60] 4013 00b2 0027 movs r7, #0 4014 00b4 1F63 str r7, [r3, #48] 1536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4015 .loc 1 1536 0 ARM GAS /tmp/ccpuPECZ.s page 166 4016 00b6 E36B ldr r3, [r4, #60] 4017 00b8 9F63 str r7, [r3, #56] 1539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4018 .loc 1 1539 0 4019 00ba 2168 ldr r1, [r4] 4020 00bc 2431 adds r1, r1, #36 4021 00be 238D ldrh r3, [r4, #40] 4022 00c0 E06B ldr r0, [r4, #60] 4023 00c2 FFF7FEFF bl HAL_DMA_Start_IT 4024 .LVL355: 1543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4025 .loc 1 1543 0 4026 00c6 238D ldrh r3, [r4, #40] 4027 00c8 DBB2 uxtb r3, r3 4028 .LVL356: 4029 .LBB217: 4030 .LBB218: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 4031 .loc 1 4713 0 4032 00ca 2168 ldr r1, [r4] 4033 00cc 4868 ldr r0, [r1, #4] 4034 00ce 1D4A ldr r2, .L301+12 4035 00d0 0240 ands r2, r0 4036 00d2 AD05 lsls r5, r5, #22 4037 .LVL357: 4038 00d4 AD0D lsrs r5, r5, #22 4039 00d6 1B04 lsls r3, r3, #16 4040 .LVL358: 4041 00d8 1D43 orrs r5, r3 4042 00da 2E43 orrs r6, r5 4043 .LVL359: 4044 00dc 1E4D ldr r5, .L301+32 4045 00de 2E43 orrs r6, r5 4046 00e0 1643 orrs r6, r2 4047 00e2 4E60 str r6, [r1, #4] 4048 .LVL360: 4049 .LBE218: 4050 .LBE217: 1546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4051 .loc 1 1546 0 4052 00e4 638D ldrh r3, [r4, #42] 4053 00e6 228D ldrh r2, [r4, #40] 4054 00e8 9B1A subs r3, r3, r2 4055 00ea 9BB2 uxth r3, r3 4056 00ec 6385 strh r3, [r4, #42] 1549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4057 .loc 1 1549 0 4058 00ee 4023 movs r3, #64 4059 00f0 E754 strb r7, [r4, r3] 4060 .LVL361: 4061 .LBB219: 4062 .LBB220: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 4063 .loc 1 4728 0 4064 00f2 636B ldr r3, [r4, #52] 4065 00f4 114A ldr r2, .L301+4 4066 00f6 9342 cmp r3, r2 ARM GAS /tmp/ccpuPECZ.s page 167 4067 00f8 11D0 beq .L294 4068 00fa 144A ldr r2, .L301+20 4069 00fc 9342 cmp r3, r2 4070 00fe 0CD0 beq .L300 4071 0100 F221 movs r1, #242 4072 .L289: 4073 .LVL362: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4074 .loc 1 4785 0 4075 0102 2268 ldr r2, [r4] 4076 0104 1368 ldr r3, [r2] 4077 0106 0B43 orrs r3, r1 4078 0108 1360 str r3, [r2] 4079 .LVL363: 4080 .LBE220: 4081 .LBE219: 1558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4082 .loc 1 1558 0 4083 010a 2268 ldr r2, [r4] 4084 010c 1168 ldr r1, [r2] 4085 010e 8023 movs r3, #128 4086 0110 1B02 lsls r3, r3, #8 4087 0112 0B43 orrs r3, r1 4088 0114 1360 str r3, [r2] 1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4089 .loc 1 1580 0 4090 0116 0020 movs r0, #0 4091 0118 08E0 b .L285 4092 .LVL364: 4093 .L300: 4094 .LBB222: 4095 .LBB221: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 4096 .loc 1 4728 0 4097 011a 9021 movs r1, #144 4098 011c F1E7 b .L289 4099 .L294: 4100 011e 9021 movs r1, #144 4101 0120 EFE7 b .L289 4102 .LVL365: 4103 .L299: 4104 .LBE221: 4105 .LBE222: 4106 .LBB223: 4107 .LBB216: 4108 0122 0021 movs r1, #0 4109 0124 B3E7 b .L290 4110 .L296: 4111 0126 0021 movs r1, #0 4112 0128 B1E7 b .L290 4113 .LVL366: 4114 .L291: 4115 .LBE216: 4116 .LBE223: 1584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4117 .loc 1 1584 0 4118 012a 0220 movs r0, #2 ARM GAS /tmp/ccpuPECZ.s page 168 4119 .LVL367: 4120 .L285: 1586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4121 .loc 1 1586 0 4122 @ sp needed 4123 .LVL368: 4124 012c F8BD pop {r3, r4, r5, r6, r7, pc} 4125 .LVL369: 4126 .L292: 1499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4127 .loc 1 1499 0 4128 012e 0220 movs r0, #2 4129 0130 FCE7 b .L285 4130 .L293: 1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4131 .loc 1 1503 0 4132 0132 0220 movs r0, #2 4133 0134 FAE7 b .L285 4134 .L302: 4135 0136 C046 .align 2 4136 .L301: 4137 0138 0000FFFF .word -65536 4138 013c 00000000 .word I2C_Master_ISR_DMA 4139 0140 00000000 .word I2C_Master_ISR_IT 4140 0144 009800FC .word -67069952 4141 0148 00240082 .word -2113920000 4142 014c 00000000 .word I2C_Slave_ISR_DMA 4143 0150 00000000 .word I2C_DMAMasterReceiveCplt 4144 0154 00000000 .word I2C_DMAError 4145 0158 00240080 .word -2147474432 4146 .cfi_endproc 4147 .LFE52: 4149 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4150 .align 1 4151 .global HAL_I2C_Slave_Transmit_DMA 4152 .syntax unified 4153 .code 16 4154 .thumb_func 4155 .fpu softvfp 4157 HAL_I2C_Slave_Transmit_DMA: 4158 .LFB53: 1597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4159 .loc 1 1597 0 4160 .cfi_startproc 4161 @ args = 0, pretend = 0, frame = 0 4162 @ frame_needed = 0, uses_anonymous_args = 0 4163 .LVL370: 4164 0000 70B5 push {r4, r5, r6, lr} 4165 .LCFI28: 4166 .cfi_def_cfa_offset 16 4167 .cfi_offset 4, -16 4168 .cfi_offset 5, -12 4169 .cfi_offset 6, -8 4170 .cfi_offset 14, -4 4171 0002 0400 movs r4, r0 1598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4172 .loc 1 1598 0 ARM GAS /tmp/ccpuPECZ.s page 169 4173 0004 4123 movs r3, #65 4174 0006 C35C ldrb r3, [r0, r3] 4175 0008 202B cmp r3, #32 4176 000a 3DD1 bne .L305 1600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4177 .loc 1 1600 0 4178 000c 0029 cmp r1, #0 4179 000e 3DD0 beq .L306 1600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4180 .loc 1 1600 0 is_stmt 0 discriminator 1 4181 0010 002A cmp r2, #0 4182 0012 3DD0 beq .L307 1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4183 .loc 1 1605 0 is_stmt 1 4184 0014 2033 adds r3, r3, #32 4185 0016 C35C ldrb r3, [r0, r3] 4186 0018 012B cmp r3, #1 4187 001a 3BD0 beq .L308 1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4188 .loc 1 1605 0 is_stmt 0 discriminator 2 4189 001c 4026 movs r6, #64 4190 001e 0123 movs r3, #1 4191 0020 8355 strb r3, [r0, r6] 1607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4192 .loc 1 1607 0 is_stmt 1 discriminator 2 4193 0022 4033 adds r3, r3, #64 4194 0024 2120 movs r0, #33 4195 .LVL371: 4196 0026 E054 strb r0, [r4, r3] 1608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4197 .loc 1 1608 0 discriminator 2 4198 0028 0133 adds r3, r3, #1 4199 002a 0138 subs r0, r0, #1 4200 002c E054 strb r0, [r4, r3] 1609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4201 .loc 1 1609 0 discriminator 2 4202 002e 0025 movs r5, #0 4203 0030 6564 str r5, [r4, #68] 1612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 4204 .loc 1 1612 0 discriminator 2 4205 0032 6162 str r1, [r4, #36] 1613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4206 .loc 1 1613 0 discriminator 2 4207 0034 6285 strh r2, [r4, #42] 1614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4208 .loc 1 1614 0 discriminator 2 4209 0036 638D ldrh r3, [r4, #42] 4210 0038 2385 strh r3, [r4, #40] 1615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4211 .loc 1 1615 0 discriminator 2 4212 003a 174B ldr r3, .L309 4213 003c E362 str r3, [r4, #44] 1616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4214 .loc 1 1616 0 discriminator 2 4215 003e 174B ldr r3, .L309+4 4216 0040 6363 str r3, [r4, #52] 1619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 170 4217 .loc 1 1619 0 discriminator 2 4218 0042 A36B ldr r3, [r4, #56] 4219 0044 164A ldr r2, .L309+8 4220 .LVL372: 4221 0046 DA62 str r2, [r3, #44] 1622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4222 .loc 1 1622 0 discriminator 2 4223 0048 A36B ldr r3, [r4, #56] 4224 004a 164A ldr r2, .L309+12 4225 004c 5A63 str r2, [r3, #52] 1625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4226 .loc 1 1625 0 discriminator 2 4227 004e A36B ldr r3, [r4, #56] 4228 0050 1D63 str r5, [r3, #48] 1626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4229 .loc 1 1626 0 discriminator 2 4230 0052 A36B ldr r3, [r4, #56] 4231 0054 9D63 str r5, [r3, #56] 1629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4232 .loc 1 1629 0 discriminator 2 4233 0056 2268 ldr r2, [r4] 4234 0058 2832 adds r2, r2, #40 4235 005a 238D ldrh r3, [r4, #40] 4236 005c A06B ldr r0, [r4, #56] 4237 005e FFF7FEFF bl HAL_DMA_Start_IT 4238 .LVL373: 1632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4239 .loc 1 1632 0 discriminator 2 4240 0062 2268 ldr r2, [r4] 4241 0064 5368 ldr r3, [r2, #4] 4242 0066 1049 ldr r1, .L309+16 4243 0068 0B40 ands r3, r1 4244 006a 5360 str r3, [r2, #4] 1635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4245 .loc 1 1635 0 discriminator 2 4246 006c A555 strb r5, [r4, r6] 4247 .LVL374: 4248 .LBB224: 4249 .LBB225: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4250 .loc 1 4785 0 discriminator 2 4251 006e 2268 ldr r2, [r4] 4252 0070 1368 ldr r3, [r2] 4253 0072 B821 movs r1, #184 4254 0074 0B43 orrs r3, r1 4255 0076 1360 str r3, [r2] 4256 .LVL375: 4257 .LBE225: 4258 .LBE224: 1644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4259 .loc 1 1644 0 discriminator 2 4260 0078 2268 ldr r2, [r4] 4261 007a 1168 ldr r1, [r2] 4262 007c 8023 movs r3, #128 4263 007e DB01 lsls r3, r3, #7 4264 0080 0B43 orrs r3, r1 4265 0082 1360 str r3, [r2] ARM GAS /tmp/ccpuPECZ.s page 171 1646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4266 .loc 1 1646 0 discriminator 2 4267 0084 0020 movs r0, #0 4268 0086 00E0 b .L304 4269 .LVL376: 4270 .L305: 1650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4271 .loc 1 1650 0 4272 0088 0220 movs r0, #2 4273 .LVL377: 4274 .L304: 1652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4275 .loc 1 1652 0 4276 @ sp needed 4277 .LVL378: 4278 008a 70BD pop {r4, r5, r6, pc} 4279 .LVL379: 4280 .L306: 1602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4281 .loc 1 1602 0 4282 008c 0120 movs r0, #1 4283 .LVL380: 4284 008e FCE7 b .L304 4285 .LVL381: 4286 .L307: 4287 0090 0120 movs r0, #1 4288 .LVL382: 4289 0092 FAE7 b .L304 4290 .LVL383: 4291 .L308: 1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4292 .loc 1 1605 0 4293 0094 0220 movs r0, #2 4294 .LVL384: 4295 0096 F8E7 b .L304 4296 .L310: 4297 .align 2 4298 .L309: 4299 0098 0000FFFF .word -65536 4300 009c 00000000 .word I2C_Slave_ISR_DMA 4301 00a0 00000000 .word I2C_DMASlaveTransmitCplt 4302 00a4 00000000 .word I2C_DMAError 4303 00a8 FF7FFFFF .word -32769 4304 .cfi_endproc 4305 .LFE53: 4307 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4308 .align 1 4309 .global HAL_I2C_Slave_Receive_DMA 4310 .syntax unified 4311 .code 16 4312 .thumb_func 4313 .fpu softvfp 4315 HAL_I2C_Slave_Receive_DMA: 4316 .LFB54: 1663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4317 .loc 1 1663 0 4318 .cfi_startproc ARM GAS /tmp/ccpuPECZ.s page 172 4319 @ args = 0, pretend = 0, frame = 0 4320 @ frame_needed = 0, uses_anonymous_args = 0 4321 .LVL385: 4322 0000 70B5 push {r4, r5, r6, lr} 4323 .LCFI29: 4324 .cfi_def_cfa_offset 16 4325 .cfi_offset 4, -16 4326 .cfi_offset 5, -12 4327 .cfi_offset 6, -8 4328 .cfi_offset 14, -4 4329 0002 0400 movs r4, r0 1664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4330 .loc 1 1664 0 4331 0004 4123 movs r3, #65 4332 0006 C35C ldrb r3, [r0, r3] 4333 0008 202B cmp r3, #32 4334 000a 3FD1 bne .L313 1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4335 .loc 1 1666 0 4336 000c 0029 cmp r1, #0 4337 000e 3FD0 beq .L314 1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4338 .loc 1 1666 0 is_stmt 0 discriminator 1 4339 0010 002A cmp r2, #0 4340 0012 3FD0 beq .L315 1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4341 .loc 1 1671 0 is_stmt 1 4342 0014 2033 adds r3, r3, #32 4343 0016 C35C ldrb r3, [r0, r3] 4344 0018 012B cmp r3, #1 4345 001a 3DD0 beq .L316 1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4346 .loc 1 1671 0 is_stmt 0 discriminator 2 4347 001c 4026 movs r6, #64 4348 001e 0123 movs r3, #1 4349 0020 8355 strb r3, [r0, r6] 1673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4350 .loc 1 1673 0 is_stmt 1 discriminator 2 4351 0022 4033 adds r3, r3, #64 4352 0024 2220 movs r0, #34 4353 .LVL386: 4354 0026 E054 strb r0, [r4, r3] 1674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4355 .loc 1 1674 0 discriminator 2 4356 0028 0133 adds r3, r3, #1 4357 002a 0238 subs r0, r0, #2 4358 002c E054 strb r0, [r4, r3] 1675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4359 .loc 1 1675 0 discriminator 2 4360 002e 0025 movs r5, #0 4361 0030 6564 str r5, [r4, #68] 1678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 4362 .loc 1 1678 0 discriminator 2 4363 0032 6162 str r1, [r4, #36] 1679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4364 .loc 1 1679 0 discriminator 2 4365 0034 6285 strh r2, [r4, #42] ARM GAS /tmp/ccpuPECZ.s page 173 1680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4366 .loc 1 1680 0 discriminator 2 4367 0036 638D ldrh r3, [r4, #42] 4368 0038 2385 strh r3, [r4, #40] 1681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4369 .loc 1 1681 0 discriminator 2 4370 003a 184B ldr r3, .L317 4371 003c E362 str r3, [r4, #44] 1682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4372 .loc 1 1682 0 discriminator 2 4373 003e 184B ldr r3, .L317+4 4374 0040 6363 str r3, [r4, #52] 1685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4375 .loc 1 1685 0 discriminator 2 4376 0042 E36B ldr r3, [r4, #60] 4377 0044 174A ldr r2, .L317+8 4378 .LVL387: 4379 0046 DA62 str r2, [r3, #44] 1688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4380 .loc 1 1688 0 discriminator 2 4381 0048 E36B ldr r3, [r4, #60] 4382 004a 174A ldr r2, .L317+12 4383 004c 5A63 str r2, [r3, #52] 1691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4384 .loc 1 1691 0 discriminator 2 4385 004e E36B ldr r3, [r4, #60] 4386 0050 1D63 str r5, [r3, #48] 1692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4387 .loc 1 1692 0 discriminator 2 4388 0052 E36B ldr r3, [r4, #60] 4389 0054 9D63 str r5, [r3, #56] 1695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4390 .loc 1 1695 0 discriminator 2 4391 0056 2068 ldr r0, [r4] 4392 0058 2430 adds r0, r0, #36 4393 005a 238D ldrh r3, [r4, #40] 4394 005c 0A00 movs r2, r1 4395 005e 0100 movs r1, r0 4396 .LVL388: 4397 0060 E06B ldr r0, [r4, #60] 4398 0062 FFF7FEFF bl HAL_DMA_Start_IT 4399 .LVL389: 1698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4400 .loc 1 1698 0 discriminator 2 4401 0066 2268 ldr r2, [r4] 4402 0068 5368 ldr r3, [r2, #4] 4403 006a 1049 ldr r1, .L317+16 4404 006c 0B40 ands r3, r1 4405 006e 5360 str r3, [r2, #4] 1701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4406 .loc 1 1701 0 discriminator 2 4407 0070 A555 strb r5, [r4, r6] 4408 .LVL390: 4409 .LBB226: 4410 .LBB227: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4411 .loc 1 4785 0 discriminator 2 ARM GAS /tmp/ccpuPECZ.s page 174 4412 0072 2268 ldr r2, [r4] 4413 0074 1368 ldr r3, [r2] 4414 0076 B821 movs r1, #184 4415 0078 0B43 orrs r3, r1 4416 007a 1360 str r3, [r2] 4417 .LVL391: 4418 .LBE227: 4419 .LBE226: 1710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4420 .loc 1 1710 0 discriminator 2 4421 007c 2268 ldr r2, [r4] 4422 007e 1168 ldr r1, [r2] 4423 0080 8023 movs r3, #128 4424 0082 1B02 lsls r3, r3, #8 4425 0084 0B43 orrs r3, r1 4426 0086 1360 str r3, [r2] 1712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4427 .loc 1 1712 0 discriminator 2 4428 0088 0020 movs r0, #0 4429 008a 00E0 b .L312 4430 .LVL392: 4431 .L313: 1716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4432 .loc 1 1716 0 4433 008c 0220 movs r0, #2 4434 .LVL393: 4435 .L312: 1718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 4436 .loc 1 1718 0 4437 @ sp needed 4438 .LVL394: 4439 008e 70BD pop {r4, r5, r6, pc} 4440 .LVL395: 4441 .L314: 1668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4442 .loc 1 1668 0 4443 0090 0120 movs r0, #1 4444 .LVL396: 4445 0092 FCE7 b .L312 4446 .LVL397: 4447 .L315: 4448 0094 0120 movs r0, #1 4449 .LVL398: 4450 0096 FAE7 b .L312 4451 .LVL399: 4452 .L316: 1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4453 .loc 1 1671 0 4454 0098 0220 movs r0, #2 4455 .LVL400: 4456 009a F8E7 b .L312 4457 .L318: 4458 .align 2 4459 .L317: 4460 009c 0000FFFF .word -65536 4461 00a0 00000000 .word I2C_Slave_ISR_DMA 4462 00a4 00000000 .word I2C_DMASlaveReceiveCplt ARM GAS /tmp/ccpuPECZ.s page 175 4463 00a8 00000000 .word I2C_DMAError 4464 00ac FF7FFFFF .word -32769 4465 .cfi_endproc 4466 .LFE54: 4468 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 4469 .align 1 4470 .global HAL_I2C_Mem_Write 4471 .syntax unified 4472 .code 16 4473 .thumb_func 4474 .fpu softvfp 4476 HAL_I2C_Mem_Write: 4477 .LFB55: 1733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 4478 .loc 1 1733 0 4479 .cfi_startproc 4480 @ args = 12, pretend = 0, frame = 16 4481 @ frame_needed = 0, uses_anonymous_args = 0 4482 .LVL401: 4483 0000 F0B5 push {r4, r5, r6, r7, lr} 4484 .LCFI30: 4485 .cfi_def_cfa_offset 20 4486 .cfi_offset 4, -20 4487 .cfi_offset 5, -16 4488 .cfi_offset 6, -12 4489 .cfi_offset 7, -8 4490 .cfi_offset 14, -4 4491 0002 87B0 sub sp, sp, #28 4492 .LCFI31: 4493 .cfi_def_cfa_offset 48 4494 0004 0400 movs r4, r0 4495 0006 0391 str r1, [sp, #12] 4496 0008 0492 str r2, [sp, #16] 4497 000a 0593 str r3, [sp, #20] 4498 000c 0CAB add r3, sp, #48 4499 .LVL402: 4500 000e 20CB ldmia r3!, {r5} 4501 .LVL403: 4502 0010 1F88 ldrh r7, [r3] 4503 .LVL404: 1739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4504 .loc 1 1739 0 4505 0012 4123 movs r3, #65 4506 .LVL405: 4507 0014 C35C ldrb r3, [r0, r3] 4508 0016 202B cmp r3, #32 4509 0018 00D0 beq .LCB4820 4510 001a E1E0 b .L332 @long jump 4511 .LCB4820: 1741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4512 .loc 1 1741 0 4513 001c 002D cmp r5, #0 4514 001e 00D1 bne .LCB4822 4515 0020 E1E0 b .L333 @long jump 4516 .LCB4822: 1741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4517 .loc 1 1741 0 is_stmt 0 discriminator 1 ARM GAS /tmp/ccpuPECZ.s page 176 4518 0022 002F cmp r7, #0 4519 0024 00D1 bne .LCB4824 4520 0026 E0E0 b .L334 @long jump 4521 .LCB4824: 1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4522 .loc 1 1747 0 is_stmt 1 4523 0028 2033 adds r3, r3, #32 4524 002a C35C ldrb r3, [r0, r3] 4525 002c 012B cmp r3, #1 4526 002e 00D1 bne .LCB4828 4527 0030 DDE0 b .L335 @long jump 4528 .LCB4828: 1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4529 .loc 1 1747 0 is_stmt 0 discriminator 2 4530 0032 4023 movs r3, #64 4531 0034 0122 movs r2, #1 4532 .LVL406: 4533 0036 C254 strb r2, [r0, r3] 1750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4534 .loc 1 1750 0 is_stmt 1 discriminator 2 4535 0038 FFF7FEFF bl HAL_GetTick 4536 .LVL407: 4537 003c 0600 movs r6, r0 4538 .LVL408: 4539 .L321: 4540 .LBB228: 4541 .LBB229: 4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4542 .loc 1 4487 0 4543 003e 2368 ldr r3, [r4] 4544 0040 9B69 ldr r3, [r3, #24] 4545 0042 1B04 lsls r3, r3, #16 4546 0044 0ED5 bpl .L339 4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4547 .loc 1 4492 0 4548 0046 FFF7FEFF bl HAL_GetTick 4549 .LVL409: 4550 004a 801B subs r0, r0, r6 4551 004c 1928 cmp r0, #25 4552 004e F6D9 bls .L321 4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4553 .loc 1 4494 0 4554 0050 4123 movs r3, #65 4555 0052 2022 movs r2, #32 4556 0054 E254 strb r2, [r4, r3] 4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4557 .loc 1 4495 0 4558 0056 0023 movs r3, #0 4559 0058 2232 adds r2, r2, #34 4560 005a A354 strb r3, [r4, r2] 4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4561 .loc 1 4498 0 4562 005c 023A subs r2, r2, #2 4563 005e A354 strb r3, [r4, r2] 4564 .LVL410: 4565 .LBE229: 4566 .LBE228: ARM GAS /tmp/ccpuPECZ.s page 177 1754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4567 .loc 1 1754 0 4568 0060 0320 movs r0, #3 4569 0062 BEE0 b .L320 4570 .LVL411: 4571 .L339: 1757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 4572 .loc 1 1757 0 4573 0064 4123 movs r3, #65 4574 0066 2122 movs r2, #33 4575 0068 E254 strb r2, [r4, r3] 1758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4576 .loc 1 1758 0 4577 006a 0133 adds r3, r3, #1 4578 006c 1F32 adds r2, r2, #31 4579 006e E254 strb r2, [r4, r3] 1759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4580 .loc 1 1759 0 4581 0070 0023 movs r3, #0 4582 0072 6364 str r3, [r4, #68] 1762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 4583 .loc 1 1762 0 4584 0074 6562 str r5, [r4, #36] 1763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 4585 .loc 1 1763 0 4586 0076 6785 strh r7, [r4, #42] 1764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4587 .loc 1 1764 0 4588 0078 6363 str r3, [r4, #52] 1767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4589 .loc 1 1767 0 4590 007a 0196 str r6, [sp, #4] 4591 007c 0E9B ldr r3, [sp, #56] 4592 007e 0093 str r3, [sp] 4593 0080 059B ldr r3, [sp, #20] 4594 0082 049A ldr r2, [sp, #16] 4595 0084 0399 ldr r1, [sp, #12] 4596 0086 2000 movs r0, r4 4597 0088 FFF7FEFF bl I2C_RequestMemoryWrite 4598 .LVL412: 4599 008c 0028 cmp r0, #0 4600 008e 0CD0 beq .L323 1769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4601 .loc 1 1769 0 4602 0090 636C ldr r3, [r4, #68] 4603 0092 042B cmp r3, #4 4604 0094 04D1 bne .L324 1772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 4605 .loc 1 1772 0 4606 0096 3C33 adds r3, r3, #60 4607 0098 0022 movs r2, #0 4608 009a E254 strb r2, [r4, r3] 1773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4609 .loc 1 1773 0 4610 009c 0120 movs r0, #1 4611 009e A0E0 b .L320 4612 .L324: ARM GAS /tmp/ccpuPECZ.s page 178 1778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4613 .loc 1 1778 0 4614 00a0 4023 movs r3, #64 4615 00a2 0022 movs r2, #0 4616 00a4 E254 strb r2, [r4, r3] 1779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4617 .loc 1 1779 0 4618 00a6 0320 movs r0, #3 4619 00a8 9BE0 b .L320 4620 .L323: 1784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4621 .loc 1 1784 0 4622 00aa 638D ldrh r3, [r4, #42] 4623 00ac 9BB2 uxth r3, r3 4624 00ae FF2B cmp r3, #255 4625 00b0 11D9 bls .L325 1786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 4626 .loc 1 1786 0 4627 00b2 FF23 movs r3, #255 4628 00b4 2385 strh r3, [r4, #40] 4629 .LVL413: 4630 .LBB230: 4631 .LBB231: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 4632 .loc 1 4713 0 4633 00b6 2068 ldr r0, [r4] 4634 00b8 4368 ldr r3, [r0, #4] 4635 00ba 514A ldr r2, .L342 4636 00bc 1340 ands r3, r2 4637 00be 039A ldr r2, [sp, #12] 4638 00c0 9105 lsls r1, r2, #22 4639 00c2 890D lsrs r1, r1, #22 4640 00c4 FF22 movs r2, #255 4641 00c6 1204 lsls r2, r2, #16 4642 00c8 1143 orrs r1, r2 4643 00ca 8022 movs r2, #128 4644 00cc 5204 lsls r2, r2, #17 4645 00ce 0A43 orrs r2, r1 4646 00d0 1343 orrs r3, r2 4647 00d2 4360 str r3, [r0, #4] 4648 00d4 2EE0 b .L330 4649 .LVL414: 4650 .L325: 4651 .LBE231: 4652 .LBE230: 1791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 4653 .loc 1 1791 0 4654 00d6 638D ldrh r3, [r4, #42] 4655 00d8 9BB2 uxth r3, r3 4656 00da 2385 strh r3, [r4, #40] 1792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4657 .loc 1 1792 0 4658 00dc DBB2 uxtb r3, r3 4659 .LVL415: 4660 .LBB232: 4661 .LBB233: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ ARM GAS /tmp/ccpuPECZ.s page 179 4662 .loc 1 4713 0 4663 00de 2068 ldr r0, [r4] 4664 00e0 4268 ldr r2, [r0, #4] 4665 00e2 4749 ldr r1, .L342 4666 00e4 0A40 ands r2, r1 4667 00e6 0399 ldr r1, [sp, #12] 4668 00e8 8905 lsls r1, r1, #22 4669 00ea 890D lsrs r1, r1, #22 4670 00ec 1B04 lsls r3, r3, #16 4671 .LVL416: 4672 00ee 0B43 orrs r3, r1 4673 00f0 8021 movs r1, #128 4674 00f2 8904 lsls r1, r1, #18 4675 00f4 0B43 orrs r3, r1 4676 00f6 1343 orrs r3, r2 4677 00f8 4360 str r3, [r0, #4] 4678 .LVL417: 4679 00fa 1BE0 b .L330 4680 .LVL418: 4681 .L341: 4682 .LBE233: 4683 .LBE232: 1800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4684 .loc 1 1800 0 4685 00fc 636C ldr r3, [r4, #68] 4686 00fe 042B cmp r3, #4 4687 0100 00D0 beq .LCB5020 4688 0102 76E0 b .L336 @long jump 4689 .LCB5020: 1802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4690 .loc 1 1802 0 4691 0104 0120 movs r0, #1 4692 0106 6CE0 b .L320 4693 .L329: 1830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 4694 .loc 1 1830 0 4695 0108 638D ldrh r3, [r4, #42] 4696 010a 9BB2 uxth r3, r3 4697 010c 2385 strh r3, [r4, #40] 1831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4698 .loc 1 1831 0 4699 010e DBB2 uxtb r3, r3 4700 .LVL419: 4701 .LBB234: 4702 .LBB235: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 4703 .loc 1 4713 0 4704 0110 2068 ldr r0, [r4] 4705 0112 4268 ldr r2, [r0, #4] 4706 0114 3A49 ldr r1, .L342 4707 0116 0A40 ands r2, r1 4708 0118 0399 ldr r1, [sp, #12] 4709 011a 8905 lsls r1, r1, #22 4710 011c 890D lsrs r1, r1, #22 4711 011e 1B04 lsls r3, r3, #16 4712 .LVL420: 4713 0120 0B43 orrs r3, r1 ARM GAS /tmp/ccpuPECZ.s page 180 4714 0122 8021 movs r1, #128 4715 0124 8904 lsls r1, r1, #18 4716 0126 0B43 orrs r3, r1 4717 0128 1343 orrs r3, r2 4718 012a 4360 str r3, [r0, #4] 4719 .LVL421: 4720 .L328: 4721 .LBE235: 4722 .LBE234: 1836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4723 .loc 1 1836 0 4724 012c 638D ldrh r3, [r4, #42] 4725 012e 9BB2 uxth r3, r3 4726 0130 002B cmp r3, #0 4727 0132 39D0 beq .L340 4728 .L330: 1798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4729 .loc 1 1798 0 4730 0134 3200 movs r2, r6 4731 0136 0E99 ldr r1, [sp, #56] 4732 0138 2000 movs r0, r4 4733 013a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 4734 .LVL422: 4735 013e 0028 cmp r0, #0 4736 0140 DCD1 bne .L341 1811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 4737 .loc 1 1811 0 4738 0142 636A ldr r3, [r4, #36] 4739 0144 5A1C adds r2, r3, #1 4740 0146 6262 str r2, [r4, #36] 4741 0148 2268 ldr r2, [r4] 4742 014a 1B78 ldrb r3, [r3] 4743 014c 9362 str r3, [r2, #40] 1812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 4744 .loc 1 1812 0 4745 014e 638D ldrh r3, [r4, #42] 4746 0150 013B subs r3, r3, #1 4747 0152 9BB2 uxth r3, r3 4748 0154 6385 strh r3, [r4, #42] 1813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4749 .loc 1 1813 0 4750 0156 238D ldrh r3, [r4, #40] 4751 0158 013B subs r3, r3, #1 4752 015a 9BB2 uxth r3, r3 4753 015c 2385 strh r3, [r4, #40] 1815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4754 .loc 1 1815 0 4755 015e 002B cmp r3, #0 4756 0160 E4D1 bne .L328 1815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4757 .loc 1 1815 0 is_stmt 0 discriminator 1 4758 0162 638D ldrh r3, [r4, #42] 4759 0164 9BB2 uxth r3, r3 4760 0166 002B cmp r3, #0 4761 0168 E0D0 beq .L328 1818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4762 .loc 1 1818 0 is_stmt 1 ARM GAS /tmp/ccpuPECZ.s page 181 4763 016a 0096 str r6, [sp] 4764 016c 0E9B ldr r3, [sp, #56] 4765 016e 0022 movs r2, #0 4766 0170 8021 movs r1, #128 4767 0172 2000 movs r0, r4 4768 0174 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 4769 .LVL423: 4770 0178 0028 cmp r0, #0 4771 017a 3CD1 bne .L337 1823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4772 .loc 1 1823 0 4773 017c 638D ldrh r3, [r4, #42] 4774 017e 9BB2 uxth r3, r3 4775 0180 FF2B cmp r3, #255 4776 0182 C1D9 bls .L329 1825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 4777 .loc 1 1825 0 4778 0184 FF23 movs r3, #255 4779 0186 2385 strh r3, [r4, #40] 4780 .LVL424: 4781 .LBB236: 4782 .LBB237: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 4783 .loc 1 4713 0 4784 0188 2068 ldr r0, [r4] 4785 018a 4368 ldr r3, [r0, #4] 4786 018c 1C4A ldr r2, .L342 4787 018e 1340 ands r3, r2 4788 0190 039A ldr r2, [sp, #12] 4789 0192 9105 lsls r1, r2, #22 4790 0194 890D lsrs r1, r1, #22 4791 0196 FF22 movs r2, #255 4792 0198 1204 lsls r2, r2, #16 4793 019a 1143 orrs r1, r2 4794 019c 8022 movs r2, #128 4795 019e 5204 lsls r2, r2, #17 4796 01a0 0A43 orrs r2, r1 4797 01a2 1343 orrs r3, r2 4798 01a4 4360 str r3, [r0, #4] 4799 01a6 C1E7 b .L328 4800 .LVL425: 4801 .L340: 4802 .LBE237: 4803 .LBE236: 1840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4804 .loc 1 1840 0 4805 01a8 3200 movs r2, r6 4806 01aa 0E99 ldr r1, [sp, #56] 4807 01ac 2000 movs r0, r4 4808 01ae FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 4809 .LVL426: 4810 01b2 0028 cmp r0, #0 4811 01b4 04D0 beq .L331 1842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4812 .loc 1 1842 0 4813 01b6 636C ldr r3, [r4, #68] 4814 01b8 042B cmp r3, #4 ARM GAS /tmp/ccpuPECZ.s page 182 4815 01ba 1ED1 bne .L338 1844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4816 .loc 1 1844 0 4817 01bc 0120 movs r0, #1 4818 01be 10E0 b .L320 4819 .L331: 1853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4820 .loc 1 1853 0 4821 01c0 2368 ldr r3, [r4] 4822 01c2 2022 movs r2, #32 4823 01c4 DA61 str r2, [r3, #28] 1856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4824 .loc 1 1856 0 4825 01c6 2168 ldr r1, [r4] 4826 01c8 4B68 ldr r3, [r1, #4] 4827 01ca 0E4D ldr r5, .L342+4 4828 01cc 2B40 ands r3, r5 4829 01ce 4B60 str r3, [r1, #4] 1858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4830 .loc 1 1858 0 4831 01d0 4123 movs r3, #65 4832 01d2 E254 strb r2, [r4, r3] 1859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4833 .loc 1 1859 0 4834 01d4 0023 movs r3, #0 4835 01d6 2232 adds r2, r2, #34 4836 01d8 A354 strb r3, [r4, r2] 1862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4837 .loc 1 1862 0 4838 01da 023A subs r2, r2, #2 4839 01dc A354 strb r3, [r4, r2] 1864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4840 .loc 1 1864 0 4841 01de 00E0 b .L320 4842 .LVL427: 4843 .L332: 1868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4844 .loc 1 1868 0 4845 01e0 0220 movs r0, #2 4846 .LVL428: 4847 .L320: 1870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4848 .loc 1 1870 0 4849 01e2 07B0 add sp, sp, #28 4850 @ sp needed 4851 .LVL429: 4852 01e4 F0BD pop {r4, r5, r6, r7, pc} 4853 .LVL430: 4854 .L333: 1743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4855 .loc 1 1743 0 4856 01e6 0120 movs r0, #1 4857 .LVL431: 4858 01e8 FBE7 b .L320 4859 .LVL432: 4860 .L334: 4861 01ea 0120 movs r0, #1 ARM GAS /tmp/ccpuPECZ.s page 183 4862 .LVL433: 4863 01ec F9E7 b .L320 4864 .LVL434: 4865 .L335: 1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4866 .loc 1 1747 0 4867 01ee 0220 movs r0, #2 4868 .LVL435: 4869 01f0 F7E7 b .L320 4870 .LVL436: 4871 .L336: 1806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4872 .loc 1 1806 0 4873 01f2 0320 movs r0, #3 4874 01f4 F5E7 b .L320 4875 .L337: 1820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4876 .loc 1 1820 0 4877 01f6 0320 movs r0, #3 4878 01f8 F3E7 b .L320 4879 .L338: 1848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4880 .loc 1 1848 0 4881 01fa 0320 movs r0, #3 4882 01fc F1E7 b .L320 4883 .L343: 4884 01fe C046 .align 2 4885 .L342: 4886 0200 009C00FC .word -67068928 4887 0204 00E800FE .word -33495040 4888 .cfi_endproc 4889 .LFE55: 4891 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 4892 .align 1 4893 .global HAL_I2C_Mem_Read 4894 .syntax unified 4895 .code 16 4896 .thumb_func 4897 .fpu softvfp 4899 HAL_I2C_Mem_Read: 4900 .LFB56: 1886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 4901 .loc 1 1886 0 4902 .cfi_startproc 4903 @ args = 12, pretend = 0, frame = 16 4904 @ frame_needed = 0, uses_anonymous_args = 0 4905 .LVL437: 4906 0000 F0B5 push {r4, r5, r6, r7, lr} 4907 .LCFI32: 4908 .cfi_def_cfa_offset 20 4909 .cfi_offset 4, -20 4910 .cfi_offset 5, -16 4911 .cfi_offset 6, -12 4912 .cfi_offset 7, -8 4913 .cfi_offset 14, -4 4914 0002 87B0 sub sp, sp, #28 4915 .LCFI33: ARM GAS /tmp/ccpuPECZ.s page 184 4916 .cfi_def_cfa_offset 48 4917 0004 0400 movs r4, r0 4918 0006 0391 str r1, [sp, #12] 4919 0008 0492 str r2, [sp, #16] 4920 000a 0593 str r3, [sp, #20] 4921 000c 0CAB add r3, sp, #48 4922 .LVL438: 4923 000e 20CB ldmia r3!, {r5} 4924 .LVL439: 4925 0010 1F88 ldrh r7, [r3] 4926 .LVL440: 1892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4927 .loc 1 1892 0 4928 0012 4123 movs r3, #65 4929 .LVL441: 4930 0014 C35C ldrb r3, [r0, r3] 4931 0016 202B cmp r3, #32 4932 0018 00D0 beq .LCB5317 4933 001a F6E0 b .L345 @long jump 4934 .LCB5317: 1894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4935 .loc 1 1894 0 4936 001c 002D cmp r5, #0 4937 001e 22D0 beq .L346 1894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4938 .loc 1 1894 0 is_stmt 0 discriminator 1 4939 0020 002F cmp r7, #0 4940 0022 20D0 beq .L346 1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4941 .loc 1 1901 0 is_stmt 1 4942 0024 4023 movs r3, #64 4943 0026 C35C ldrb r3, [r0, r3] 4944 0028 012B cmp r3, #1 4945 002a 00D1 bne .LCB5325 4946 002c F2E0 b .L361 @long jump 4947 .LCB5325: 1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4948 .loc 1 1901 0 is_stmt 0 discriminator 2 4949 002e 4023 movs r3, #64 4950 0030 0122 movs r2, #1 4951 .LVL442: 4952 0032 C254 strb r2, [r0, r3] 1904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4953 .loc 1 1904 0 is_stmt 1 discriminator 2 4954 0034 FFF7FEFF bl HAL_GetTick 4955 .LVL443: 4956 0038 0600 movs r6, r0 4957 .LVL444: 4958 .L349: 4959 .LBB238: 4960 .LBB239: 4487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4961 .loc 1 4487 0 4962 003a 2368 ldr r3, [r4] 4963 003c 9B69 ldr r3, [r3, #24] 4964 003e 1B04 lsls r3, r3, #16 4965 0040 17D5 bpl .L363 ARM GAS /tmp/ccpuPECZ.s page 185 4492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 4966 .loc 1 4492 0 4967 0042 FFF7FEFF bl HAL_GetTick 4968 .LVL445: 4969 0046 801B subs r0, r0, r6 4970 0048 1928 cmp r0, #25 4971 004a F6D9 bls .L349 4494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4972 .loc 1 4494 0 4973 004c 4123 movs r3, #65 4974 004e 2022 movs r2, #32 4975 0050 E254 strb r2, [r4, r3] 4495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 4976 .loc 1 4495 0 4977 0052 0023 movs r3, #0 4978 0054 2232 adds r2, r2, #34 4979 0056 A354 strb r3, [r4, r2] 4498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4980 .loc 1 4498 0 4981 0058 023A subs r2, r2, #2 4982 005a A354 strb r3, [r4, r2] 4983 .LVL446: 4984 .LBE239: 4985 .LBE238: 1908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 4986 .loc 1 1908 0 4987 005c 6E48 ldr r0, .L369 4988 005e FFF7FEFF bl vcom_Send 4989 .LVL447: 1909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 4990 .loc 1 1909 0 4991 0062 0320 movs r0, #3 4992 0064 03E0 b .L348 4993 .LVL448: 4994 .L346: 1896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 4995 .loc 1 1896 0 4996 0066 6D48 ldr r0, .L369+4 4997 .LVL449: 4998 0068 FFF7FEFF bl vcom_Send 4999 .LVL450: 1897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5000 .loc 1 1897 0 5001 006c 0120 movs r0, #1 5002 .LVL451: 5003 .L348: 2023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 5004 .loc 1 2023 0 5005 006e 07B0 add sp, sp, #28 5006 @ sp needed 5007 .LVL452: 5008 0070 F0BD pop {r4, r5, r6, r7, pc} 5009 .LVL453: 5010 .L363: 1912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5011 .loc 1 1912 0 5012 0072 4123 movs r3, #65 ARM GAS /tmp/ccpuPECZ.s page 186 5013 0074 2222 movs r2, #34 5014 0076 E254 strb r2, [r4, r3] 1913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5015 .loc 1 1913 0 5016 0078 0133 adds r3, r3, #1 5017 007a 1E32 adds r2, r2, #30 5018 007c E254 strb r2, [r4, r3] 1914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5019 .loc 1 1914 0 5020 007e 0023 movs r3, #0 5021 0080 6364 str r3, [r4, #68] 1917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 5022 .loc 1 1917 0 5023 0082 6562 str r5, [r4, #36] 1918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5024 .loc 1 1918 0 5025 0084 6785 strh r7, [r4, #42] 1919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5026 .loc 1 1919 0 5027 0086 6363 str r3, [r4, #52] 1922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5028 .loc 1 1922 0 5029 0088 0196 str r6, [sp, #4] 5030 008a 0E9B ldr r3, [sp, #56] 5031 008c 0093 str r3, [sp] 5032 008e 059B ldr r3, [sp, #20] 5033 0090 049A ldr r2, [sp, #16] 5034 0092 0399 ldr r1, [sp, #12] 5035 0094 2000 movs r0, r4 5036 0096 FFF7FEFF bl I2C_RequestMemoryRead 5037 .LVL454: 5038 009a 0028 cmp r0, #0 5039 009c 14D1 bne .L364 1941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5040 .loc 1 1941 0 5041 009e 638D ldrh r3, [r4, #42] 5042 00a0 9BB2 uxth r3, r3 5043 00a2 FF2B cmp r3, #255 5044 00a4 21D9 bls .L353 1943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_READ 5045 .loc 1 1943 0 5046 00a6 FF23 movs r3, #255 5047 00a8 2385 strh r3, [r4, #40] 5048 .LVL455: 5049 .LBB240: 5050 .LBB241: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 5051 .loc 1 4713 0 5052 00aa 2068 ldr r0, [r4] 5053 00ac 4368 ldr r3, [r0, #4] 5054 00ae 5C4A ldr r2, .L369+8 5055 00b0 1340 ands r3, r2 5056 00b2 039A ldr r2, [sp, #12] 5057 00b4 9105 lsls r1, r2, #22 5058 00b6 890D lsrs r1, r1, #22 5059 00b8 FF22 movs r2, #255 5060 00ba 1204 lsls r2, r2, #16 ARM GAS /tmp/ccpuPECZ.s page 187 5061 00bc 1143 orrs r1, r2 5062 00be 594A ldr r2, .L369+12 5063 00c0 0A43 orrs r2, r1 5064 00c2 1343 orrs r3, r2 5065 00c4 4360 str r3, [r0, #4] 5066 00c6 42E0 b .L359 5067 .LVL456: 5068 .L364: 5069 .LBE241: 5070 .LBE240: 1924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) 5071 .loc 1 1924 0 5072 00c8 616C ldr r1, [r4, #68] 5073 00ca 5748 ldr r0, .L369+16 5074 00cc FFF7FEFF bl vcom_Send 5075 .LVL457: 1925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5076 .loc 1 1925 0 5077 00d0 636C ldr r3, [r4, #68] 5078 00d2 042B cmp r3, #4 5079 00d4 04D1 bne .L352 1928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 5080 .loc 1 1928 0 5081 00d6 3C33 adds r3, r3, #60 5082 00d8 0022 movs r2, #0 5083 00da E254 strb r2, [r4, r3] 1929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5084 .loc 1 1929 0 5085 00dc 0120 movs r0, #1 5086 00de C6E7 b .L348 5087 .L352: 1934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 5088 .loc 1 1934 0 5089 00e0 4023 movs r3, #64 5090 00e2 0022 movs r2, #0 5091 00e4 E254 strb r2, [r4, r3] 1935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5092 .loc 1 1935 0 5093 00e6 0320 movs r0, #3 5094 00e8 C1E7 b .L348 5095 .L353: 1948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_GENERATE_START_REA 5096 .loc 1 1948 0 5097 00ea 638D ldrh r3, [r4, #42] 5098 00ec 9BB2 uxth r3, r3 5099 00ee 2385 strh r3, [r4, #40] 1949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5100 .loc 1 1949 0 5101 00f0 DBB2 uxtb r3, r3 5102 .LVL458: 5103 .LBB242: 5104 .LBB243: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 5105 .loc 1 4713 0 5106 00f2 2068 ldr r0, [r4] 5107 00f4 4268 ldr r2, [r0, #4] 5108 00f6 4A49 ldr r1, .L369+8 ARM GAS /tmp/ccpuPECZ.s page 188 5109 00f8 0A40 ands r2, r1 5110 00fa 0399 ldr r1, [sp, #12] 5111 00fc 8905 lsls r1, r1, #22 5112 00fe 890D lsrs r1, r1, #22 5113 0100 1B04 lsls r3, r3, #16 5114 .LVL459: 5115 0102 0B43 orrs r3, r1 5116 0104 4949 ldr r1, .L369+20 5117 0106 0B43 orrs r3, r1 5118 0108 1343 orrs r3, r2 5119 010a 4360 str r3, [r0, #4] 5120 .LVL460: 5121 010c 1FE0 b .L359 5122 .LVL461: 5123 .L366: 5124 .LBE243: 5125 .LBE242: 1957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 5126 .loc 1 1957 0 5127 010e 4848 ldr r0, .L369+24 5128 0110 FFF7FEFF bl vcom_Send 5129 .LVL462: 1958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5130 .loc 1 1958 0 5131 0114 0320 movs r0, #3 5132 0116 AAE7 b .L348 5133 .L367: 1971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 5134 .loc 1 1971 0 5135 0118 4648 ldr r0, .L369+28 5136 011a FFF7FEFF bl vcom_Send 5137 .LVL463: 1972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5138 .loc 1 1972 0 5139 011e 0320 movs r0, #3 5140 0120 A5E7 b .L348 5141 .L358: 1982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5142 .loc 1 1982 0 5143 0122 638D ldrh r3, [r4, #42] 5144 0124 9BB2 uxth r3, r3 5145 0126 2385 strh r3, [r4, #40] 1983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5146 .loc 1 1983 0 5147 0128 DBB2 uxtb r3, r3 5148 .LVL464: 5149 .LBB244: 5150 .LBB245: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 5151 .loc 1 4713 0 5152 012a 2068 ldr r0, [r4] 5153 012c 4268 ldr r2, [r0, #4] 5154 012e 4249 ldr r1, .L369+32 5155 0130 0A40 ands r2, r1 5156 0132 0399 ldr r1, [sp, #12] 5157 0134 8905 lsls r1, r1, #22 5158 0136 890D lsrs r1, r1, #22 ARM GAS /tmp/ccpuPECZ.s page 189 5159 0138 1B04 lsls r3, r3, #16 5160 .LVL465: 5161 013a 0B43 orrs r3, r1 5162 013c 8021 movs r1, #128 5163 013e 8904 lsls r1, r1, #18 5164 0140 0B43 orrs r3, r1 5165 0142 1343 orrs r3, r2 5166 0144 4360 str r3, [r0, #4] 5167 .LVL466: 5168 .L356: 5169 .LBE245: 5170 .LBE244: 1987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5171 .loc 1 1987 0 5172 0146 638D ldrh r3, [r4, #42] 5173 0148 9BB2 uxth r3, r3 5174 014a 002B cmp r3, #0 5175 014c 3BD0 beq .L365 5176 .L359: 1955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5177 .loc 1 1955 0 5178 014e 0096 str r6, [sp] 5179 0150 0E9B ldr r3, [sp, #56] 5180 0152 0022 movs r2, #0 5181 0154 0421 movs r1, #4 5182 0156 2000 movs r0, r4 5183 0158 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5184 .LVL467: 5185 015c 0028 cmp r0, #0 5186 015e D6D1 bne .L366 1962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 5187 .loc 1 1962 0 5188 0160 2368 ldr r3, [r4] 5189 0162 5A6A ldr r2, [r3, #36] 5190 0164 636A ldr r3, [r4, #36] 5191 0166 591C adds r1, r3, #1 5192 0168 6162 str r1, [r4, #36] 5193 016a 1A70 strb r2, [r3] 1963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 5194 .loc 1 1963 0 5195 016c 238D ldrh r3, [r4, #40] 5196 016e 013B subs r3, r3, #1 5197 0170 9BB2 uxth r3, r3 5198 0172 2385 strh r3, [r4, #40] 1964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5199 .loc 1 1964 0 5200 0174 628D ldrh r2, [r4, #42] 5201 0176 013A subs r2, r2, #1 5202 0178 92B2 uxth r2, r2 5203 017a 6285 strh r2, [r4, #42] 1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5204 .loc 1 1966 0 5205 017c 002B cmp r3, #0 5206 017e E2D1 bne .L356 1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5207 .loc 1 1966 0 is_stmt 0 discriminator 1 5208 0180 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccpuPECZ.s page 190 5209 0182 9BB2 uxth r3, r3 5210 0184 002B cmp r3, #0 5211 0186 DED0 beq .L356 1969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5212 .loc 1 1969 0 is_stmt 1 5213 0188 0096 str r6, [sp] 5214 018a 0E9B ldr r3, [sp, #56] 5215 018c 0022 movs r2, #0 5216 018e 8021 movs r1, #128 5217 0190 2000 movs r0, r4 5218 0192 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5219 .LVL468: 5220 0196 0028 cmp r0, #0 5221 0198 BED1 bne .L367 1975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5222 .loc 1 1975 0 5223 019a 638D ldrh r3, [r4, #42] 5224 019c 9BB2 uxth r3, r3 5225 019e FF2B cmp r3, #255 5226 01a0 BFD9 bls .L358 1977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5227 .loc 1 1977 0 5228 01a2 FF23 movs r3, #255 5229 01a4 2385 strh r3, [r4, #40] 5230 .LVL469: 5231 .LBB246: 5232 .LBB247: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 5233 .loc 1 4713 0 5234 01a6 2068 ldr r0, [r4] 5235 01a8 4368 ldr r3, [r0, #4] 5236 01aa 234A ldr r2, .L369+32 5237 01ac 1340 ands r3, r2 5238 01ae 039A ldr r2, [sp, #12] 5239 01b0 9105 lsls r1, r2, #22 5240 01b2 890D lsrs r1, r1, #22 5241 01b4 FF22 movs r2, #255 5242 01b6 1204 lsls r2, r2, #16 5243 01b8 1143 orrs r1, r2 5244 01ba 8022 movs r2, #128 5245 01bc 5204 lsls r2, r2, #17 5246 01be 0A43 orrs r2, r1 5247 01c0 1343 orrs r3, r2 5248 01c2 4360 str r3, [r0, #4] 5249 01c4 BFE7 b .L356 5250 .LVL470: 5251 .L365: 5252 .LBE247: 5253 .LBE246: 1991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5254 .loc 1 1991 0 5255 01c6 3200 movs r2, r6 5256 01c8 0E99 ldr r1, [sp, #56] 5257 01ca 2000 movs r0, r4 5258 01cc FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5259 .LVL471: 5260 01d0 0028 cmp r0, #0 ARM GAS /tmp/ccpuPECZ.s page 191 5261 01d2 0AD0 beq .L360 1993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5262 .loc 1 1993 0 5263 01d4 636C ldr r3, [r4, #68] 5264 01d6 042B cmp r3, #4 5265 01d8 01D0 beq .L368 2000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5266 .loc 1 2000 0 5267 01da 0320 movs r0, #3 5268 01dc 47E7 b .L348 5269 .L368: 1995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 5270 .loc 1 1995 0 5271 01de 616C ldr r1, [r4, #68] 5272 01e0 1648 ldr r0, .L369+36 5273 01e2 FFF7FEFF bl vcom_Send 5274 .LVL472: 1996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5275 .loc 1 1996 0 5276 01e6 0120 movs r0, #1 5277 01e8 41E7 b .L348 5278 .L360: 2005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5279 .loc 1 2005 0 5280 01ea 2368 ldr r3, [r4] 5281 01ec 2022 movs r2, #32 5282 01ee DA61 str r2, [r3, #28] 2008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5283 .loc 1 2008 0 5284 01f0 2168 ldr r1, [r4] 5285 01f2 4B68 ldr r3, [r1, #4] 5286 01f4 124D ldr r5, .L369+40 5287 01f6 2B40 ands r3, r5 5288 01f8 4B60 str r3, [r1, #4] 2010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5289 .loc 1 2010 0 5290 01fa 4123 movs r3, #65 5291 01fc E254 strb r2, [r4, r3] 2011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5292 .loc 1 2011 0 5293 01fe 0023 movs r3, #0 5294 0200 2232 adds r2, r2, #34 5295 0202 A354 strb r3, [r4, r2] 2014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5296 .loc 1 2014 0 5297 0204 023A subs r2, r2, #2 5298 0206 A354 strb r3, [r4, r2] 2016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5299 .loc 1 2016 0 5300 0208 31E7 b .L348 5301 .LVL473: 5302 .L345: 2020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_BUSY; 5303 .loc 1 2020 0 5304 020a 0E48 ldr r0, .L369+44 5305 .LVL474: 5306 020c FFF7FEFF bl vcom_Send ARM GAS /tmp/ccpuPECZ.s page 192 5307 .LVL475: 2021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5308 .loc 1 2021 0 5309 0210 0220 movs r0, #2 5310 0212 2CE7 b .L348 5311 .LVL476: 5312 .L361: 1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5313 .loc 1 1901 0 5314 0214 0220 movs r0, #2 5315 .LVL477: 5316 0216 2AE7 b .L348 5317 .L370: 5318 .align 2 5319 .L369: 5320 0218 18000000 .word .LC40 5321 021c 00000000 .word .LC38 5322 0220 009800FC .word -67069952 5323 0224 00240081 .word -2130697216 5324 0228 24000000 .word .LC42 5325 022c 00240082 .word -2113920000 5326 0230 40000000 .word .LC44 5327 0234 5C000000 .word .LC46 5328 0238 009C00FC .word -67068928 5329 023c 78000000 .word .LC48 5330 0240 00E800FE .word -33495040 5331 0244 94000000 .word .LC50 5332 .cfi_endproc 5333 .LFE56: 5335 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5336 .align 1 5337 .global HAL_I2C_Mem_Write_IT 5338 .syntax unified 5339 .code 16 5340 .thumb_func 5341 .fpu softvfp 5343 HAL_I2C_Mem_Write_IT: 5344 .LFB57: 2037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 5345 .loc 1 2037 0 5346 .cfi_startproc 5347 @ args = 8, pretend = 0, frame = 8 5348 @ frame_needed = 0, uses_anonymous_args = 0 5349 .LVL478: 5350 0000 F0B5 push {r4, r5, r6, r7, lr} 5351 .LCFI34: 5352 .cfi_def_cfa_offset 20 5353 .cfi_offset 4, -20 5354 .cfi_offset 5, -16 5355 .cfi_offset 6, -12 5356 .cfi_offset 7, -8 5357 .cfi_offset 14, -4 5358 0002 D646 mov lr, r10 5359 0004 4746 mov r7, r8 5360 0006 80B5 push {r7, lr} 5361 .LCFI35: 5362 .cfi_def_cfa_offset 28 ARM GAS /tmp/ccpuPECZ.s page 193 5363 .cfi_offset 8, -28 5364 .cfi_offset 10, -24 5365 0008 85B0 sub sp, sp, #20 5366 .LCFI36: 5367 .cfi_def_cfa_offset 48 5368 000a 0700 movs r7, r0 5369 000c 0C00 movs r4, r1 5370 000e 0292 str r2, [sp, #8] 5371 0010 0393 str r3, [sp, #12] 5372 0012 0CAB add r3, sp, #48 5373 .LVL479: 5374 0014 40CB ldmia r3!, {r6} 5375 .LVL480: 5376 0016 1D88 ldrh r5, [r3] 5377 .LVL481: 2044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5378 .loc 1 2044 0 5379 0018 4123 movs r3, #65 5380 .LVL482: 5381 001a C35C ldrb r3, [r0, r3] 5382 001c 202B cmp r3, #32 5383 001e 6DD1 bne .L378 2046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5384 .loc 1 2046 0 5385 0020 002E cmp r6, #0 5386 0022 00D1 bne .LCB5833 5387 0024 70E0 b .L379 @long jump 5388 .LCB5833: 2046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5389 .loc 1 2046 0 is_stmt 0 discriminator 1 5390 0026 002D cmp r5, #0 5391 0028 00D1 bne .LCB5835 5392 002a 6FE0 b .L380 @long jump 5393 .LCB5835: 2051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5394 .loc 1 2051 0 is_stmt 1 5395 002c 0368 ldr r3, [r0] 5396 002e 9B69 ldr r3, [r3, #24] 5397 0030 1B04 lsls r3, r3, #16 5398 0032 00D5 bpl .LCB5841 5399 0034 6CE0 b .L381 @long jump 5400 .LCB5841: 2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5401 .loc 1 2057 0 5402 0036 4023 movs r3, #64 5403 0038 C35C ldrb r3, [r0, r3] 5404 003a 012B cmp r3, #1 5405 003c 6AD0 beq .L382 2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5406 .loc 1 2057 0 is_stmt 0 discriminator 2 5407 003e 4023 movs r3, #64 5408 0040 9A46 mov r10, r3 5409 0042 3F3B subs r3, r3, #63 5410 0044 5246 mov r2, r10 5411 .LVL483: 5412 0046 8354 strb r3, [r0, r2] 2060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 194 5413 .loc 1 2060 0 is_stmt 1 discriminator 2 5414 0048 FFF7FEFF bl HAL_GetTick 5415 .LVL484: 2062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5416 .loc 1 2062 0 discriminator 2 5417 004c 4123 movs r3, #65 5418 004e 2122 movs r2, #33 5419 0050 FA54 strb r2, [r7, r3] 2063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5420 .loc 1 2063 0 discriminator 2 5421 0052 0133 adds r3, r3, #1 5422 0054 5246 mov r2, r10 5423 0056 FA54 strb r2, [r7, r3] 2064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5424 .loc 1 2064 0 discriminator 2 5425 0058 0023 movs r3, #0 5426 005a 7B64 str r3, [r7, #68] 2067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 5427 .loc 1 2067 0 discriminator 2 5428 005c 7E62 str r6, [r7, #36] 2068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5429 .loc 1 2068 0 discriminator 2 5430 005e 7D85 strh r5, [r7, #42] 2069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5431 .loc 1 2069 0 discriminator 2 5432 0060 2D4B ldr r3, .L386 5433 0062 FB62 str r3, [r7, #44] 2070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5434 .loc 1 2070 0 discriminator 2 5435 0064 2D4B ldr r3, .L386+4 5436 0066 7B63 str r3, [r7, #52] 2072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5437 .loc 1 2072 0 discriminator 2 5438 0068 7B8D ldrh r3, [r7, #42] 5439 006a 9BB2 uxth r3, r3 5440 006c FF2B cmp r3, #255 5441 006e 17D9 bls .L373 2074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5442 .loc 1 2074 0 5443 0070 FF23 movs r3, #255 5444 0072 3B85 strh r3, [r7, #40] 5445 .LVL485: 2075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5446 .loc 1 2075 0 5447 0074 8023 movs r3, #128 5448 0076 5B04 lsls r3, r3, #17 5449 0078 9846 mov r8, r3 5450 .LVL486: 5451 .L374: 2084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5452 .loc 1 2084 0 5453 007a 0190 str r0, [sp, #4] 5454 007c 1923 movs r3, #25 5455 007e 0093 str r3, [sp] 5456 0080 039B ldr r3, [sp, #12] 5457 0082 029A ldr r2, [sp, #8] 5458 0084 2100 movs r1, r4 ARM GAS /tmp/ccpuPECZ.s page 195 5459 0086 3800 movs r0, r7 5460 .LVL487: 5461 0088 FFF7FEFF bl I2C_RequestMemoryWrite 5462 .LVL488: 5463 008c 0028 cmp r0, #0 5464 008e 12D0 beq .L375 2086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5465 .loc 1 2086 0 5466 0090 7B6C ldr r3, [r7, #68] 5467 0092 042B cmp r3, #4 5468 0094 0AD1 bne .L376 2089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 5469 .loc 1 2089 0 5470 0096 3C33 adds r3, r3, #60 5471 0098 0022 movs r2, #0 5472 009a FA54 strb r2, [r7, r3] 2090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5473 .loc 1 2090 0 5474 009c 0120 movs r0, #1 5475 009e 2EE0 b .L372 5476 .LVL489: 5477 .L373: 2079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5478 .loc 1 2079 0 5479 00a0 7B8D ldrh r3, [r7, #42] 5480 00a2 3B85 strh r3, [r7, #40] 5481 .LVL490: 2080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5482 .loc 1 2080 0 5483 00a4 8023 movs r3, #128 5484 00a6 9B04 lsls r3, r3, #18 5485 00a8 9846 mov r8, r3 5486 00aa E6E7 b .L374 5487 .LVL491: 5488 .L376: 2095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 5489 .loc 1 2095 0 5490 00ac 4023 movs r3, #64 5491 00ae 0022 movs r2, #0 5492 00b0 FA54 strb r2, [r7, r3] 2096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5493 .loc 1 2096 0 5494 00b2 0320 movs r0, #3 5495 00b4 23E0 b .L372 5496 .L375: 2101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5497 .loc 1 2101 0 5498 00b6 3A8D ldrh r2, [r7, #40] 5499 00b8 D2B2 uxtb r2, r2 5500 .LVL492: 5501 .LBB248: 5502 .LBB249: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 5503 .loc 1 4713 0 5504 00ba 3968 ldr r1, [r7] 5505 00bc 4B68 ldr r3, [r1, #4] 5506 00be 184D ldr r5, .L386+8 ARM GAS /tmp/ccpuPECZ.s page 196 5507 00c0 2B40 ands r3, r5 5508 00c2 A405 lsls r4, r4, #22 5509 .LVL493: 5510 00c4 A40D lsrs r4, r4, #22 5511 00c6 1204 lsls r2, r2, #16 5512 .LVL494: 5513 00c8 1443 orrs r4, r2 5514 00ca 4246 mov r2, r8 5515 00cc 2243 orrs r2, r4 5516 00ce 1400 movs r4, r2 5517 00d0 1C43 orrs r4, r3 5518 00d2 4C60 str r4, [r1, #4] 5519 .LVL495: 5520 .LBE249: 5521 .LBE248: 2104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5522 .loc 1 2104 0 5523 00d4 4023 movs r3, #64 5524 00d6 0022 movs r2, #0 5525 00d8 FA54 strb r2, [r7, r3] 5526 .LVL496: 5527 .LBB250: 5528 .LBB251: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 5529 .loc 1 4728 0 5530 00da 7B6B ldr r3, [r7, #52] 5531 00dc 114A ldr r2, .L386+12 5532 00de 9342 cmp r3, r2 5533 00e0 0AD0 beq .L383 5534 00e2 114A ldr r2, .L386+16 5535 00e4 9342 cmp r3, r2 5536 00e6 05D0 beq .L385 5537 00e8 F221 movs r1, #242 5538 .L377: 5539 .LVL497: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5540 .loc 1 4785 0 5541 00ea 3A68 ldr r2, [r7] 5542 00ec 1368 ldr r3, [r2] 5543 00ee 0B43 orrs r3, r1 5544 00f0 1360 str r3, [r2] 5545 .LVL498: 5546 .LBE251: 5547 .LBE250: 2115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5548 .loc 1 2115 0 5549 00f2 04E0 b .L372 5550 .LVL499: 5551 .L385: 5552 .LBB253: 5553 .LBB252: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 5554 .loc 1 4728 0 5555 00f4 0021 movs r1, #0 5556 00f6 F8E7 b .L377 5557 .L383: 5558 00f8 0021 movs r1, #0 ARM GAS /tmp/ccpuPECZ.s page 197 5559 00fa F6E7 b .L377 5560 .LVL500: 5561 .L378: 5562 .LBE252: 5563 .LBE253: 2119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5564 .loc 1 2119 0 5565 00fc 0220 movs r0, #2 5566 .LVL501: 5567 .L372: 2121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5568 .loc 1 2121 0 5569 00fe 05B0 add sp, sp, #20 5570 @ sp needed 5571 .LVL502: 5572 0100 0CBC pop {r2, r3} 5573 0102 9046 mov r8, r2 5574 0104 9A46 mov r10, r3 5575 0106 F0BD pop {r4, r5, r6, r7, pc} 5576 .LVL503: 5577 .L379: 2048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5578 .loc 1 2048 0 5579 0108 0120 movs r0, #1 5580 .LVL504: 5581 010a F8E7 b .L372 5582 .LVL505: 5583 .L380: 5584 010c 0120 movs r0, #1 5585 .LVL506: 5586 010e F6E7 b .L372 5587 .LVL507: 5588 .L381: 2053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5589 .loc 1 2053 0 5590 0110 0220 movs r0, #2 5591 .LVL508: 5592 0112 F4E7 b .L372 5593 .LVL509: 5594 .L382: 2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5595 .loc 1 2057 0 5596 0114 0220 movs r0, #2 5597 .LVL510: 5598 0116 F2E7 b .L372 5599 .L387: 5600 .align 2 5601 .L386: 5602 0118 0000FFFF .word -65536 5603 011c 00000000 .word I2C_Master_ISR_IT 5604 0120 009C00FC .word -67068928 5605 0124 00000000 .word I2C_Master_ISR_DMA 5606 0128 00000000 .word I2C_Slave_ISR_DMA 5607 .cfi_endproc 5608 .LFE57: 5610 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 5611 .align 1 ARM GAS /tmp/ccpuPECZ.s page 198 5612 .global HAL_I2C_Mem_Read_IT 5613 .syntax unified 5614 .code 16 5615 .thumb_func 5616 .fpu softvfp 5618 HAL_I2C_Mem_Read_IT: 5619 .LFB58: 2136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 5620 .loc 1 2136 0 5621 .cfi_startproc 5622 @ args = 8, pretend = 0, frame = 8 5623 @ frame_needed = 0, uses_anonymous_args = 0 5624 .LVL511: 5625 0000 F0B5 push {r4, r5, r6, r7, lr} 5626 .LCFI37: 5627 .cfi_def_cfa_offset 20 5628 .cfi_offset 4, -20 5629 .cfi_offset 5, -16 5630 .cfi_offset 6, -12 5631 .cfi_offset 7, -8 5632 .cfi_offset 14, -4 5633 0002 D646 mov lr, r10 5634 0004 4746 mov r7, r8 5635 0006 80B5 push {r7, lr} 5636 .LCFI38: 5637 .cfi_def_cfa_offset 28 5638 .cfi_offset 8, -28 5639 .cfi_offset 10, -24 5640 0008 85B0 sub sp, sp, #20 5641 .LCFI39: 5642 .cfi_def_cfa_offset 48 5643 000a 0700 movs r7, r0 5644 000c 0C00 movs r4, r1 5645 000e 0292 str r2, [sp, #8] 5646 0010 0393 str r3, [sp, #12] 5647 0012 0CAB add r3, sp, #48 5648 .LVL512: 5649 0014 40CB ldmia r3!, {r6} 5650 .LVL513: 5651 0016 1D88 ldrh r5, [r3] 5652 .LVL514: 2143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5653 .loc 1 2143 0 5654 0018 4123 movs r3, #65 5655 .LVL515: 5656 001a C35C ldrb r3, [r0, r3] 5657 001c 202B cmp r3, #32 5658 001e 70D1 bne .L395 2145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5659 .loc 1 2145 0 5660 0020 002E cmp r6, #0 5661 0022 00D1 bne .LCB6150 5662 0024 73E0 b .L396 @long jump 5663 .LCB6150: 2145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5664 .loc 1 2145 0 is_stmt 0 discriminator 1 5665 0026 002D cmp r5, #0 ARM GAS /tmp/ccpuPECZ.s page 199 5666 0028 00D1 bne .LCB6152 5667 002a 72E0 b .L397 @long jump 5668 .LCB6152: 2150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5669 .loc 1 2150 0 is_stmt 1 5670 002c 0368 ldr r3, [r0] 5671 002e 9B69 ldr r3, [r3, #24] 5672 0030 1B04 lsls r3, r3, #16 5673 0032 00D5 bpl .LCB6158 5674 0034 6FE0 b .L398 @long jump 5675 .LCB6158: 2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5676 .loc 1 2156 0 5677 0036 4023 movs r3, #64 5678 0038 C35C ldrb r3, [r0, r3] 5679 003a 012B cmp r3, #1 5680 003c 00D1 bne .LCB6162 5681 003e 6CE0 b .L399 @long jump 5682 .LCB6162: 2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5683 .loc 1 2156 0 is_stmt 0 discriminator 2 5684 0040 4023 movs r3, #64 5685 0042 9A46 mov r10, r3 5686 0044 3F3B subs r3, r3, #63 5687 0046 5246 mov r2, r10 5688 .LVL516: 5689 0048 8354 strb r3, [r0, r2] 2159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5690 .loc 1 2159 0 is_stmt 1 discriminator 2 5691 004a FFF7FEFF bl HAL_GetTick 5692 .LVL517: 2161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5693 .loc 1 2161 0 discriminator 2 5694 004e 4123 movs r3, #65 5695 0050 2222 movs r2, #34 5696 0052 FA54 strb r2, [r7, r3] 2162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5697 .loc 1 2162 0 discriminator 2 5698 0054 0133 adds r3, r3, #1 5699 0056 5246 mov r2, r10 5700 0058 FA54 strb r2, [r7, r3] 2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5701 .loc 1 2163 0 discriminator 2 5702 005a 0023 movs r3, #0 5703 005c 7B64 str r3, [r7, #68] 2166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 5704 .loc 1 2166 0 discriminator 2 5705 005e 7E62 str r6, [r7, #36] 2167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5706 .loc 1 2167 0 discriminator 2 5707 0060 7D85 strh r5, [r7, #42] 2168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 5708 .loc 1 2168 0 discriminator 2 5709 0062 2F4B ldr r3, .L403 5710 0064 FB62 str r3, [r7, #44] 2169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5711 .loc 1 2169 0 discriminator 2 ARM GAS /tmp/ccpuPECZ.s page 200 5712 0066 2F4B ldr r3, .L403+4 5713 0068 7B63 str r3, [r7, #52] 2171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5714 .loc 1 2171 0 discriminator 2 5715 006a 7B8D ldrh r3, [r7, #42] 5716 006c 9BB2 uxth r3, r3 5717 006e FF2B cmp r3, #255 5718 0070 17D9 bls .L390 2173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5719 .loc 1 2173 0 5720 0072 FF23 movs r3, #255 5721 0074 3B85 strh r3, [r7, #40] 5722 .LVL518: 2174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5723 .loc 1 2174 0 5724 0076 8023 movs r3, #128 5725 0078 5B04 lsls r3, r3, #17 5726 007a 9846 mov r8, r3 5727 .LVL519: 5728 .L391: 2183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5729 .loc 1 2183 0 5730 007c 0190 str r0, [sp, #4] 5731 007e 1923 movs r3, #25 5732 0080 0093 str r3, [sp] 5733 0082 039B ldr r3, [sp, #12] 5734 0084 029A ldr r2, [sp, #8] 5735 0086 2100 movs r1, r4 5736 0088 3800 movs r0, r7 5737 .LVL520: 5738 008a FFF7FEFF bl I2C_RequestMemoryRead 5739 .LVL521: 5740 008e 0028 cmp r0, #0 5741 0090 12D0 beq .L392 2185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5742 .loc 1 2185 0 5743 0092 7B6C ldr r3, [r7, #68] 5744 0094 042B cmp r3, #4 5745 0096 0AD1 bne .L393 2188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 5746 .loc 1 2188 0 5747 0098 3C33 adds r3, r3, #60 5748 009a 0022 movs r2, #0 5749 009c FA54 strb r2, [r7, r3] 2189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5750 .loc 1 2189 0 5751 009e 0120 movs r0, #1 5752 00a0 30E0 b .L389 5753 .LVL522: 5754 .L390: 2178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5755 .loc 1 2178 0 5756 00a2 7B8D ldrh r3, [r7, #42] 5757 00a4 3B85 strh r3, [r7, #40] 5758 .LVL523: 2179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5759 .loc 1 2179 0 ARM GAS /tmp/ccpuPECZ.s page 201 5760 00a6 8023 movs r3, #128 5761 00a8 9B04 lsls r3, r3, #18 5762 00aa 9846 mov r8, r3 5763 00ac E6E7 b .L391 5764 .LVL524: 5765 .L393: 2194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 5766 .loc 1 2194 0 5767 00ae 4023 movs r3, #64 5768 00b0 0022 movs r2, #0 5769 00b2 FA54 strb r2, [r7, r3] 2195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5770 .loc 1 2195 0 5771 00b4 0320 movs r0, #3 5772 00b6 25E0 b .L389 5773 .L392: 2200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5774 .loc 1 2200 0 5775 00b8 3B8D ldrh r3, [r7, #40] 5776 00ba DBB2 uxtb r3, r3 5777 .LVL525: 5778 .LBB254: 5779 .LBB255: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 5780 .loc 1 4713 0 5781 00bc 3968 ldr r1, [r7] 5782 00be 4D68 ldr r5, [r1, #4] 5783 00c0 194A ldr r2, .L403+8 5784 00c2 2A40 ands r2, r5 5785 00c4 A405 lsls r4, r4, #22 5786 .LVL526: 5787 00c6 A40D lsrs r4, r4, #22 5788 00c8 1B04 lsls r3, r3, #16 5789 .LVL527: 5790 00ca 1C43 orrs r4, r3 5791 00cc 4346 mov r3, r8 5792 00ce 2343 orrs r3, r4 5793 00d0 1C00 movs r4, r3 5794 00d2 164B ldr r3, .L403+12 5795 00d4 1C43 orrs r4, r3 5796 00d6 1443 orrs r4, r2 5797 00d8 4C60 str r4, [r1, #4] 5798 .LVL528: 5799 .LBE255: 5800 .LBE254: 2203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5801 .loc 1 2203 0 5802 00da 4023 movs r3, #64 5803 00dc 0022 movs r2, #0 5804 00de FA54 strb r2, [r7, r3] 5805 .LVL529: 5806 .LBB256: 5807 .LBB257: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 5808 .loc 1 4728 0 5809 00e0 7B6B ldr r3, [r7, #52] 5810 00e2 134A ldr r2, .L403+16 ARM GAS /tmp/ccpuPECZ.s page 202 5811 00e4 9342 cmp r3, r2 5812 00e6 0AD0 beq .L400 5813 00e8 124A ldr r2, .L403+20 5814 00ea 9342 cmp r3, r2 5815 00ec 05D0 beq .L402 5816 00ee F421 movs r1, #244 5817 .L394: 5818 .LVL530: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5819 .loc 1 4785 0 5820 00f0 3A68 ldr r2, [r7] 5821 00f2 1368 ldr r3, [r2] 5822 00f4 0B43 orrs r3, r1 5823 00f6 1360 str r3, [r2] 5824 .LVL531: 5825 .LBE257: 5826 .LBE256: 2214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5827 .loc 1 2214 0 5828 00f8 04E0 b .L389 5829 .LVL532: 5830 .L402: 5831 .LBB259: 5832 .LBB258: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 5833 .loc 1 4728 0 5834 00fa 0021 movs r1, #0 5835 00fc F8E7 b .L394 5836 .L400: 5837 00fe 0021 movs r1, #0 5838 0100 F6E7 b .L394 5839 .LVL533: 5840 .L395: 5841 .LBE258: 5842 .LBE259: 2218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5843 .loc 1 2218 0 5844 0102 0220 movs r0, #2 5845 .LVL534: 5846 .L389: 2220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /** 5847 .loc 1 2220 0 5848 0104 05B0 add sp, sp, #20 5849 @ sp needed 5850 .LVL535: 5851 0106 0CBC pop {r2, r3} 5852 0108 9046 mov r8, r2 5853 010a 9A46 mov r10, r3 5854 010c F0BD pop {r4, r5, r6, r7, pc} 5855 .LVL536: 5856 .L396: 2147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5857 .loc 1 2147 0 5858 010e 0120 movs r0, #1 5859 .LVL537: 5860 0110 F8E7 b .L389 5861 .LVL538: ARM GAS /tmp/ccpuPECZ.s page 203 5862 .L397: 5863 0112 0120 movs r0, #1 5864 .LVL539: 5865 0114 F6E7 b .L389 5866 .LVL540: 5867 .L398: 2152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5868 .loc 1 2152 0 5869 0116 0220 movs r0, #2 5870 .LVL541: 5871 0118 F4E7 b .L389 5872 .LVL542: 5873 .L399: 2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5874 .loc 1 2156 0 5875 011a 0220 movs r0, #2 5876 .LVL543: 5877 011c F2E7 b .L389 5878 .L404: 5879 011e C046 .align 2 5880 .L403: 5881 0120 0000FFFF .word -65536 5882 0124 00000000 .word I2C_Master_ISR_IT 5883 0128 009800FC .word -67069952 5884 012c 00240080 .word -2147474432 5885 0130 00000000 .word I2C_Master_ISR_DMA 5886 0134 00000000 .word I2C_Slave_ISR_DMA 5887 .cfi_endproc 5888 .LFE58: 5890 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 5891 .align 1 5892 .global HAL_I2C_Mem_Write_DMA 5893 .syntax unified 5894 .code 16 5895 .thumb_func 5896 .fpu softvfp 5898 HAL_I2C_Mem_Write_DMA: 5899 .LFB59: 2234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 5900 .loc 1 2234 0 5901 .cfi_startproc 5902 @ args = 8, pretend = 0, frame = 16 5903 @ frame_needed = 0, uses_anonymous_args = 0 5904 .LVL544: 5905 0000 F0B5 push {r4, r5, r6, r7, lr} 5906 .LCFI40: 5907 .cfi_def_cfa_offset 20 5908 .cfi_offset 4, -20 5909 .cfi_offset 5, -16 5910 .cfi_offset 6, -12 5911 .cfi_offset 7, -8 5912 .cfi_offset 14, -4 5913 0002 CE46 mov lr, r9 5914 0004 00B5 push {lr} 5915 .LCFI41: 5916 .cfi_def_cfa_offset 24 5917 .cfi_offset 9, -24 ARM GAS /tmp/ccpuPECZ.s page 204 5918 0006 86B0 sub sp, sp, #24 5919 .LCFI42: 5920 .cfi_def_cfa_offset 48 5921 0008 0400 movs r4, r0 5922 000a 0391 str r1, [sp, #12] 5923 000c 0492 str r2, [sp, #16] 5924 000e 0593 str r3, [sp, #20] 5925 0010 0CAB add r3, sp, #48 5926 .LVL545: 5927 0012 20CB ldmia r3!, {r5} 5928 .LVL546: 5929 0014 1E88 ldrh r6, [r3] 5930 .LVL547: 2241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5931 .loc 1 2241 0 5932 0016 4123 movs r3, #65 5933 .LVL548: 5934 0018 C35C ldrb r3, [r0, r3] 5935 001a 202B cmp r3, #32 5936 001c 00D0 beq .LCB6466 5937 001e 88E0 b .L412 @long jump 5938 .LCB6466: 2243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5939 .loc 1 2243 0 5940 0020 002D cmp r5, #0 5941 0022 00D1 bne .LCB6468 5942 0024 8BE0 b .L413 @long jump 5943 .LCB6468: 2243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5944 .loc 1 2243 0 is_stmt 0 discriminator 1 5945 0026 002E cmp r6, #0 5946 0028 00D1 bne .LCB6470 5947 002a 8AE0 b .L414 @long jump 5948 .LCB6470: 2248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5949 .loc 1 2248 0 is_stmt 1 5950 002c 0368 ldr r3, [r0] 5951 002e 9B69 ldr r3, [r3, #24] 5952 0030 1B04 lsls r3, r3, #16 5953 0032 00D5 bpl .LCB6476 5954 0034 87E0 b .L415 @long jump 5955 .LCB6476: 2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5956 .loc 1 2254 0 5957 0036 4023 movs r3, #64 5958 0038 C35C ldrb r3, [r0, r3] 5959 003a 012B cmp r3, #1 5960 003c 00D1 bne .LCB6480 5961 003e 84E0 b .L416 @long jump 5962 .LCB6480: 2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5963 .loc 1 2254 0 is_stmt 0 discriminator 2 5964 0040 4027 movs r7, #64 5965 0042 0123 movs r3, #1 5966 0044 C355 strb r3, [r0, r7] 2257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5967 .loc 1 2257 0 is_stmt 1 discriminator 2 ARM GAS /tmp/ccpuPECZ.s page 205 5968 0046 FFF7FEFF bl HAL_GetTick 5969 .LVL549: 2259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5970 .loc 1 2259 0 discriminator 2 5971 004a 4123 movs r3, #65 5972 004c 2122 movs r2, #33 5973 004e E254 strb r2, [r4, r3] 2260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5974 .loc 1 2260 0 discriminator 2 5975 0050 0133 adds r3, r3, #1 5976 0052 E754 strb r7, [r4, r3] 2261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5977 .loc 1 2261 0 discriminator 2 5978 0054 0023 movs r3, #0 5979 0056 6364 str r3, [r4, #68] 2264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 5980 .loc 1 2264 0 discriminator 2 5981 0058 6562 str r5, [r4, #36] 2265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5982 .loc 1 2265 0 discriminator 2 5983 005a 6685 strh r6, [r4, #42] 2266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 5984 .loc 1 2266 0 discriminator 2 5985 005c 3C4B ldr r3, .L420 5986 005e E362 str r3, [r4, #44] 2267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 5987 .loc 1 2267 0 discriminator 2 5988 0060 3C4B ldr r3, .L420+4 5989 0062 6363 str r3, [r4, #52] 2269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 5990 .loc 1 2269 0 discriminator 2 5991 0064 638D ldrh r3, [r4, #42] 5992 0066 9BB2 uxth r3, r3 5993 0068 FF2B cmp r3, #255 5994 006a 17D9 bls .L407 2271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5995 .loc 1 2271 0 5996 006c FF23 movs r3, #255 5997 006e 2385 strh r3, [r4, #40] 5998 .LVL550: 2272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 5999 .loc 1 2272 0 6000 0070 8023 movs r3, #128 6001 0072 5B04 lsls r3, r3, #17 6002 0074 9946 mov r9, r3 6003 .LVL551: 6004 .L408: 2281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6005 .loc 1 2281 0 6006 0076 0190 str r0, [sp, #4] 6007 0078 1923 movs r3, #25 6008 007a 0093 str r3, [sp] 6009 007c 059B ldr r3, [sp, #20] 6010 007e 049A ldr r2, [sp, #16] 6011 0080 0399 ldr r1, [sp, #12] 6012 0082 2000 movs r0, r4 6013 .LVL552: ARM GAS /tmp/ccpuPECZ.s page 206 6014 0084 FFF7FEFF bl I2C_RequestMemoryWrite 6015 .LVL553: 6016 0088 061E subs r6, r0, #0 6017 008a 12D0 beq .L409 2283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6018 .loc 1 2283 0 6019 008c 636C ldr r3, [r4, #68] 6020 008e 042B cmp r3, #4 6021 0090 0AD1 bne .L410 2286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 6022 .loc 1 2286 0 6023 0092 3C33 adds r3, r3, #60 6024 0094 0022 movs r2, #0 6025 0096 E254 strb r2, [r4, r3] 2287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6026 .loc 1 2287 0 6027 0098 0126 movs r6, #1 6028 009a 4BE0 b .L406 6029 .LVL554: 6030 .L407: 2276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6031 .loc 1 2276 0 6032 009c 638D ldrh r3, [r4, #42] 6033 009e 2385 strh r3, [r4, #40] 6034 .LVL555: 2277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6035 .loc 1 2277 0 6036 00a0 8023 movs r3, #128 6037 00a2 9B04 lsls r3, r3, #18 6038 00a4 9946 mov r9, r3 6039 00a6 E6E7 b .L408 6040 .LVL556: 6041 .L410: 2292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 6042 .loc 1 2292 0 6043 00a8 4023 movs r3, #64 6044 00aa 0022 movs r2, #0 6045 00ac E254 strb r2, [r4, r3] 2293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6046 .loc 1 2293 0 6047 00ae 0326 movs r6, #3 6048 00b0 40E0 b .L406 6049 .L409: 2298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6050 .loc 1 2298 0 6051 00b2 A36B ldr r3, [r4, #56] 6052 00b4 284A ldr r2, .L420+8 6053 00b6 DA62 str r2, [r3, #44] 2301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6054 .loc 1 2301 0 6055 00b8 A36B ldr r3, [r4, #56] 6056 00ba 284A ldr r2, .L420+12 6057 00bc 5A63 str r2, [r3, #52] 2304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6058 .loc 1 2304 0 6059 00be A36B ldr r3, [r4, #56] 6060 00c0 0027 movs r7, #0 ARM GAS /tmp/ccpuPECZ.s page 207 6061 00c2 1F63 str r7, [r3, #48] 2305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6062 .loc 1 2305 0 6063 00c4 A36B ldr r3, [r4, #56] 6064 00c6 9F63 str r7, [r3, #56] 2308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6065 .loc 1 2308 0 6066 00c8 2268 ldr r2, [r4] 6067 00ca 2832 adds r2, r2, #40 6068 00cc 238D ldrh r3, [r4, #40] 6069 00ce 2900 movs r1, r5 6070 00d0 A06B ldr r0, [r4, #56] 6071 00d2 FFF7FEFF bl HAL_DMA_Start_IT 6072 .LVL557: 2312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6073 .loc 1 2312 0 6074 00d6 218D ldrh r1, [r4, #40] 6075 00d8 C9B2 uxtb r1, r1 6076 .LVL558: 6077 .LBB260: 6078 .LBB261: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 6079 .loc 1 4713 0 6080 00da 2268 ldr r2, [r4] 6081 00dc 5368 ldr r3, [r2, #4] 6082 00de 2048 ldr r0, .L420+16 6083 00e0 0340 ands r3, r0 6084 00e2 0398 ldr r0, [sp, #12] 6085 00e4 8505 lsls r5, r0, #22 6086 00e6 AD0D lsrs r5, r5, #22 6087 00e8 0904 lsls r1, r1, #16 6088 .LVL559: 6089 00ea 0D43 orrs r5, r1 6090 00ec 4946 mov r1, r9 6091 00ee 2943 orrs r1, r5 6092 00f0 0D00 movs r5, r1 6093 00f2 1D43 orrs r5, r3 6094 00f4 5560 str r5, [r2, #4] 6095 .LVL560: 6096 .LBE261: 6097 .LBE260: 2315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6098 .loc 1 2315 0 6099 00f6 638D ldrh r3, [r4, #42] 6100 00f8 228D ldrh r2, [r4, #40] 6101 00fa 9B1A subs r3, r3, r2 6102 00fc 9BB2 uxth r3, r3 6103 00fe 6385 strh r3, [r4, #42] 2318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6104 .loc 1 2318 0 6105 0100 4023 movs r3, #64 6106 0102 E754 strb r7, [r4, r3] 6107 .LVL561: 6108 .LBB262: 6109 .LBB263: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6110 .loc 1 4728 0 ARM GAS /tmp/ccpuPECZ.s page 208 6111 0104 636B ldr r3, [r4, #52] 6112 0106 134A ldr r2, .L420+4 6113 0108 9342 cmp r3, r2 6114 010a 10D0 beq .L417 6115 010c 154A ldr r2, .L420+20 6116 010e 9342 cmp r3, r2 6117 0110 0BD0 beq .L419 6118 0112 F221 movs r1, #242 6119 .L411: 6120 .LVL562: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6121 .loc 1 4785 0 6122 0114 2268 ldr r2, [r4] 6123 0116 1368 ldr r3, [r2] 6124 0118 0B43 orrs r3, r1 6125 011a 1360 str r3, [r2] 6126 .LVL563: 6127 .LBE263: 6128 .LBE262: 2327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6129 .loc 1 2327 0 6130 011c 2268 ldr r2, [r4] 6131 011e 1168 ldr r1, [r2] 6132 0120 8023 movs r3, #128 6133 0122 DB01 lsls r3, r3, #7 6134 0124 0B43 orrs r3, r1 6135 0126 1360 str r3, [r2] 2329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6136 .loc 1 2329 0 6137 0128 04E0 b .L406 6138 .LVL564: 6139 .L419: 6140 .LBB265: 6141 .LBB264: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6142 .loc 1 4728 0 6143 012a 9021 movs r1, #144 6144 012c F2E7 b .L411 6145 .L417: 6146 012e 9021 movs r1, #144 6147 0130 F0E7 b .L411 6148 .LVL565: 6149 .L412: 6150 .LBE264: 6151 .LBE265: 2333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6152 .loc 1 2333 0 6153 0132 0226 movs r6, #2 6154 .LVL566: 6155 .L406: 2335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6156 .loc 1 2335 0 6157 0134 3000 movs r0, r6 6158 0136 06B0 add sp, sp, #24 6159 @ sp needed 6160 .LVL567: 6161 0138 04BC pop {r2} ARM GAS /tmp/ccpuPECZ.s page 209 6162 013a 9146 mov r9, r2 6163 013c F0BD pop {r4, r5, r6, r7, pc} 6164 .LVL568: 6165 .L413: 2245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6166 .loc 1 2245 0 6167 013e 0126 movs r6, #1 6168 0140 F8E7 b .L406 6169 .L414: 6170 0142 0126 movs r6, #1 6171 0144 F6E7 b .L406 6172 .L415: 2250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6173 .loc 1 2250 0 6174 0146 0226 movs r6, #2 6175 0148 F4E7 b .L406 6176 .L416: 2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6177 .loc 1 2254 0 6178 014a 0226 movs r6, #2 6179 014c F2E7 b .L406 6180 .L421: 6181 014e C046 .align 2 6182 .L420: 6183 0150 0000FFFF .word -65536 6184 0154 00000000 .word I2C_Master_ISR_DMA 6185 0158 00000000 .word I2C_DMAMasterTransmitCplt 6186 015c 00000000 .word I2C_DMAError 6187 0160 009C00FC .word -67068928 6188 0164 00000000 .word I2C_Slave_ISR_DMA 6189 .cfi_endproc 6190 .LFE59: 6192 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6193 .align 1 6194 .global HAL_I2C_Mem_Read_DMA 6195 .syntax unified 6196 .code 16 6197 .thumb_func 6198 .fpu softvfp 6200 HAL_I2C_Mem_Read_DMA: 6201 .LFB60: 2350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 6202 .loc 1 2350 0 6203 .cfi_startproc 6204 @ args = 8, pretend = 0, frame = 16 6205 @ frame_needed = 0, uses_anonymous_args = 0 6206 .LVL569: 6207 0000 F0B5 push {r4, r5, r6, r7, lr} 6208 .LCFI43: 6209 .cfi_def_cfa_offset 20 6210 .cfi_offset 4, -20 6211 .cfi_offset 5, -16 6212 .cfi_offset 6, -12 6213 .cfi_offset 7, -8 6214 .cfi_offset 14, -4 6215 0002 CE46 mov lr, r9 6216 0004 00B5 push {lr} ARM GAS /tmp/ccpuPECZ.s page 210 6217 .LCFI44: 6218 .cfi_def_cfa_offset 24 6219 .cfi_offset 9, -24 6220 0006 86B0 sub sp, sp, #24 6221 .LCFI45: 6222 .cfi_def_cfa_offset 48 6223 0008 0400 movs r4, r0 6224 000a 0391 str r1, [sp, #12] 6225 000c 0492 str r2, [sp, #16] 6226 000e 0593 str r3, [sp, #20] 6227 0010 0CAB add r3, sp, #48 6228 .LVL570: 6229 0012 20CB ldmia r3!, {r5} 6230 .LVL571: 6231 0014 1E88 ldrh r6, [r3] 6232 .LVL572: 2357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6233 .loc 1 2357 0 6234 0016 4123 movs r3, #65 6235 .LVL573: 6236 0018 C35C ldrb r3, [r0, r3] 6237 001a 202B cmp r3, #32 6238 001c 00D0 beq .LCB6804 6239 001e 8AE0 b .L429 @long jump 6240 .LCB6804: 2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6241 .loc 1 2359 0 6242 0020 002D cmp r5, #0 6243 0022 00D1 bne .LCB6806 6244 0024 8DE0 b .L430 @long jump 6245 .LCB6806: 2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6246 .loc 1 2359 0 is_stmt 0 discriminator 1 6247 0026 002E cmp r6, #0 6248 0028 00D1 bne .LCB6808 6249 002a 8CE0 b .L431 @long jump 6250 .LCB6808: 2364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6251 .loc 1 2364 0 is_stmt 1 6252 002c 0368 ldr r3, [r0] 6253 002e 9B69 ldr r3, [r3, #24] 6254 0030 1B04 lsls r3, r3, #16 6255 0032 00D5 bpl .LCB6814 6256 0034 89E0 b .L432 @long jump 6257 .LCB6814: 2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6258 .loc 1 2370 0 6259 0036 4023 movs r3, #64 6260 0038 C35C ldrb r3, [r0, r3] 6261 003a 012B cmp r3, #1 6262 003c 00D1 bne .LCB6818 6263 003e 86E0 b .L433 @long jump 6264 .LCB6818: 2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6265 .loc 1 2370 0 is_stmt 0 discriminator 2 6266 0040 4027 movs r7, #64 6267 0042 0123 movs r3, #1 ARM GAS /tmp/ccpuPECZ.s page 211 6268 0044 C355 strb r3, [r0, r7] 2373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6269 .loc 1 2373 0 is_stmt 1 discriminator 2 6270 0046 FFF7FEFF bl HAL_GetTick 6271 .LVL574: 2375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6272 .loc 1 2375 0 discriminator 2 6273 004a 4123 movs r3, #65 6274 004c 2222 movs r2, #34 6275 004e E254 strb r2, [r4, r3] 2376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6276 .loc 1 2376 0 discriminator 2 6277 0050 0133 adds r3, r3, #1 6278 0052 E754 strb r7, [r4, r3] 2377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6279 .loc 1 2377 0 discriminator 2 6280 0054 0023 movs r3, #0 6281 0056 6364 str r3, [r4, #68] 2380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 6282 .loc 1 2380 0 discriminator 2 6283 0058 6562 str r5, [r4, #36] 2381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6284 .loc 1 2381 0 discriminator 2 6285 005a 6685 strh r6, [r4, #42] 2382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 6286 .loc 1 2382 0 discriminator 2 6287 005c 3D4B ldr r3, .L437 6288 005e E362 str r3, [r4, #44] 2383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6289 .loc 1 2383 0 discriminator 2 6290 0060 3D4B ldr r3, .L437+4 6291 0062 6363 str r3, [r4, #52] 2385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6292 .loc 1 2385 0 discriminator 2 6293 0064 638D ldrh r3, [r4, #42] 6294 0066 9BB2 uxth r3, r3 6295 0068 FF2B cmp r3, #255 6296 006a 17D9 bls .L424 2387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6297 .loc 1 2387 0 6298 006c FF23 movs r3, #255 6299 006e 2385 strh r3, [r4, #40] 6300 .LVL575: 2388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6301 .loc 1 2388 0 6302 0070 8023 movs r3, #128 6303 0072 5B04 lsls r3, r3, #17 6304 0074 9946 mov r9, r3 6305 .LVL576: 6306 .L425: 2397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6307 .loc 1 2397 0 6308 0076 0190 str r0, [sp, #4] 6309 0078 1923 movs r3, #25 6310 007a 0093 str r3, [sp] 6311 007c 059B ldr r3, [sp, #20] 6312 007e 049A ldr r2, [sp, #16] ARM GAS /tmp/ccpuPECZ.s page 212 6313 0080 0399 ldr r1, [sp, #12] 6314 0082 2000 movs r0, r4 6315 .LVL577: 6316 0084 FFF7FEFF bl I2C_RequestMemoryRead 6317 .LVL578: 6318 0088 061E subs r6, r0, #0 6319 008a 12D0 beq .L426 2399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6320 .loc 1 2399 0 6321 008c 636C ldr r3, [r4, #68] 6322 008e 042B cmp r3, #4 6323 0090 0AD1 bne .L427 2402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_ERROR; 6324 .loc 1 2402 0 6325 0092 3C33 adds r3, r3, #60 6326 0094 0022 movs r2, #0 6327 0096 E254 strb r2, [r4, r3] 2403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6328 .loc 1 2403 0 6329 0098 0126 movs r6, #1 6330 009a 4DE0 b .L423 6331 .LVL579: 6332 .L424: 2392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 6333 .loc 1 2392 0 6334 009c 638D ldrh r3, [r4, #42] 6335 009e 2385 strh r3, [r4, #40] 6336 .LVL580: 2393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6337 .loc 1 2393 0 6338 00a0 8023 movs r3, #128 6339 00a2 9B04 lsls r3, r3, #18 6340 00a4 9946 mov r9, r3 6341 00a6 E6E7 b .L425 6342 .LVL581: 6343 .L427: 2408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 6344 .loc 1 2408 0 6345 00a8 4023 movs r3, #64 6346 00aa 0022 movs r2, #0 6347 00ac E254 strb r2, [r4, r3] 2409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6348 .loc 1 2409 0 6349 00ae 0326 movs r6, #3 6350 00b0 42E0 b .L423 6351 .L426: 2414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6352 .loc 1 2414 0 6353 00b2 E36B ldr r3, [r4, #60] 6354 00b4 294A ldr r2, .L437+8 6355 00b6 DA62 str r2, [r3, #44] 2417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6356 .loc 1 2417 0 6357 00b8 E36B ldr r3, [r4, #60] 6358 00ba 294A ldr r2, .L437+12 6359 00bc 5A63 str r2, [r3, #52] 2420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; ARM GAS /tmp/ccpuPECZ.s page 213 6360 .loc 1 2420 0 6361 00be E36B ldr r3, [r4, #60] 6362 00c0 0027 movs r7, #0 6363 00c2 1F63 str r7, [r3, #48] 2421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6364 .loc 1 2421 0 6365 00c4 E36B ldr r3, [r4, #60] 6366 00c6 9F63 str r7, [r3, #56] 2424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6367 .loc 1 2424 0 6368 00c8 2168 ldr r1, [r4] 6369 00ca 2431 adds r1, r1, #36 6370 00cc 238D ldrh r3, [r4, #40] 6371 00ce 2A00 movs r2, r5 6372 00d0 E06B ldr r0, [r4, #60] 6373 00d2 FFF7FEFF bl HAL_DMA_Start_IT 6374 .LVL582: 2427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6375 .loc 1 2427 0 6376 00d6 238D ldrh r3, [r4, #40] 6377 00d8 DBB2 uxtb r3, r3 6378 .LVL583: 6379 .LBB266: 6380 .LBB267: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 6381 .loc 1 4713 0 6382 00da 2268 ldr r2, [r4] 6383 00dc 5068 ldr r0, [r2, #4] 6384 00de 2149 ldr r1, .L437+16 6385 00e0 0140 ands r1, r0 6386 00e2 0398 ldr r0, [sp, #12] 6387 00e4 8505 lsls r5, r0, #22 6388 00e6 AD0D lsrs r5, r5, #22 6389 00e8 1B04 lsls r3, r3, #16 6390 .LVL584: 6391 00ea 1D43 orrs r5, r3 6392 00ec 4B46 mov r3, r9 6393 00ee 2B43 orrs r3, r5 6394 00f0 1D00 movs r5, r3 6395 00f2 1D4B ldr r3, .L437+20 6396 00f4 1D43 orrs r5, r3 6397 00f6 0D43 orrs r5, r1 6398 00f8 5560 str r5, [r2, #4] 6399 .LVL585: 6400 .LBE267: 6401 .LBE266: 2430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6402 .loc 1 2430 0 6403 00fa 638D ldrh r3, [r4, #42] 6404 00fc 228D ldrh r2, [r4, #40] 6405 00fe 9B1A subs r3, r3, r2 6406 0100 9BB2 uxth r3, r3 6407 0102 6385 strh r3, [r4, #42] 2433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6408 .loc 1 2433 0 6409 0104 4023 movs r3, #64 6410 0106 E754 strb r7, [r4, r3] ARM GAS /tmp/ccpuPECZ.s page 214 2436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6411 .loc 1 2436 0 6412 0108 2268 ldr r2, [r4] 6413 010a 1168 ldr r1, [r2] 6414 010c 8023 movs r3, #128 6415 010e 1B02 lsls r3, r3, #8 6416 0110 0B43 orrs r3, r1 6417 0112 1360 str r3, [r2] 6418 .LVL586: 6419 .LBB268: 6420 .LBB269: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6421 .loc 1 4728 0 6422 0114 636B ldr r3, [r4, #52] 6423 0116 104A ldr r2, .L437+4 6424 0118 9342 cmp r3, r2 6425 011a 0AD0 beq .L434 6426 011c 134A ldr r2, .L437+24 6427 011e 9342 cmp r3, r2 6428 0120 05D0 beq .L436 6429 0122 F221 movs r1, #242 6430 .L428: 6431 .LVL587: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6432 .loc 1 4785 0 6433 0124 2268 ldr r2, [r4] 6434 0126 1368 ldr r3, [r2] 6435 0128 0B43 orrs r3, r1 6436 012a 1360 str r3, [r2] 6437 .LVL588: 6438 .LBE269: 6439 .LBE268: 2444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6440 .loc 1 2444 0 6441 012c 04E0 b .L423 6442 .LVL589: 6443 .L436: 6444 .LBB271: 6445 .LBB270: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6446 .loc 1 4728 0 6447 012e 9021 movs r1, #144 6448 0130 F8E7 b .L428 6449 .L434: 6450 0132 9021 movs r1, #144 6451 0134 F6E7 b .L428 6452 .LVL590: 6453 .L429: 6454 .LBE270: 6455 .LBE271: 2448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6456 .loc 1 2448 0 6457 0136 0226 movs r6, #2 6458 .LVL591: 6459 .L423: 2450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6460 .loc 1 2450 0 ARM GAS /tmp/ccpuPECZ.s page 215 6461 0138 3000 movs r0, r6 6462 013a 06B0 add sp, sp, #24 6463 @ sp needed 6464 .LVL592: 6465 013c 04BC pop {r2} 6466 013e 9146 mov r9, r2 6467 0140 F0BD pop {r4, r5, r6, r7, pc} 6468 .LVL593: 6469 .L430: 2361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6470 .loc 1 2361 0 6471 0142 0126 movs r6, #1 6472 0144 F8E7 b .L423 6473 .L431: 6474 0146 0126 movs r6, #1 6475 0148 F6E7 b .L423 6476 .L432: 2366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6477 .loc 1 2366 0 6478 014a 0226 movs r6, #2 6479 014c F4E7 b .L423 6480 .L433: 2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6481 .loc 1 2370 0 6482 014e 0226 movs r6, #2 6483 0150 F2E7 b .L423 6484 .L438: 6485 0152 C046 .align 2 6486 .L437: 6487 0154 0000FFFF .word -65536 6488 0158 00000000 .word I2C_Master_ISR_DMA 6489 015c 00000000 .word I2C_DMAMasterReceiveCplt 6490 0160 00000000 .word I2C_DMAError 6491 0164 009800FC .word -67069952 6492 0168 00240080 .word -2147474432 6493 016c 00000000 .word I2C_Slave_ISR_DMA 6494 .cfi_endproc 6495 .LFE60: 6497 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6498 .align 1 6499 .global HAL_I2C_IsDeviceReady 6500 .syntax unified 6501 .code 16 6502 .thumb_func 6503 .fpu softvfp 6505 HAL_I2C_IsDeviceReady: 6506 .LFB61: 2464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t tickstart = 0U; 6507 .loc 1 2464 0 6508 .cfi_startproc 6509 @ args = 0, pretend = 0, frame = 8 6510 @ frame_needed = 0, uses_anonymous_args = 0 6511 .LVL594: 6512 0000 F0B5 push {r4, r5, r6, r7, lr} 6513 .LCFI46: 6514 .cfi_def_cfa_offset 20 6515 .cfi_offset 4, -20 ARM GAS /tmp/ccpuPECZ.s page 216 6516 .cfi_offset 5, -16 6517 .cfi_offset 6, -12 6518 .cfi_offset 7, -8 6519 .cfi_offset 14, -4 6520 0002 C646 mov lr, r8 6521 0004 00B5 push {lr} 6522 .LCFI47: 6523 .cfi_def_cfa_offset 24 6524 .cfi_offset 8, -24 6525 0006 84B0 sub sp, sp, #16 6526 .LCFI48: 6527 .cfi_def_cfa_offset 40 6528 0008 0400 movs r4, r0 6529 000a 8846 mov r8, r1 6530 000c 1700 movs r7, r2 6531 000e 1D00 movs r5, r3 6532 .LVL595: 2467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6533 .loc 1 2467 0 6534 0010 0023 movs r3, #0 6535 .LVL596: 6536 0012 0393 str r3, [sp, #12] 2469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6537 .loc 1 2469 0 6538 0014 4133 adds r3, r3, #65 6539 0016 C35C ldrb r3, [r0, r3] 6540 0018 202B cmp r3, #32 6541 001a 00D0 beq .LCB7135 6542 001c 8BE0 b .L451 @long jump 6543 .LCB7135: 2471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6544 .loc 1 2471 0 6545 001e 0368 ldr r3, [r0] 6546 0020 9B69 ldr r3, [r3, #24] 6547 0022 1B04 lsls r3, r3, #16 6548 0024 00D5 bpl .LCB7141 6549 0026 8BE0 b .L452 @long jump 6550 .LCB7141: 2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6551 .loc 1 2477 0 6552 0028 4023 movs r3, #64 6553 002a C35C ldrb r3, [r0, r3] 6554 002c 012B cmp r3, #1 6555 002e 00D1 bne .LCB7145 6556 0030 88E0 b .L453 @long jump 6557 .LCB7145: 2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6558 .loc 1 2477 0 is_stmt 0 discriminator 2 6559 0032 4023 movs r3, #64 6560 0034 0122 movs r2, #1 6561 .LVL597: 6562 0036 C254 strb r2, [r0, r3] 2479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6563 .loc 1 2479 0 is_stmt 1 discriminator 2 6564 0038 0133 adds r3, r3, #1 6565 003a 2332 adds r2, r2, #35 6566 003c C254 strb r2, [r0, r3] ARM GAS /tmp/ccpuPECZ.s page 217 2480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6567 .loc 1 2480 0 discriminator 2 6568 003e 0023 movs r3, #0 6569 0040 4364 str r3, [r0, #68] 6570 0042 20E0 b .L450 6571 .LVL598: 6572 .L460: 2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6573 .loc 1 2485 0 discriminator 1 6574 0044 4346 mov r3, r8 6575 0046 9A05 lsls r2, r3, #22 6576 0048 920D lsrs r2, r2, #22 6577 004a 424B ldr r3, .L461 6578 004c 1343 orrs r3, r2 6579 004e 23E0 b .L442 6580 .LVL599: 6581 .L446: 2506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6582 .loc 1 2506 0 6583 0050 9369 ldr r3, [r2, #24] 6584 0052 DB06 lsls r3, r3, #27 6585 0054 42D5 bpl .L457 2528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6586 .loc 1 2528 0 6587 0056 0096 str r6, [sp] 6588 0058 2B00 movs r3, r5 6589 005a 0022 movs r2, #0 6590 005c 2021 movs r1, #32 6591 005e 2000 movs r0, r4 6592 0060 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6593 .LVL600: 6594 0064 0028 cmp r0, #0 6595 0066 00D0 beq .LCB7187 6596 0068 70E0 b .L455 @long jump 6597 .LCB7187: 2534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6598 .loc 1 2534 0 6599 006a 2368 ldr r3, [r4] 6600 006c 1022 movs r2, #16 6601 006e DA61 str r2, [r3, #28] 2537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6602 .loc 1 2537 0 6603 0070 2368 ldr r3, [r4] 6604 0072 1032 adds r2, r2, #16 6605 0074 DA61 str r2, [r3, #28] 2541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6606 .loc 1 2541 0 6607 0076 039B ldr r3, [sp, #12] 6608 0078 5A1C adds r2, r3, #1 6609 007a 0392 str r2, [sp, #12] 6610 007c BB42 cmp r3, r7 6611 007e 3FD0 beq .L458 6612 .L449: 2556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6613 .loc 1 2556 0 6614 0080 039B ldr r3, [sp, #12] 6615 0082 BB42 cmp r3, r7 ARM GAS /tmp/ccpuPECZ.s page 218 6616 0084 4FD2 bcs .L459 6617 .LVL601: 6618 .L450: 2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6619 .loc 1 2485 0 6620 0086 E368 ldr r3, [r4, #12] 6621 0088 012B cmp r3, #1 6622 008a DBD0 beq .L460 2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6623 .loc 1 2485 0 is_stmt 0 discriminator 2 6624 008c 4346 mov r3, r8 6625 008e 9A05 lsls r2, r3, #22 6626 0090 920D lsrs r2, r2, #22 6627 0092 A023 movs r3, #160 6628 0094 9B01 lsls r3, r3, #6 6629 0096 1343 orrs r3, r2 6630 .L442: 2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6631 .loc 1 2485 0 discriminator 4 6632 0098 2268 ldr r2, [r4] 6633 009a 5360 str r3, [r2, #4] 2489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (__HAL_I2C_GET_FLAG(hi2c, I2C_F 6634 .loc 1 2489 0 is_stmt 1 discriminator 4 6635 009c FFF7FEFF bl HAL_GetTick 6636 .LVL602: 6637 00a0 0600 movs r6, r0 6638 .LVL603: 6639 .L444: 2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6640 .loc 1 2490 0 6641 00a2 2268 ldr r2, [r4] 6642 00a4 9369 ldr r3, [r2, #24] 6643 00a6 9B06 lsls r3, r3, #26 6644 00a8 D2D4 bmi .L446 2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6645 .loc 1 2490 0 is_stmt 0 discriminator 1 6646 00aa 9369 ldr r3, [r2, #24] 6647 00ac DB06 lsls r3, r3, #27 6648 00ae CFD4 bmi .L446 2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6649 .loc 1 2490 0 discriminator 2 6650 00b0 4123 movs r3, #65 6651 00b2 E35C ldrb r3, [r4, r3] 6652 00b4 DBB2 uxtb r3, r3 6653 00b6 A02B cmp r3, #160 6654 00b8 CAD0 beq .L446 2492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6655 .loc 1 2492 0 is_stmt 1 6656 00ba 6B1C adds r3, r5, #1 6657 00bc F1D0 beq .L444 2494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6658 .loc 1 2494 0 6659 00be 002D cmp r5, #0 6660 00c0 04D0 beq .L445 2494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6661 .loc 1 2494 0 is_stmt 0 discriminator 1 6662 00c2 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccpuPECZ.s page 219 6663 .LVL604: 6664 00c6 801B subs r0, r0, r6 6665 00c8 A842 cmp r0, r5 6666 00ca EAD9 bls .L444 6667 .L445: 2497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process Unlocked */ 6668 .loc 1 2497 0 is_stmt 1 6669 00cc 4123 movs r3, #65 6670 00ce 2022 movs r2, #32 6671 00d0 E254 strb r2, [r4, r3] 2499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return HAL_TIMEOUT; 6672 .loc 1 2499 0 6673 00d2 013B subs r3, r3, #1 6674 00d4 0022 movs r2, #0 6675 00d6 E254 strb r2, [r4, r3] 2500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6676 .loc 1 2500 0 6677 00d8 0320 movs r0, #3 6678 00da 2DE0 b .L440 6679 .L457: 2509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6680 .loc 1 2509 0 6681 00dc 0096 str r6, [sp] 6682 00de 2B00 movs r3, r5 6683 00e0 0022 movs r2, #0 6684 00e2 2021 movs r1, #32 6685 00e4 2000 movs r0, r4 6686 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6687 .LVL605: 6688 00ea 0028 cmp r0, #0 6689 00ec 2CD1 bne .L454 2515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6690 .loc 1 2515 0 6691 00ee 2268 ldr r2, [r4] 6692 00f0 2023 movs r3, #32 6693 00f2 D361 str r3, [r2, #28] 2518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6694 .loc 1 2518 0 6695 00f4 4122 movs r2, #65 6696 00f6 A354 strb r3, [r4, r2] 2521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6697 .loc 1 2521 0 6698 00f8 2033 adds r3, r3, #32 6699 00fa 0022 movs r2, #0 6700 00fc E254 strb r2, [r4, r3] 2523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6701 .loc 1 2523 0 6702 00fe 1BE0 b .L440 6703 .L458: 2544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6704 .loc 1 2544 0 6705 0100 2268 ldr r2, [r4] 6706 0102 5168 ldr r1, [r2, #4] 6707 0104 8023 movs r3, #128 6708 0106 DB01 lsls r3, r3, #7 6709 0108 0B43 orrs r3, r1 6710 010a 5360 str r3, [r2, #4] ARM GAS /tmp/ccpuPECZ.s page 220 2547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6711 .loc 1 2547 0 6712 010c 0096 str r6, [sp] 6713 010e 2B00 movs r3, r5 6714 0110 0022 movs r2, #0 6715 0112 2021 movs r1, #32 6716 0114 2000 movs r0, r4 6717 0116 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6718 .LVL606: 6719 011a 0028 cmp r0, #0 6720 011c 18D1 bne .L456 2553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6721 .loc 1 2553 0 6722 011e 2368 ldr r3, [r4] 6723 0120 2022 movs r2, #32 6724 0122 DA61 str r2, [r3, #28] 6725 0124 ACE7 b .L449 6726 .L459: 2558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6727 .loc 1 2558 0 6728 0126 4123 movs r3, #65 6729 0128 2022 movs r2, #32 6730 012a E254 strb r2, [r4, r3] 2561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6731 .loc 1 2561 0 6732 012c 013B subs r3, r3, #1 6733 012e 0022 movs r2, #0 6734 0130 E254 strb r2, [r4, r3] 2563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6735 .loc 1 2563 0 6736 0132 0320 movs r0, #3 6737 0134 00E0 b .L440 6738 .LVL607: 6739 .L451: 2567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6740 .loc 1 2567 0 6741 0136 0220 movs r0, #2 6742 .LVL608: 6743 .L440: 2569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6744 .loc 1 2569 0 6745 0138 04B0 add sp, sp, #16 6746 @ sp needed 6747 .LVL609: 6748 .LVL610: 6749 .LVL611: 6750 013a 04BC pop {r2} 6751 013c 9046 mov r8, r2 6752 013e F0BD pop {r4, r5, r6, r7, pc} 6753 .LVL612: 6754 .L452: 2473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6755 .loc 1 2473 0 6756 0140 0220 movs r0, #2 6757 .LVL613: 6758 0142 F9E7 b .L440 6759 .LVL614: ARM GAS /tmp/ccpuPECZ.s page 221 6760 .L453: 2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6761 .loc 1 2477 0 6762 0144 0220 movs r0, #2 6763 .LVL615: 6764 0146 F7E7 b .L440 6765 .LVL616: 6766 .L454: 2511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6767 .loc 1 2511 0 6768 0148 0320 movs r0, #3 6769 014a F5E7 b .L440 6770 .L455: 2530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6771 .loc 1 2530 0 6772 014c 0320 movs r0, #3 6773 014e F3E7 b .L440 6774 .L456: 2549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6775 .loc 1 2549 0 6776 0150 0320 movs r0, #3 6777 0152 F1E7 b .L440 6778 .L462: 6779 .align 2 6780 .L461: 6781 0154 00200002 .word 33562624 6782 .cfi_endproc 6783 .LFE61: 6785 .section .text.HAL_I2C_Master_Sequential_Transmit_IT,"ax",%progbits 6786 .align 1 6787 .global HAL_I2C_Master_Sequential_Transmit_IT 6788 .syntax unified 6789 .code 16 6790 .thumb_func 6791 .fpu softvfp 6793 HAL_I2C_Master_Sequential_Transmit_IT: 6794 .LFB62: 2584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 6795 .loc 1 2584 0 6796 .cfi_startproc 6797 @ args = 4, pretend = 0, frame = 0 6798 @ frame_needed = 0, uses_anonymous_args = 0 6799 .LVL617: 6800 0000 F0B5 push {r4, r5, r6, r7, lr} 6801 .LCFI49: 6802 .cfi_def_cfa_offset 20 6803 .cfi_offset 4, -20 6804 .cfi_offset 5, -16 6805 .cfi_offset 6, -12 6806 .cfi_offset 7, -8 6807 .cfi_offset 14, -4 6808 0002 C646 mov lr, r8 6809 0004 00B5 push {lr} 6810 .LCFI50: 6811 .cfi_def_cfa_offset 24 6812 .cfi_offset 8, -24 6813 .LVL618: ARM GAS /tmp/ccpuPECZ.s page 222 2591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6814 .loc 1 2591 0 6815 0006 4124 movs r4, #65 6816 0008 045D ldrb r4, [r0, r4] 6817 000a 202C cmp r4, #32 6818 000c 50D1 bne .L469 2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6819 .loc 1 2594 0 6820 000e 2034 adds r4, r4, #32 6821 0010 045D ldrb r4, [r0, r4] 6822 0012 012C cmp r4, #1 6823 0014 50D0 beq .L470 2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6824 .loc 1 2594 0 is_stmt 0 discriminator 2 6825 0016 4024 movs r4, #64 6826 0018 0125 movs r5, #1 6827 001a 0555 strb r5, [r0, r4] 2596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 6828 .loc 1 2596 0 is_stmt 1 discriminator 2 6829 001c 0134 adds r4, r4, #1 6830 001e 2035 adds r5, r5, #32 6831 0020 0555 strb r5, [r0, r4] 2597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6832 .loc 1 2597 0 discriminator 2 6833 0022 0134 adds r4, r4, #1 6834 0024 113D subs r5, r5, #17 6835 0026 0555 strb r5, [r0, r4] 2598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6836 .loc 1 2598 0 discriminator 2 6837 0028 0024 movs r4, #0 6838 002a 4464 str r4, [r0, #68] 2601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 6839 .loc 1 2601 0 discriminator 2 6840 002c 4262 str r2, [r0, #36] 2602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 6841 .loc 1 2602 0 discriminator 2 6842 002e 4385 strh r3, [r0, #42] 2603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 6843 .loc 1 2603 0 discriminator 2 6844 0030 069B ldr r3, [sp, #24] 6845 .LVL619: 6846 0032 C362 str r3, [r0, #44] 6847 .LVL620: 2604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6848 .loc 1 2604 0 discriminator 2 6849 0034 214B ldr r3, .L475 6850 0036 4363 str r3, [r0, #52] 2607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6851 .loc 1 2607 0 discriminator 2 6852 0038 438D ldrh r3, [r0, #42] 6853 003a 9BB2 uxth r3, r3 6854 003c FF2B cmp r3, #255 6855 003e 2CD9 bls .L465 2609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 6856 .loc 1 2609 0 6857 0040 FF23 movs r3, #255 6858 0042 0385 strh r3, [r0, #40] ARM GAS /tmp/ccpuPECZ.s page 223 6859 .LVL621: 2610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6860 .loc 1 2610 0 6861 0044 8023 movs r3, #128 6862 0046 5B04 lsls r3, r3, #17 6863 0048 9846 mov r8, r3 6864 .LVL622: 6865 .L466: 2620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 6866 .loc 1 2620 0 6867 004a 036B ldr r3, [r0, #48] 6868 004c 112B cmp r3, #17 6869 004e 29D0 beq .L471 2586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6870 .loc 1 2586 0 6871 0050 1B4C ldr r4, .L475+4 6872 .L467: 6873 .LVL623: 2626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6874 .loc 1 2626 0 6875 0052 028D ldrh r2, [r0, #40] 6876 .LVL624: 6877 0054 D2B2 uxtb r2, r2 6878 .LVL625: 6879 .LBB272: 6880 .LBB273: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 6881 .loc 1 4713 0 6882 0056 0568 ldr r5, [r0] 6883 0058 6B68 ldr r3, [r5, #4] 6884 005a 670D lsrs r7, r4, #21 6885 005c BC46 mov ip, r7 6886 005e 194F ldr r7, .L475+8 6887 0060 6646 mov r6, ip 6888 0062 3743 orrs r7, r6 6889 0064 BB43 bics r3, r7 6890 0066 8905 lsls r1, r1, #22 6891 .LVL626: 6892 0068 890D lsrs r1, r1, #22 6893 006a 1204 lsls r2, r2, #16 6894 .LVL627: 6895 006c 1143 orrs r1, r2 6896 006e 4246 mov r2, r8 6897 0070 1143 orrs r1, r2 6898 0072 2143 orrs r1, r4 6899 0074 1943 orrs r1, r3 6900 0076 6960 str r1, [r5, #4] 6901 .LVL628: 6902 .LBE273: 6903 .LBE272: 2629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6904 .loc 1 2629 0 6905 0078 4023 movs r3, #64 6906 007a 0022 movs r2, #0 6907 007c C254 strb r2, [r0, r3] 6908 .LVL629: 6909 .LBB274: ARM GAS /tmp/ccpuPECZ.s page 224 6910 .LBB275: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6911 .loc 1 4728 0 6912 007e 436B ldr r3, [r0, #52] 6913 0080 114A ldr r2, .L475+12 6914 0082 9342 cmp r3, r2 6915 0084 12D0 beq .L472 6916 0086 114A ldr r2, .L475+16 6917 0088 9342 cmp r3, r2 6918 008a 0DD0 beq .L474 6919 008c F221 movs r1, #242 6920 .L468: 6921 .LVL630: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6922 .loc 1 4785 0 6923 008e 0268 ldr r2, [r0] 6924 0090 1368 ldr r3, [r2] 6925 0092 0B43 orrs r3, r1 6926 0094 1360 str r3, [r2] 6927 .LVL631: 6928 .LBE275: 6929 .LBE274: 2636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6930 .loc 1 2636 0 6931 0096 0020 movs r0, #0 6932 .LVL632: 6933 0098 0BE0 b .L464 6934 .LVL633: 6935 .L465: 2614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 6936 .loc 1 2614 0 6937 009a 438D ldrh r3, [r0, #42] 6938 009c 0385 strh r3, [r0, #40] 2615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6939 .loc 1 2615 0 6940 009e C36A ldr r3, [r0, #44] 6941 .LVL634: 6942 00a0 9846 mov r8, r3 6943 .LVL635: 6944 00a2 D2E7 b .L466 6945 .LVL636: 6946 .L471: 2622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6947 .loc 1 2622 0 6948 00a4 0024 movs r4, #0 6949 00a6 D4E7 b .L467 6950 .LVL637: 6951 .L474: 6952 .LBB277: 6953 .LBB276: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 6954 .loc 1 4728 0 6955 00a8 0021 movs r1, #0 6956 00aa F0E7 b .L468 6957 .L472: 6958 00ac 0021 movs r1, #0 6959 00ae EEE7 b .L468 ARM GAS /tmp/ccpuPECZ.s page 225 6960 .LVL638: 6961 .L469: 6962 .LBE276: 6963 .LBE277: 2640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 6964 .loc 1 2640 0 6965 00b0 0220 movs r0, #2 6966 .LVL639: 6967 .L464: 2642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6968 .loc 1 2642 0 6969 @ sp needed 6970 00b2 04BC pop {r2} 6971 00b4 9046 mov r8, r2 6972 00b6 F0BD pop {r4, r5, r6, r7, pc} 6973 .LVL640: 6974 .L470: 2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 6975 .loc 1 2594 0 6976 00b8 0220 movs r0, #2 6977 .LVL641: 6978 00ba FAE7 b .L464 6979 .L476: 6980 .align 2 6981 .L475: 6982 00bc 00000000 .word I2C_Master_ISR_IT 6983 00c0 00200080 .word -2147475456 6984 00c4 FF63FF03 .word 67068927 6985 00c8 00000000 .word I2C_Master_ISR_DMA 6986 00cc 00000000 .word I2C_Slave_ISR_DMA 6987 .cfi_endproc 6988 .LFE62: 6990 .section .text.HAL_I2C_Master_Sequential_Receive_IT,"ax",%progbits 6991 .align 1 6992 .global HAL_I2C_Master_Sequential_Receive_IT 6993 .syntax unified 6994 .code 16 6995 .thumb_func 6996 .fpu softvfp 6998 HAL_I2C_Master_Sequential_Receive_IT: 6999 .LFB63: 2657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t xfermode = 0U; 7000 .loc 1 2657 0 7001 .cfi_startproc 7002 @ args = 4, pretend = 0, frame = 0 7003 @ frame_needed = 0, uses_anonymous_args = 0 7004 .LVL642: 7005 0000 F0B5 push {r4, r5, r6, r7, lr} 7006 .LCFI51: 7007 .cfi_def_cfa_offset 20 7008 .cfi_offset 4, -20 7009 .cfi_offset 5, -16 7010 .cfi_offset 6, -12 7011 .cfi_offset 7, -8 7012 .cfi_offset 14, -4 7013 0002 C646 mov lr, r8 7014 0004 00B5 push {lr} ARM GAS /tmp/ccpuPECZ.s page 226 7015 .LCFI52: 7016 .cfi_def_cfa_offset 24 7017 .cfi_offset 8, -24 7018 .LVL643: 2664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7019 .loc 1 2664 0 7020 0006 4124 movs r4, #65 7021 0008 045D ldrb r4, [r0, r4] 7022 000a 202C cmp r4, #32 7023 000c 50D1 bne .L483 2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7024 .loc 1 2667 0 7025 000e 2034 adds r4, r4, #32 7026 0010 045D ldrb r4, [r0, r4] 7027 0012 012C cmp r4, #1 7028 0014 50D0 beq .L484 2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7029 .loc 1 2667 0 is_stmt 0 discriminator 2 7030 0016 4024 movs r4, #64 7031 0018 0125 movs r5, #1 7032 001a 0555 strb r5, [r0, r4] 2669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7033 .loc 1 2669 0 is_stmt 1 discriminator 2 7034 001c 0134 adds r4, r4, #1 7035 001e 2135 adds r5, r5, #33 7036 0020 0555 strb r5, [r0, r4] 2670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7037 .loc 1 2670 0 discriminator 2 7038 0022 0134 adds r4, r4, #1 7039 0024 123D subs r5, r5, #18 7040 0026 0555 strb r5, [r0, r4] 2671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7041 .loc 1 2671 0 discriminator 2 7042 0028 0024 movs r4, #0 7043 002a 4464 str r4, [r0, #68] 2674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 7044 .loc 1 2674 0 discriminator 2 7045 002c 4262 str r2, [r0, #36] 2675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7046 .loc 1 2675 0 discriminator 2 7047 002e 4385 strh r3, [r0, #42] 2676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7048 .loc 1 2676 0 discriminator 2 7049 0030 069B ldr r3, [sp, #24] 7050 .LVL644: 7051 0032 C362 str r3, [r0, #44] 7052 .LVL645: 2677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7053 .loc 1 2677 0 discriminator 2 7054 0034 214B ldr r3, .L489 7055 0036 4363 str r3, [r0, #52] 2680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7056 .loc 1 2680 0 discriminator 2 7057 0038 438D ldrh r3, [r0, #42] 7058 003a 9BB2 uxth r3, r3 7059 003c FF2B cmp r3, #255 7060 003e 2CD9 bls .L479 ARM GAS /tmp/ccpuPECZ.s page 227 2682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7061 .loc 1 2682 0 7062 0040 FF23 movs r3, #255 7063 0042 0385 strh r3, [r0, #40] 7064 .LVL646: 2683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7065 .loc 1 2683 0 7066 0044 8023 movs r3, #128 7067 0046 5B04 lsls r3, r3, #17 7068 0048 9846 mov r8, r3 7069 .LVL647: 7070 .L480: 2693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7071 .loc 1 2693 0 7072 004a 036B ldr r3, [r0, #48] 7073 004c 122B cmp r3, #18 7074 004e 29D0 beq .L485 2659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7075 .loc 1 2659 0 7076 0050 1B4C ldr r4, .L489+4 7077 .L481: 7078 .LVL648: 2699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7079 .loc 1 2699 0 7080 0052 028D ldrh r2, [r0, #40] 7081 .LVL649: 7082 0054 D2B2 uxtb r2, r2 7083 .LVL650: 7084 .LBB278: 7085 .LBB279: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 7086 .loc 1 4713 0 7087 0056 0568 ldr r5, [r0] 7088 0058 6B68 ldr r3, [r5, #4] 7089 005a 670D lsrs r7, r4, #21 7090 005c BC46 mov ip, r7 7091 005e 194F ldr r7, .L489+8 7092 0060 6646 mov r6, ip 7093 0062 3743 orrs r7, r6 7094 0064 BB43 bics r3, r7 7095 0066 8905 lsls r1, r1, #22 7096 .LVL651: 7097 0068 890D lsrs r1, r1, #22 7098 006a 1204 lsls r2, r2, #16 7099 .LVL652: 7100 006c 1143 orrs r1, r2 7101 006e 4246 mov r2, r8 7102 0070 1143 orrs r1, r2 7103 0072 2143 orrs r1, r4 7104 0074 1943 orrs r1, r3 7105 0076 6960 str r1, [r5, #4] 7106 .LVL653: 7107 .LBE279: 7108 .LBE278: 2702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7109 .loc 1 2702 0 7110 0078 4023 movs r3, #64 ARM GAS /tmp/ccpuPECZ.s page 228 7111 007a 0022 movs r2, #0 7112 007c C254 strb r2, [r0, r3] 7113 .LVL654: 7114 .LBB280: 7115 .LBB281: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7116 .loc 1 4728 0 7117 007e 436B ldr r3, [r0, #52] 7118 0080 114A ldr r2, .L489+12 7119 0082 9342 cmp r3, r2 7120 0084 12D0 beq .L486 7121 0086 114A ldr r2, .L489+16 7122 0088 9342 cmp r3, r2 7123 008a 0DD0 beq .L488 7124 008c F421 movs r1, #244 7125 .L482: 7126 .LVL655: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7127 .loc 1 4785 0 7128 008e 0268 ldr r2, [r0] 7129 0090 1368 ldr r3, [r2] 7130 0092 0B43 orrs r3, r1 7131 0094 1360 str r3, [r2] 7132 .LVL656: 7133 .LBE281: 7134 .LBE280: 2709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7135 .loc 1 2709 0 7136 0096 0020 movs r0, #0 7137 .LVL657: 7138 0098 0BE0 b .L478 7139 .LVL658: 7140 .L479: 2687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7141 .loc 1 2687 0 7142 009a 438D ldrh r3, [r0, #42] 7143 009c 0385 strh r3, [r0, #40] 2688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7144 .loc 1 2688 0 7145 009e C36A ldr r3, [r0, #44] 7146 .LVL659: 7147 00a0 9846 mov r8, r3 7148 .LVL660: 7149 00a2 D2E7 b .L480 7150 .LVL661: 7151 .L485: 2695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7152 .loc 1 2695 0 7153 00a4 0024 movs r4, #0 7154 00a6 D4E7 b .L481 7155 .LVL662: 7156 .L488: 7157 .LBB283: 7158 .LBB282: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7159 .loc 1 4728 0 7160 00a8 0021 movs r1, #0 ARM GAS /tmp/ccpuPECZ.s page 229 7161 00aa F0E7 b .L482 7162 .L486: 7163 00ac 0021 movs r1, #0 7164 00ae EEE7 b .L482 7165 .LVL663: 7166 .L483: 7167 .LBE282: 7168 .LBE283: 2713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7169 .loc 1 2713 0 7170 00b0 0220 movs r0, #2 7171 .LVL664: 7172 .L478: 2715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7173 .loc 1 2715 0 7174 @ sp needed 7175 00b2 04BC pop {r2} 7176 00b4 9046 mov r8, r2 7177 00b6 F0BD pop {r4, r5, r6, r7, pc} 7178 .LVL665: 7179 .L484: 2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7180 .loc 1 2667 0 7181 00b8 0220 movs r0, #2 7182 .LVL666: 7183 00ba FAE7 b .L478 7184 .L490: 7185 .align 2 7186 .L489: 7187 00bc 00000000 .word I2C_Master_ISR_IT 7188 00c0 00240080 .word -2147474432 7189 00c4 FF63FF03 .word 67068927 7190 00c8 00000000 .word I2C_Master_ISR_DMA 7191 00cc 00000000 .word I2C_Slave_ISR_DMA 7192 .cfi_endproc 7193 .LFE63: 7195 .section .text.HAL_I2C_Slave_Sequential_Transmit_IT,"ax",%progbits 7196 .align 1 7197 .global HAL_I2C_Slave_Sequential_Transmit_IT 7198 .syntax unified 7199 .code 16 7200 .thumb_func 7201 .fpu softvfp 7203 HAL_I2C_Slave_Sequential_Transmit_IT: 7204 .LFB64: 2728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 7205 .loc 1 2728 0 7206 .cfi_startproc 7207 @ args = 0, pretend = 0, frame = 0 7208 @ frame_needed = 0, uses_anonymous_args = 0 7209 .LVL667: 7210 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 7211 .LCFI53: 7212 .cfi_def_cfa_offset 24 7213 .cfi_offset 3, -24 7214 .cfi_offset 4, -20 7215 .cfi_offset 5, -16 ARM GAS /tmp/ccpuPECZ.s page 230 7216 .cfi_offset 6, -12 7217 .cfi_offset 7, -8 7218 .cfi_offset 14, -4 7219 0002 0700 movs r7, r0 7220 0004 0C00 movs r4, r1 7221 0006 1500 movs r5, r2 7222 0008 1E00 movs r6, r3 2732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7223 .loc 1 2732 0 7224 000a 4123 movs r3, #65 7225 .LVL668: 7226 000c C35C ldrb r3, [r0, r3] 7227 000e 2822 movs r2, #40 7228 .LVL669: 7229 0010 1340 ands r3, r2 7230 0012 282B cmp r3, #40 7231 0014 01D0 beq .L502 2787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7232 .loc 1 2787 0 7233 0016 0120 movs r0, #1 7234 .LVL670: 7235 .L492: 2789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7236 .loc 1 2789 0 7237 @ sp needed 7238 .LVL671: 7239 .LVL672: 7240 .LVL673: 7241 0018 F8BD pop {r3, r4, r5, r6, r7, pc} 7242 .LVL674: 7243 .L502: 2734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7244 .loc 1 2734 0 7245 001a 0029 cmp r1, #0 7246 001c 45D0 beq .L497 2734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7247 .loc 1 2734 0 is_stmt 0 discriminator 1 7248 001e 002D cmp r5, #0 7249 0020 01D1 bne .L503 2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7250 .loc 1 2736 0 is_stmt 1 7251 0022 0120 movs r0, #1 7252 .LVL675: 7253 0024 F8E7 b .L492 7254 .LVL676: 7255 .L503: 2740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7256 .loc 1 2740 0 7257 0026 0521 movs r1, #5 7258 .LVL677: 7259 0028 FFF7FEFF bl I2C_Disable_IRQ 7260 .LVL678: 2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7261 .loc 1 2743 0 7262 002c 4023 movs r3, #64 7263 002e FB5C ldrb r3, [r7, r3] 7264 0030 012B cmp r3, #1 ARM GAS /tmp/ccpuPECZ.s page 231 7265 0032 3CD0 beq .L499 2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7266 .loc 1 2743 0 is_stmt 0 discriminator 2 7267 0034 4023 movs r3, #64 7268 0036 0122 movs r2, #1 7269 0038 FA54 strb r2, [r7, r3] 2747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7270 .loc 1 2747 0 is_stmt 1 discriminator 2 7271 003a 0133 adds r3, r3, #1 7272 003c FB5C ldrb r3, [r7, r3] 7273 003e 2A2B cmp r3, #42 7274 0040 2AD0 beq .L504 7275 .L493: 2753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 7276 .loc 1 2753 0 7277 0042 4123 movs r3, #65 7278 0044 2922 movs r2, #41 7279 0046 FA54 strb r2, [r7, r3] 2754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7280 .loc 1 2754 0 7281 0048 0133 adds r3, r3, #1 7282 004a 093A subs r2, r2, #9 7283 004c FA54 strb r2, [r7, r3] 2755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7284 .loc 1 2755 0 7285 004e 0023 movs r3, #0 7286 0050 7B64 str r3, [r7, #68] 2758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7287 .loc 1 2758 0 7288 0052 3A68 ldr r2, [r7] 7289 0054 5368 ldr r3, [r2, #4] 7290 0056 1749 ldr r1, .L506 7291 0058 0B40 ands r3, r1 7292 005a 5360 str r3, [r2, #4] 2761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 7293 .loc 1 2761 0 7294 005c 7C62 str r4, [r7, #36] 2762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 7295 .loc 1 2762 0 7296 005e 7D85 strh r5, [r7, #42] 2763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7297 .loc 1 2763 0 7298 0060 7B8D ldrh r3, [r7, #42] 7299 0062 3B85 strh r3, [r7, #40] 2764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 7300 .loc 1 2764 0 7301 0064 FE62 str r6, [r7, #44] 2765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7302 .loc 1 2765 0 7303 0066 144B ldr r3, .L506+4 7304 0068 7B63 str r3, [r7, #52] 2767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7305 .loc 1 2767 0 7306 006a 3B68 ldr r3, [r7] 7307 006c 9A69 ldr r2, [r3, #24] 7308 006e D203 lsls r2, r2, #15 7309 0070 01D5 bpl .L494 ARM GAS /tmp/ccpuPECZ.s page 232 2771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7310 .loc 1 2771 0 7311 0072 0822 movs r2, #8 7312 0074 DA61 str r2, [r3, #28] 7313 .L494: 2775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7314 .loc 1 2775 0 7315 0076 4023 movs r3, #64 7316 0078 0022 movs r2, #0 7317 007a FA54 strb r2, [r7, r3] 7318 .LVL679: 7319 .LBB284: 7320 .LBB285: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7321 .loc 1 4728 0 7322 007c 7B6B ldr r3, [r7, #52] 7323 007e 0F4A ldr r2, .L506+8 7324 0080 9342 cmp r3, r2 7325 0082 10D0 beq .L500 7326 0084 0E4A ldr r2, .L506+12 7327 0086 9342 cmp r3, r2 7328 0088 0BD0 beq .L505 7329 008a FA21 movs r1, #250 7330 .L495: 7331 .LVL680: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7332 .loc 1 4785 0 7333 008c 3A68 ldr r2, [r7] 7334 008e 1368 ldr r3, [r2] 7335 0090 0B43 orrs r3, r1 7336 0092 1360 str r3, [r2] 7337 .LVL681: 7338 .LBE285: 7339 .LBE284: 2783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7340 .loc 1 2783 0 7341 0094 0020 movs r0, #0 7342 0096 BFE7 b .L492 7343 .L504: 2750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7344 .loc 1 2750 0 7345 0098 0221 movs r1, #2 7346 009a 3800 movs r0, r7 7347 009c FFF7FEFF bl I2C_Disable_IRQ 7348 .LVL682: 7349 00a0 CFE7 b .L493 7350 .LVL683: 7351 .L505: 7352 .LBB287: 7353 .LBB286: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7354 .loc 1 4728 0 7355 00a2 B821 movs r1, #184 7356 00a4 F2E7 b .L495 7357 .L500: 7358 00a6 B821 movs r1, #184 7359 00a8 F0E7 b .L495 ARM GAS /tmp/ccpuPECZ.s page 233 7360 .LVL684: 7361 .L497: 7362 .LBE286: 7363 .LBE287: 2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7364 .loc 1 2736 0 7365 00aa 0120 movs r0, #1 7366 .LVL685: 7367 00ac B4E7 b .L492 7368 .LVL686: 7369 .L499: 2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7370 .loc 1 2743 0 7371 00ae 0220 movs r0, #2 7372 00b0 B2E7 b .L492 7373 .L507: 7374 00b2 C046 .align 2 7375 .L506: 7376 00b4 FF7FFFFF .word -32769 7377 00b8 00000000 .word I2C_Slave_ISR_IT 7378 00bc 00000000 .word I2C_Master_ISR_DMA 7379 00c0 00000000 .word I2C_Slave_ISR_DMA 7380 .cfi_endproc 7381 .LFE64: 7383 .section .text.HAL_I2C_Slave_Sequential_Receive_IT,"ax",%progbits 7384 .align 1 7385 .global HAL_I2C_Slave_Sequential_Receive_IT 7386 .syntax unified 7387 .code 16 7388 .thumb_func 7389 .fpu softvfp 7391 HAL_I2C_Slave_Sequential_Receive_IT: 7392 .LFB65: 2802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Check the parameters */ 7393 .loc 1 2802 0 7394 .cfi_startproc 7395 @ args = 0, pretend = 0, frame = 0 7396 @ frame_needed = 0, uses_anonymous_args = 0 7397 .LVL687: 7398 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 7399 .LCFI54: 7400 .cfi_def_cfa_offset 24 7401 .cfi_offset 3, -24 7402 .cfi_offset 4, -20 7403 .cfi_offset 5, -16 7404 .cfi_offset 6, -12 7405 .cfi_offset 7, -8 7406 .cfi_offset 14, -4 7407 0002 0700 movs r7, r0 7408 0004 0C00 movs r4, r1 7409 0006 1500 movs r5, r2 7410 0008 1E00 movs r6, r3 2806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7411 .loc 1 2806 0 7412 000a 4123 movs r3, #65 7413 .LVL688: 7414 000c C35C ldrb r3, [r0, r3] ARM GAS /tmp/ccpuPECZ.s page 234 7415 000e 2822 movs r2, #40 7416 .LVL689: 7417 0010 1340 ands r3, r2 7418 0012 282B cmp r3, #40 7419 0014 01D0 beq .L519 2861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7420 .loc 1 2861 0 7421 0016 0120 movs r0, #1 7422 .LVL690: 7423 .L509: 2863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7424 .loc 1 2863 0 7425 @ sp needed 7426 .LVL691: 7427 .LVL692: 7428 .LVL693: 7429 0018 F8BD pop {r3, r4, r5, r6, r7, pc} 7430 .LVL694: 7431 .L519: 2808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7432 .loc 1 2808 0 7433 001a 0029 cmp r1, #0 7434 001c 45D0 beq .L514 2808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7435 .loc 1 2808 0 is_stmt 0 discriminator 1 7436 001e 002D cmp r5, #0 7437 0020 01D1 bne .L520 2810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7438 .loc 1 2810 0 is_stmt 1 7439 0022 0120 movs r0, #1 7440 .LVL695: 7441 0024 F8E7 b .L509 7442 .LVL696: 7443 .L520: 2814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7444 .loc 1 2814 0 7445 0026 0621 movs r1, #6 7446 .LVL697: 7447 0028 FFF7FEFF bl I2C_Disable_IRQ 7448 .LVL698: 2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7449 .loc 1 2817 0 7450 002c 4023 movs r3, #64 7451 002e FB5C ldrb r3, [r7, r3] 7452 0030 012B cmp r3, #1 7453 0032 3CD0 beq .L516 2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7454 .loc 1 2817 0 is_stmt 0 discriminator 2 7455 0034 4023 movs r3, #64 7456 0036 0122 movs r2, #1 7457 0038 FA54 strb r2, [r7, r3] 2821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7458 .loc 1 2821 0 is_stmt 1 discriminator 2 7459 003a 0133 adds r3, r3, #1 7460 003c FB5C ldrb r3, [r7, r3] 7461 003e 292B cmp r3, #41 7462 0040 2AD0 beq .L521 ARM GAS /tmp/ccpuPECZ.s page 235 7463 .L510: 2827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 7464 .loc 1 2827 0 7465 0042 4123 movs r3, #65 7466 0044 2A22 movs r2, #42 7467 0046 FA54 strb r2, [r7, r3] 2828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7468 .loc 1 2828 0 7469 0048 0133 adds r3, r3, #1 7470 004a 0A3A subs r2, r2, #10 7471 004c FA54 strb r2, [r7, r3] 2829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7472 .loc 1 2829 0 7473 004e 0023 movs r3, #0 7474 0050 7B64 str r3, [r7, #68] 2832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7475 .loc 1 2832 0 7476 0052 3A68 ldr r2, [r7] 7477 0054 5368 ldr r3, [r2, #4] 7478 0056 1749 ldr r1, .L523 7479 0058 0B40 ands r3, r1 7480 005a 5360 str r3, [r2, #4] 2835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = Size; 7481 .loc 1 2835 0 7482 005c 7C62 str r4, [r7, #36] 2836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 7483 .loc 1 2836 0 7484 005e 7D85 strh r5, [r7, #42] 2837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7485 .loc 1 2837 0 7486 0060 7B8D ldrh r3, [r7, #42] 7487 0062 3B85 strh r3, [r7, #40] 2838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 7488 .loc 1 2838 0 7489 0064 FE62 str r6, [r7, #44] 2839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7490 .loc 1 2839 0 7491 0066 144B ldr r3, .L523+4 7492 0068 7B63 str r3, [r7, #52] 2841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7493 .loc 1 2841 0 7494 006a 3B68 ldr r3, [r7] 7495 006c 9A69 ldr r2, [r3, #24] 7496 006e D203 lsls r2, r2, #15 7497 0070 01D4 bmi .L511 2845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7498 .loc 1 2845 0 7499 0072 0822 movs r2, #8 7500 0074 DA61 str r2, [r3, #28] 7501 .L511: 2849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7502 .loc 1 2849 0 7503 0076 4023 movs r3, #64 7504 0078 0022 movs r2, #0 7505 007a FA54 strb r2, [r7, r3] 7506 .LVL699: 7507 .LBB288: ARM GAS /tmp/ccpuPECZ.s page 236 7508 .LBB289: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7509 .loc 1 4728 0 7510 007c 7B6B ldr r3, [r7, #52] 7511 007e 0F4A ldr r2, .L523+8 7512 0080 9342 cmp r3, r2 7513 0082 10D0 beq .L517 7514 0084 0E4A ldr r2, .L523+12 7515 0086 9342 cmp r3, r2 7516 0088 0BD0 beq .L522 7517 008a FC21 movs r1, #252 7518 .L512: 7519 .LVL700: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7520 .loc 1 4785 0 7521 008c 3A68 ldr r2, [r7] 7522 008e 1368 ldr r3, [r2] 7523 0090 0B43 orrs r3, r1 7524 0092 1360 str r3, [r2] 7525 .LVL701: 7526 .LBE289: 7527 .LBE288: 2857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7528 .loc 1 2857 0 7529 0094 0020 movs r0, #0 7530 0096 BFE7 b .L509 7531 .L521: 2824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7532 .loc 1 2824 0 7533 0098 0121 movs r1, #1 7534 009a 3800 movs r0, r7 7535 009c FFF7FEFF bl I2C_Disable_IRQ 7536 .LVL702: 7537 00a0 CFE7 b .L510 7538 .LVL703: 7539 .L522: 7540 .LBB291: 7541 .LBB290: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7542 .loc 1 4728 0 7543 00a2 B821 movs r1, #184 7544 00a4 F2E7 b .L512 7545 .L517: 7546 00a6 B821 movs r1, #184 7547 00a8 F0E7 b .L512 7548 .LVL704: 7549 .L514: 7550 .LBE290: 7551 .LBE291: 2810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7552 .loc 1 2810 0 7553 00aa 0120 movs r0, #1 7554 .LVL705: 7555 00ac B4E7 b .L509 7556 .LVL706: 7557 .L516: 2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 237 7558 .loc 1 2817 0 7559 00ae 0220 movs r0, #2 7560 00b0 B2E7 b .L509 7561 .L524: 7562 00b2 C046 .align 2 7563 .L523: 7564 00b4 FF7FFFFF .word -32769 7565 00b8 00000000 .word I2C_Slave_ISR_IT 7566 00bc 00000000 .word I2C_Master_ISR_DMA 7567 00c0 00000000 .word I2C_Slave_ISR_DMA 7568 .cfi_endproc 7569 .LFE65: 7571 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 7572 .align 1 7573 .global HAL_I2C_EnableListen_IT 7574 .syntax unified 7575 .code 16 7576 .thumb_func 7577 .fpu softvfp 7579 HAL_I2C_EnableListen_IT: 7580 .LFB66: 2872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 7581 .loc 1 2872 0 7582 .cfi_startproc 7583 @ args = 0, pretend = 0, frame = 0 7584 @ frame_needed = 0, uses_anonymous_args = 0 7585 @ link register save eliminated. 7586 .LVL707: 2873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7587 .loc 1 2873 0 7588 0000 4123 movs r3, #65 7589 0002 C35C ldrb r3, [r0, r3] 7590 0004 202B cmp r3, #32 7591 0006 0BD1 bne .L527 2875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 7592 .loc 1 2875 0 7593 0008 2133 adds r3, r3, #33 7594 000a 2822 movs r2, #40 7595 000c C254 strb r2, [r0, r3] 2876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7596 .loc 1 2876 0 7597 000e 054B ldr r3, .L528 7598 0010 4363 str r3, [r0, #52] 7599 .LVL708: 7600 .LBB292: 7601 .LBB293: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7602 .loc 1 4785 0 7603 0012 0268 ldr r2, [r0] 7604 0014 1368 ldr r3, [r2] 7605 0016 B821 movs r1, #184 7606 0018 0B43 orrs r3, r1 7607 001a 1360 str r3, [r2] 7608 .LVL709: 7609 .LBE293: 7610 .LBE292: 2881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 238 7611 .loc 1 2881 0 7612 001c 0020 movs r0, #0 7613 .LVL710: 7614 .L526: 2887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7615 .loc 1 2887 0 7616 @ sp needed 7617 001e 7047 bx lr 7618 .LVL711: 7619 .L527: 2885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7620 .loc 1 2885 0 7621 0020 0220 movs r0, #2 7622 .LVL712: 7623 0022 FCE7 b .L526 7624 .L529: 7625 .align 2 7626 .L528: 7627 0024 00000000 .word I2C_Slave_ISR_IT 7628 .cfi_endproc 7629 .LFE66: 7631 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 7632 .align 1 7633 .global HAL_I2C_DisableListen_IT 7634 .syntax unified 7635 .code 16 7636 .thumb_func 7637 .fpu softvfp 7639 HAL_I2C_DisableListen_IT: 7640 .LFB67: 2896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 7641 .loc 1 2896 0 7642 .cfi_startproc 7643 @ args = 0, pretend = 0, frame = 0 7644 @ frame_needed = 0, uses_anonymous_args = 0 7645 .LVL713: 7646 0000 70B5 push {r4, r5, r6, lr} 7647 .LCFI55: 7648 .cfi_def_cfa_offset 16 7649 .cfi_offset 4, -16 7650 .cfi_offset 5, -12 7651 .cfi_offset 6, -8 7652 .cfi_offset 14, -4 2901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7653 .loc 1 2901 0 7654 0002 4123 movs r3, #65 7655 0004 C35C ldrb r3, [r0, r3] 7656 0006 282B cmp r3, #40 7657 0008 01D0 beq .L533 2916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7658 .loc 1 2916 0 7659 000a 0220 movs r0, #2 7660 .LVL714: 7661 .L531: 2918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7662 .loc 1 2918 0 7663 @ sp needed ARM GAS /tmp/ccpuPECZ.s page 239 7664 000c 70BD pop {r4, r5, r6, pc} 7665 .LVL715: 7666 .L533: 2903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 7667 .loc 1 2903 0 7668 000e 4124 movs r4, #65 7669 0010 025D ldrb r2, [r0, r4] 7670 .LVL716: 2904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7671 .loc 1 2904 0 7672 0012 4221 movs r1, #66 7673 0014 435C ldrb r3, [r0, r1] 7674 0016 0325 movs r5, #3 7675 0018 2A40 ands r2, r5 7676 .LVL717: 7677 001a 1343 orrs r3, r2 7678 001c 0363 str r3, [r0, #48] 2905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7679 .loc 1 2905 0 7680 001e 2023 movs r3, #32 7681 0020 0355 strb r3, [r0, r4] 2906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 7682 .loc 1 2906 0 7683 0022 0023 movs r3, #0 7684 0024 4354 strb r3, [r0, r1] 2907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7685 .loc 1 2907 0 7686 0026 4363 str r3, [r0, #52] 2910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7687 .loc 1 2910 0 7688 0028 3E39 subs r1, r1, #62 7689 002a FFF7FEFF bl I2C_Disable_IRQ 7690 .LVL718: 2912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7691 .loc 1 2912 0 7692 002e 0020 movs r0, #0 7693 0030 ECE7 b .L531 7694 .cfi_endproc 7695 .LFE67: 7697 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 7698 .align 1 7699 .global HAL_I2C_Master_Abort_IT 7700 .syntax unified 7701 .code 16 7702 .thumb_func 7703 .fpu softvfp 7705 HAL_I2C_Master_Abort_IT: 7706 .LFB68: 2929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 7707 .loc 1 2929 0 7708 .cfi_startproc 7709 @ args = 0, pretend = 0, frame = 0 7710 @ frame_needed = 0, uses_anonymous_args = 0 7711 .LVL719: 7712 0000 70B5 push {r4, r5, r6, lr} 7713 .LCFI56: 7714 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccpuPECZ.s page 240 7715 .cfi_offset 4, -16 7716 .cfi_offset 5, -12 7717 .cfi_offset 6, -8 7718 .cfi_offset 14, -4 7719 0002 0400 movs r4, r0 7720 0004 0D00 movs r5, r1 2930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7721 .loc 1 2930 0 7722 0006 4223 movs r3, #66 7723 0008 C35C ldrb r3, [r0, r3] 7724 000a 102B cmp r3, #16 7725 000c 01D0 beq .L541 2960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7726 .loc 1 2960 0 7727 000e 0120 movs r0, #1 7728 .LVL720: 7729 .L535: 2962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7730 .loc 1 2962 0 7731 @ sp needed 7732 .LVL721: 7733 0010 70BD pop {r4, r5, r6, pc} 7734 .LVL722: 7735 .L541: 2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7736 .loc 1 2933 0 7737 0012 3033 adds r3, r3, #48 7738 0014 C35C ldrb r3, [r0, r3] 7739 0016 012B cmp r3, #1 7740 0018 2AD0 beq .L538 2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7741 .loc 1 2933 0 is_stmt 0 discriminator 2 7742 001a 4026 movs r6, #64 7743 001c 0123 movs r3, #1 7744 001e 8355 strb r3, [r0, r6] 2936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 7745 .loc 1 2936 0 is_stmt 1 discriminator 2 7746 0020 0221 movs r1, #2 7747 .LVL723: 7748 0022 FFF7FEFF bl I2C_Disable_IRQ 7749 .LVL724: 2937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7750 .loc 1 2937 0 discriminator 2 7751 0026 0121 movs r1, #1 7752 0028 2000 movs r0, r4 7753 002a FFF7FEFF bl I2C_Disable_IRQ 7754 .LVL725: 2940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7755 .loc 1 2940 0 discriminator 2 7756 002e 4123 movs r3, #65 7757 0030 6022 movs r2, #96 7758 0032 E254 strb r2, [r4, r3] 7759 .LVL726: 7760 .LBB294: 7761 .LBB295: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 7762 .loc 1 4713 0 discriminator 2 ARM GAS /tmp/ccpuPECZ.s page 241 7763 0034 2168 ldr r1, [r4] 7764 0036 4B68 ldr r3, [r1, #4] 7765 0038 0E4A ldr r2, .L543 7766 003a 1340 ands r3, r2 7767 003c AD05 lsls r5, r5, #22 7768 .LVL727: 7769 003e AD0D lsrs r5, r5, #22 7770 0040 0D4A ldr r2, .L543+4 7771 0042 1543 orrs r5, r2 7772 0044 1D43 orrs r5, r3 7773 0046 4D60 str r5, [r1, #4] 7774 .LVL728: 7775 .LBE295: 7776 .LBE294: 2947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7777 .loc 1 2947 0 discriminator 2 7778 0048 0023 movs r3, #0 7779 004a A355 strb r3, [r4, r6] 7780 .LVL729: 7781 .LBB296: 7782 .LBB297: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7783 .loc 1 4728 0 discriminator 2 7784 004c 636B ldr r3, [r4, #52] 7785 004e 0B4A ldr r2, .L543+8 7786 0050 9342 cmp r3, r2 7787 0052 0BD0 beq .L539 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 7788 .loc 1 4728 0 is_stmt 0 7789 0054 0A4A ldr r2, .L543+12 7790 0056 9342 cmp r3, r2 7791 0058 06D0 beq .L542 4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7792 .loc 1 4778 0 is_stmt 1 7793 005a F421 movs r1, #244 7794 .L536: 7795 .LVL730: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7796 .loc 1 4785 0 7797 005c 2268 ldr r2, [r4] 7798 005e 1368 ldr r3, [r2] 7799 0060 0B43 orrs r3, r1 7800 0062 1360 str r3, [r2] 7801 .LVL731: 7802 .LBE297: 7803 .LBE296: 2954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7804 .loc 1 2954 0 7805 0064 0020 movs r0, #0 7806 0066 D3E7 b .L535 7807 .LVL732: 7808 .L542: 7809 .LBB299: 7810 .LBB298: 4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7811 .loc 1 4752 0 7812 0068 6021 movs r1, #96 ARM GAS /tmp/ccpuPECZ.s page 242 7813 006a F7E7 b .L536 7814 .L539: 7815 006c 6021 movs r1, #96 7816 006e F5E7 b .L536 7817 .LVL733: 7818 .L538: 7819 .LBE298: 7820 .LBE299: 2933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7821 .loc 1 2933 0 7822 0070 0220 movs r0, #2 7823 .LVL734: 7824 0072 CDE7 b .L535 7825 .L544: 7826 .align 2 7827 .L543: 7828 0074 009800FC .word -67069952 7829 0078 00400182 .word -2113847296 7830 007c 00000000 .word I2C_Master_ISR_DMA 7831 0080 00000000 .word I2C_Slave_ISR_DMA 7832 .cfi_endproc 7833 .LFE68: 7835 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 7836 .align 1 7837 .global HAL_I2C_EV_IRQHandler 7838 .syntax unified 7839 .code 16 7840 .thumb_func 7841 .fpu softvfp 7843 HAL_I2C_EV_IRQHandler: 7844 .LFB69: 2979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 7845 .loc 1 2979 0 7846 .cfi_startproc 7847 @ args = 0, pretend = 0, frame = 0 7848 @ frame_needed = 0, uses_anonymous_args = 0 7849 .LVL735: 7850 0000 10B5 push {r4, lr} 7851 .LCFI57: 7852 .cfi_def_cfa_offset 8 7853 .cfi_offset 4, -8 7854 .cfi_offset 14, -4 2981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 7855 .loc 1 2981 0 7856 0002 0368 ldr r3, [r0] 7857 0004 9969 ldr r1, [r3, #24] 7858 .LVL736: 2982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7859 .loc 1 2982 0 7860 0006 1A68 ldr r2, [r3] 7861 .LVL737: 2985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7862 .loc 1 2985 0 7863 0008 436B ldr r3, [r0, #52] 7864 000a 002B cmp r3, #0 7865 000c 00D0 beq .L545 2987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 243 7866 .loc 1 2987 0 7867 000e 9847 blx r3 7868 .LVL738: 7869 .L545: 2989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7870 .loc 1 2989 0 7871 @ sp needed 7872 0010 10BD pop {r4, pc} 7873 .cfi_endproc 7874 .LFE69: 7876 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 7877 .align 1 7878 .weak HAL_I2C_MasterTxCpltCallback 7879 .syntax unified 7880 .code 16 7881 .thumb_func 7882 .fpu softvfp 7884 HAL_I2C_MasterTxCpltCallback: 7885 .LFB71: 3043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 7886 .loc 1 3043 0 7887 .cfi_startproc 7888 @ args = 0, pretend = 0, frame = 0 7889 @ frame_needed = 0, uses_anonymous_args = 0 7890 @ link register save eliminated. 7891 .LVL739: 3050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7892 .loc 1 3050 0 7893 @ sp needed 7894 0000 7047 bx lr 7895 .cfi_endproc 7896 .LFE71: 7898 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 7899 .align 1 7900 .weak HAL_I2C_MasterRxCpltCallback 7901 .syntax unified 7902 .code 16 7903 .thumb_func 7904 .fpu softvfp 7906 HAL_I2C_MasterRxCpltCallback: 7907 .LFB72: 3059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 7908 .loc 1 3059 0 7909 .cfi_startproc 7910 @ args = 0, pretend = 0, frame = 0 7911 @ frame_needed = 0, uses_anonymous_args = 0 7912 @ link register save eliminated. 7913 .LVL740: 3066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7914 .loc 1 3066 0 7915 @ sp needed 7916 0000 7047 bx lr 7917 .cfi_endproc 7918 .LFE72: 7920 .section .text.I2C_ITMasterSequentialCplt,"ax",%progbits 7921 .align 1 7922 .syntax unified ARM GAS /tmp/ccpuPECZ.s page 244 7923 .code 16 7924 .thumb_func 7925 .fpu softvfp 7927 I2C_ITMasterSequentialCplt: 7928 .LFB91: 3865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */ 7929 .loc 1 3865 0 7930 .cfi_startproc 7931 @ args = 0, pretend = 0, frame = 0 7932 @ frame_needed = 0, uses_anonymous_args = 0 7933 .LVL741: 7934 0000 70B5 push {r4, r5, r6, lr} 7935 .LCFI58: 7936 .cfi_def_cfa_offset 16 7937 .cfi_offset 4, -16 7938 .cfi_offset 5, -12 7939 .cfi_offset 6, -8 7940 .cfi_offset 14, -4 7941 0002 0400 movs r4, r0 3867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7942 .loc 1 3867 0 7943 0004 4223 movs r3, #66 7944 0006 0022 movs r2, #0 7945 0008 C254 strb r2, [r0, r3] 3871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 7946 .loc 1 3871 0 7947 000a 013B subs r3, r3, #1 7948 000c C35C ldrb r3, [r0, r3] 7949 000e 212B cmp r3, #33 7950 0010 0FD0 beq .L552 3889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 7951 .loc 1 3889 0 7952 0012 4123 movs r3, #65 7953 0014 2022 movs r2, #32 7954 0016 C254 strb r2, [r0, r3] 3890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 7955 .loc 1 3890 0 7956 0018 2F3B subs r3, r3, #47 7957 001a 0363 str r3, [r0, #48] 3891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7958 .loc 1 3891 0 7959 001c 0025 movs r5, #0 7960 001e 4563 str r5, [r0, #52] 3894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7961 .loc 1 3894 0 7962 0020 0221 movs r1, #2 7963 0022 FFF7FEFF bl I2C_Disable_IRQ 7964 .LVL742: 3897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7965 .loc 1 3897 0 7966 0026 4023 movs r3, #64 7967 0028 E554 strb r5, [r4, r3] 3900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7968 .loc 1 3900 0 7969 002a 2000 movs r0, r4 7970 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 7971 .LVL743: ARM GAS /tmp/ccpuPECZ.s page 245 7972 .L549: 3902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7973 .loc 1 3902 0 7974 @ sp needed 7975 .LVL744: 7976 0030 70BD pop {r4, r5, r6, pc} 7977 .LVL745: 7978 .L552: 3873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 7979 .loc 1 3873 0 7980 0032 2033 adds r3, r3, #32 7981 0034 2032 adds r2, r2, #32 7982 0036 C254 strb r2, [r0, r3] 3874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 7983 .loc 1 3874 0 7984 0038 303B subs r3, r3, #48 7985 003a 0363 str r3, [r0, #48] 3875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7986 .loc 1 3875 0 7987 003c 0025 movs r5, #0 7988 003e 4563 str r5, [r0, #52] 3878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7989 .loc 1 3878 0 7990 0040 0121 movs r1, #1 7991 0042 FFF7FEFF bl I2C_Disable_IRQ 7992 .LVL746: 3881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 7993 .loc 1 3881 0 7994 0046 4023 movs r3, #64 7995 0048 E554 strb r5, [r4, r3] 3884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 7996 .loc 1 3884 0 7997 004a 2000 movs r0, r4 7998 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 7999 .LVL747: 8000 0050 EEE7 b .L549 8001 .cfi_endproc 8002 .LFE91: 8004 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 8005 .align 1 8006 .weak HAL_I2C_SlaveTxCpltCallback 8007 .syntax unified 8008 .code 16 8009 .thumb_func 8010 .fpu softvfp 8012 HAL_I2C_SlaveTxCpltCallback: 8013 .LFB73: 3074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8014 .loc 1 3074 0 8015 .cfi_startproc 8016 @ args = 0, pretend = 0, frame = 0 8017 @ frame_needed = 0, uses_anonymous_args = 0 8018 @ link register save eliminated. 8019 .LVL748: 3081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8020 .loc 1 3081 0 8021 @ sp needed ARM GAS /tmp/ccpuPECZ.s page 246 8022 0000 7047 bx lr 8023 .cfi_endproc 8024 .LFE73: 8026 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 8027 .align 1 8028 .weak HAL_I2C_SlaveRxCpltCallback 8029 .syntax unified 8030 .code 16 8031 .thumb_func 8032 .fpu softvfp 8034 HAL_I2C_SlaveRxCpltCallback: 8035 .LFB74: 3090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8036 .loc 1 3090 0 8037 .cfi_startproc 8038 @ args = 0, pretend = 0, frame = 0 8039 @ frame_needed = 0, uses_anonymous_args = 0 8040 @ link register save eliminated. 8041 .LVL749: 3097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8042 .loc 1 3097 0 8043 @ sp needed 8044 0000 7047 bx lr 8045 .cfi_endproc 8046 .LFE74: 8048 .section .text.I2C_ITSlaveSequentialCplt,"ax",%progbits 8049 .align 1 8050 .syntax unified 8051 .code 16 8052 .thumb_func 8053 .fpu softvfp 8055 I2C_ITSlaveSequentialCplt: 8056 .LFB92: 3910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset I2C handle mode */ 8057 .loc 1 3910 0 8058 .cfi_startproc 8059 @ args = 0, pretend = 0, frame = 0 8060 @ frame_needed = 0, uses_anonymous_args = 0 8061 .LVL750: 8062 0000 10B5 push {r4, lr} 8063 .LCFI59: 8064 .cfi_def_cfa_offset 8 8065 .cfi_offset 4, -8 8066 .cfi_offset 14, -4 8067 0002 0400 movs r4, r0 3912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8068 .loc 1 3912 0 8069 0004 4223 movs r3, #66 8070 0006 0022 movs r2, #0 8071 0008 C254 strb r2, [r0, r3] 3914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8072 .loc 1 3914 0 8073 000a 013B subs r3, r3, #1 8074 000c C35C ldrb r3, [r0, r3] 8075 000e 292B cmp r3, #41 8076 0010 04D0 beq .L558 3930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 247 8077 .loc 1 3930 0 8078 0012 4123 movs r3, #65 8079 0014 C35C ldrb r3, [r0, r3] 8080 0016 2A2B cmp r3, #42 8081 0018 0FD0 beq .L559 8082 .LVL751: 8083 .L555: 3945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8084 .loc 1 3945 0 8085 @ sp needed 8086 .LVL752: 8087 001a 10BD pop {r4, pc} 8088 .LVL753: 8089 .L558: 3917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 8090 .loc 1 3917 0 8091 001c 1833 adds r3, r3, #24 8092 001e 2832 adds r2, r2, #40 8093 0020 C254 strb r2, [r0, r3] 3918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8094 .loc 1 3918 0 8095 0022 203B subs r3, r3, #32 8096 0024 0363 str r3, [r0, #48] 3921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8097 .loc 1 3921 0 8098 0026 0121 movs r1, #1 8099 0028 FFF7FEFF bl I2C_Disable_IRQ 8100 .LVL754: 3924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8101 .loc 1 3924 0 8102 002c 4023 movs r3, #64 8103 002e 0022 movs r2, #0 8104 0030 E254 strb r2, [r4, r3] 3927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8105 .loc 1 3927 0 8106 0032 2000 movs r0, r4 8107 0034 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 8108 .LVL755: 8109 0038 EFE7 b .L555 8110 .LVL756: 8111 .L559: 3933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 8112 .loc 1 3933 0 8113 003a 1733 adds r3, r3, #23 8114 003c 2822 movs r2, #40 8115 003e C254 strb r2, [r0, r3] 3934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8116 .loc 1 3934 0 8117 0040 1F3B subs r3, r3, #31 8118 0042 0363 str r3, [r0, #48] 3937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8119 .loc 1 3937 0 8120 0044 0221 movs r1, #2 8121 0046 FFF7FEFF bl I2C_Disable_IRQ 8122 .LVL757: 3940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8123 .loc 1 3940 0 ARM GAS /tmp/ccpuPECZ.s page 248 8124 004a 4023 movs r3, #64 8125 004c 0022 movs r2, #0 8126 004e E254 strb r2, [r4, r3] 3943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8127 .loc 1 3943 0 8128 0050 2000 movs r0, r4 8129 0052 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 8130 .LVL758: 3945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8131 .loc 1 3945 0 8132 0056 E0E7 b .L555 8133 .cfi_endproc 8134 .LFE92: 8136 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 8137 .align 1 8138 .weak HAL_I2C_AddrCallback 8139 .syntax unified 8140 .code 16 8141 .thumb_func 8142 .fpu softvfp 8144 HAL_I2C_AddrCallback: 8145 .LFB75: 3108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8146 .loc 1 3108 0 8147 .cfi_startproc 8148 @ args = 0, pretend = 0, frame = 0 8149 @ frame_needed = 0, uses_anonymous_args = 0 8150 @ link register save eliminated. 8151 .LVL759: 3117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8152 .loc 1 3117 0 8153 @ sp needed 8154 0000 7047 bx lr 8155 .cfi_endproc 8156 .LFE75: 8158 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 8159 .align 1 8160 .weak HAL_I2C_ListenCpltCallback 8161 .syntax unified 8162 .code 16 8163 .thumb_func 8164 .fpu softvfp 8166 HAL_I2C_ListenCpltCallback: 8167 .LFB76: 3126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8168 .loc 1 3126 0 8169 .cfi_startproc 8170 @ args = 0, pretend = 0, frame = 0 8171 @ frame_needed = 0, uses_anonymous_args = 0 8172 @ link register save eliminated. 8173 .LVL760: 3133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8174 .loc 1 3133 0 8175 @ sp needed 8176 0000 7047 bx lr 8177 .cfi_endproc 8178 .LFE76: ARM GAS /tmp/ccpuPECZ.s page 249 8180 .section .text.I2C_ITListenCplt,"ax",%progbits 8181 .align 1 8182 .syntax unified 8183 .code 16 8184 .thumb_func 8185 .fpu softvfp 8187 I2C_ITListenCplt: 8188 .LFB95: 4152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */ 8189 .loc 1 4152 0 8190 .cfi_startproc 8191 @ args = 0, pretend = 0, frame = 0 8192 @ frame_needed = 0, uses_anonymous_args = 0 8193 .LVL761: 8194 0000 10B5 push {r4, lr} 8195 .LCFI60: 8196 .cfi_def_cfa_offset 8 8197 .cfi_offset 4, -8 8198 .cfi_offset 14, -4 8199 0002 0400 movs r4, r0 4154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 8200 .loc 1 4154 0 8201 0004 164B ldr r3, .L564 8202 0006 C362 str r3, [r0, #44] 4155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 8203 .loc 1 4155 0 8204 0008 0023 movs r3, #0 8205 000a 0363 str r3, [r0, #48] 4156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8206 .loc 1 4156 0 8207 000c 4122 movs r2, #65 8208 000e 2020 movs r0, #32 8209 .LVL762: 8210 0010 A054 strb r0, [r4, r2] 4157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 8211 .loc 1 4157 0 8212 0012 0132 adds r2, r2, #1 8213 0014 A354 strb r3, [r4, r2] 4158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8214 .loc 1 4158 0 8215 0016 6363 str r3, [r4, #52] 4161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8216 .loc 1 4161 0 8217 0018 4B07 lsls r3, r1, #29 8218 001a 12D5 bpl .L563 4164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8219 .loc 1 4164 0 8220 001c 2368 ldr r3, [r4] 8221 001e 5A6A ldr r2, [r3, #36] 8222 0020 636A ldr r3, [r4, #36] 8223 0022 591C adds r1, r3, #1 8224 .LVL763: 8225 0024 6162 str r1, [r4, #36] 8226 0026 1A70 strb r2, [r3] 4166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8227 .loc 1 4166 0 8228 0028 238D ldrh r3, [r4, #40] ARM GAS /tmp/ccpuPECZ.s page 250 8229 002a 002B cmp r3, #0 8230 002c 09D0 beq .L563 4168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 8231 .loc 1 4168 0 8232 002e 013B subs r3, r3, #1 8233 0030 2385 strh r3, [r4, #40] 4169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8234 .loc 1 4169 0 8235 0032 638D ldrh r3, [r4, #42] 8236 0034 013B subs r3, r3, #1 8237 0036 9BB2 uxth r3, r3 8238 0038 6385 strh r3, [r4, #42] 4172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8239 .loc 1 4172 0 8240 003a 636C ldr r3, [r4, #68] 8241 003c 0422 movs r2, #4 8242 003e 1343 orrs r3, r2 8243 0040 6364 str r3, [r4, #68] 8244 .L563: 4177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8245 .loc 1 4177 0 8246 0042 0721 movs r1, #7 8247 0044 2000 movs r0, r4 8248 0046 FFF7FEFF bl I2C_Disable_IRQ 8249 .LVL764: 4180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8250 .loc 1 4180 0 8251 004a 2368 ldr r3, [r4] 8252 004c 1022 movs r2, #16 8253 004e DA61 str r2, [r3, #28] 4183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8254 .loc 1 4183 0 8255 0050 4023 movs r3, #64 8256 0052 0022 movs r2, #0 8257 0054 E254 strb r2, [r4, r3] 4186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8258 .loc 1 4186 0 8259 0056 2000 movs r0, r4 8260 0058 FFF7FEFF bl HAL_I2C_ListenCpltCallback 8261 .LVL765: 4187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8262 .loc 1 4187 0 8263 @ sp needed 8264 .LVL766: 8265 005c 10BD pop {r4, pc} 8266 .L565: 8267 005e C046 .align 2 8268 .L564: 8269 0060 0000FFFF .word -65536 8270 .cfi_endproc 8271 .LFE95: 8273 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 8274 .align 1 8275 .weak HAL_I2C_MemTxCpltCallback 8276 .syntax unified 8277 .code 16 8278 .thumb_func ARM GAS /tmp/ccpuPECZ.s page 251 8279 .fpu softvfp 8281 HAL_I2C_MemTxCpltCallback: 8282 .LFB77: 3142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8283 .loc 1 3142 0 8284 .cfi_startproc 8285 @ args = 0, pretend = 0, frame = 0 8286 @ frame_needed = 0, uses_anonymous_args = 0 8287 @ link register save eliminated. 8288 .LVL767: 3149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8289 .loc 1 3149 0 8290 @ sp needed 8291 0000 7047 bx lr 8292 .cfi_endproc 8293 .LFE77: 8295 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 8296 .align 1 8297 .weak HAL_I2C_MemRxCpltCallback 8298 .syntax unified 8299 .code 16 8300 .thumb_func 8301 .fpu softvfp 8303 HAL_I2C_MemRxCpltCallback: 8304 .LFB78: 3158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8305 .loc 1 3158 0 8306 .cfi_startproc 8307 @ args = 0, pretend = 0, frame = 0 8308 @ frame_needed = 0, uses_anonymous_args = 0 8309 @ link register save eliminated. 8310 .LVL768: 3165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8311 .loc 1 3165 0 8312 @ sp needed 8313 0000 7047 bx lr 8314 .cfi_endproc 8315 .LFE78: 8317 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 8318 .align 1 8319 .weak HAL_I2C_ErrorCallback 8320 .syntax unified 8321 .code 16 8322 .thumb_func 8323 .fpu softvfp 8325 HAL_I2C_ErrorCallback: 8326 .LFB79: 3174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8327 .loc 1 3174 0 8328 .cfi_startproc 8329 @ args = 0, pretend = 0, frame = 0 8330 @ frame_needed = 0, uses_anonymous_args = 0 8331 @ link register save eliminated. 8332 .LVL769: 3181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8333 .loc 1 3181 0 8334 @ sp needed ARM GAS /tmp/ccpuPECZ.s page 252 8335 0000 7047 bx lr 8336 .cfi_endproc 8337 .LFE79: 8339 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 8340 .align 1 8341 .weak HAL_I2C_AbortCpltCallback 8342 .syntax unified 8343 .code 16 8344 .thumb_func 8345 .fpu softvfp 8347 HAL_I2C_AbortCpltCallback: 8348 .LFB80: 3190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 8349 .loc 1 3190 0 8350 .cfi_startproc 8351 @ args = 0, pretend = 0, frame = 0 8352 @ frame_needed = 0, uses_anonymous_args = 0 8353 @ link register save eliminated. 8354 .LVL770: 3197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8355 .loc 1 3197 0 8356 @ sp needed 8357 0000 7047 bx lr 8358 .cfi_endproc 8359 .LFE80: 8361 .section .text.I2C_ITError,"ax",%progbits 8362 .align 1 8363 .syntax unified 8364 .code 16 8365 .thumb_func 8366 .fpu softvfp 8368 I2C_ITError: 8369 .LFB96: 4196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Reset handle parameters */ 8370 .loc 1 4196 0 8371 .cfi_startproc 8372 @ args = 0, pretend = 0, frame = 0 8373 @ frame_needed = 0, uses_anonymous_args = 0 8374 .LVL771: 8375 0000 10B5 push {r4, lr} 8376 .LCFI61: 8377 .cfi_def_cfa_offset 8 8378 .cfi_offset 4, -8 8379 .cfi_offset 14, -4 8380 0002 0400 movs r4, r0 4198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 8381 .loc 1 4198 0 8382 0004 0023 movs r3, #0 8383 0006 4222 movs r2, #66 8384 0008 8354 strb r3, [r0, r2] 4199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount = 0U; 8385 .loc 1 4199 0 8386 000a 364A ldr r2, .L582 8387 000c C262 str r2, [r0, #44] 4200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8388 .loc 1 4200 0 8389 000e 4385 strh r3, [r0, #42] ARM GAS /tmp/ccpuPECZ.s page 253 4203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8390 .loc 1 4203 0 8391 0010 436C ldr r3, [r0, #68] 8392 0012 1943 orrs r1, r3 8393 .LVL772: 8394 0014 4164 str r1, [r0, #68] 4206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) || 8395 .loc 1 4206 0 8396 0016 4123 movs r3, #65 8397 0018 C35C ldrb r3, [r0, r3] 8398 001a 282B cmp r3, #40 8399 001c 07D0 beq .L571 4207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)) 8400 .loc 1 4207 0 discriminator 1 8401 001e 4123 movs r3, #65 8402 0020 C35C ldrb r3, [r0, r3] 4206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) || 8403 .loc 1 4206 0 discriminator 1 8404 0022 292B cmp r3, #41 8405 0024 03D0 beq .L571 4208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8406 .loc 1 4208 0 8407 0026 4123 movs r3, #65 8408 0028 C35C ldrb r3, [r0, r3] 4207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)) 8409 .loc 1 4207 0 8410 002a 2A2B cmp r3, #42 8411 002c 1CD1 bne .L572 8412 .L571: 4211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8413 .loc 1 4211 0 8414 002e 0321 movs r1, #3 8415 0030 2000 movs r0, r4 8416 .LVL773: 8417 0032 FFF7FEFF bl I2C_Disable_IRQ 8418 .LVL774: 4214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 8419 .loc 1 4214 0 8420 0036 4123 movs r3, #65 8421 0038 2822 movs r2, #40 8422 003a E254 strb r2, [r4, r3] 4215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8423 .loc 1 4215 0 8424 003c 0023 movs r3, #0 8425 003e 2363 str r3, [r4, #48] 4216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8426 .loc 1 4216 0 8427 0040 294B ldr r3, .L582+4 8428 0042 6363 str r3, [r4, #52] 8429 .L573: 4235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8430 .loc 1 4235 0 8431 0044 2368 ldr r3, [r4] 8432 0046 1A68 ldr r2, [r3] 8433 0048 5204 lsls r2, r2, #17 8434 004a 1BD4 bmi .L579 4254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 254 8435 .loc 1 4254 0 8436 004c 1A68 ldr r2, [r3] 8437 004e 1204 lsls r2, r2, #16 8438 0050 2BD4 bmi .L580 4272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8439 .loc 1 4272 0 8440 0052 4123 movs r3, #65 8441 0054 E35C ldrb r3, [r4, r3] 8442 0056 602B cmp r3, #96 8443 0058 3AD0 beq .L581 4285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8444 .loc 1 4285 0 8445 005a 4023 movs r3, #64 8446 005c 0022 movs r2, #0 8447 005e E254 strb r2, [r4, r3] 4288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8448 .loc 1 4288 0 8449 0060 2000 movs r0, r4 8450 0062 FFF7FEFF bl HAL_I2C_ErrorCallback 8451 .LVL775: 8452 .L570: 4290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8453 .loc 1 4290 0 8454 @ sp needed 8455 .LVL776: 8456 0066 10BD pop {r4, pc} 8457 .LVL777: 8458 .L572: 4221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8459 .loc 1 4221 0 8460 0068 0721 movs r1, #7 8461 006a FFF7FEFF bl I2C_Disable_IRQ 8462 .LVL778: 4225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8463 .loc 1 4225 0 8464 006e 4123 movs r3, #65 8465 0070 E35C ldrb r3, [r4, r3] 8466 0072 602B cmp r3, #96 8467 0074 02D0 beq .L574 4228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8468 .loc 1 4228 0 8469 0076 4123 movs r3, #65 8470 0078 2022 movs r2, #32 8471 007a E254 strb r2, [r4, r3] 8472 .L574: 4230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 8473 .loc 1 4230 0 8474 007c 0023 movs r3, #0 8475 007e 2363 str r3, [r4, #48] 4231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8476 .loc 1 4231 0 8477 0080 6363 str r3, [r4, #52] 8478 0082 DFE7 b .L573 8479 .L579: 4237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8480 .loc 1 4237 0 8481 0084 1A68 ldr r2, [r3] ARM GAS /tmp/ccpuPECZ.s page 255 8482 0086 1949 ldr r1, .L582+8 8483 0088 0A40 ands r2, r1 8484 008a 1A60 str r2, [r3] 4241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8485 .loc 1 4241 0 8486 008c A36B ldr r3, [r4, #56] 8487 008e 184A ldr r2, .L582+12 8488 0090 9A63 str r2, [r3, #56] 4244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8489 .loc 1 4244 0 8490 0092 4023 movs r3, #64 8491 0094 0022 movs r2, #0 8492 0096 E254 strb r2, [r4, r3] 4247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8493 .loc 1 4247 0 8494 0098 A06B ldr r0, [r4, #56] 8495 009a FFF7FEFF bl HAL_DMA_Abort_IT 8496 .LVL779: 8497 009e 0028 cmp r0, #0 8498 00a0 E1D0 beq .L570 4250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8499 .loc 1 4250 0 8500 00a2 A06B ldr r0, [r4, #56] 8501 00a4 836B ldr r3, [r0, #56] 8502 00a6 9847 blx r3 8503 .LVL780: 8504 00a8 DDE7 b .L570 8505 .L580: 4256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8506 .loc 1 4256 0 8507 00aa 1A68 ldr r2, [r3] 8508 00ac 1149 ldr r1, .L582+16 8509 00ae 0A40 ands r2, r1 8510 00b0 1A60 str r2, [r3] 4260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8511 .loc 1 4260 0 8512 00b2 E36B ldr r3, [r4, #60] 8513 00b4 0E4A ldr r2, .L582+12 8514 00b6 9A63 str r2, [r3, #56] 4263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8515 .loc 1 4263 0 8516 00b8 4023 movs r3, #64 8517 00ba 0022 movs r2, #0 8518 00bc E254 strb r2, [r4, r3] 4266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8519 .loc 1 4266 0 8520 00be E06B ldr r0, [r4, #60] 8521 00c0 FFF7FEFF bl HAL_DMA_Abort_IT 8522 .LVL781: 8523 00c4 0028 cmp r0, #0 8524 00c6 CED0 beq .L570 4269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8525 .loc 1 4269 0 8526 00c8 E06B ldr r0, [r4, #60] 8527 00ca 836B ldr r3, [r0, #56] 8528 00cc 9847 blx r3 8529 .LVL782: ARM GAS /tmp/ccpuPECZ.s page 256 8530 00ce CAE7 b .L570 8531 .L581: 4274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8532 .loc 1 4274 0 8533 00d0 1F3B subs r3, r3, #31 8534 00d2 2022 movs r2, #32 8535 00d4 E254 strb r2, [r4, r3] 4277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8536 .loc 1 4277 0 8537 00d6 013B subs r3, r3, #1 8538 00d8 0022 movs r2, #0 8539 00da E254 strb r2, [r4, r3] 4280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8540 .loc 1 4280 0 8541 00dc 2000 movs r0, r4 8542 00de FFF7FEFF bl HAL_I2C_AbortCpltCallback 8543 .LVL783: 8544 00e2 C0E7 b .L570 8545 .L583: 8546 .align 2 8547 .L582: 8548 00e4 0000FFFF .word -65536 8549 00e8 00000000 .word I2C_Slave_ISR_IT 8550 00ec FFBFFFFF .word -16385 8551 00f0 00000000 .word I2C_DMAAbort 8552 00f4 FF7FFFFF .word -32769 8553 .cfi_endproc 8554 .LFE96: 8556 .section .text.I2C_ITSlaveCplt,"ax",%progbits 8557 .align 1 8558 .syntax unified 8559 .code 16 8560 .thumb_func 8561 .fpu softvfp 8563 I2C_ITSlaveCplt: 8564 .LFB94: 4046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 8565 .loc 1 4046 0 8566 .cfi_startproc 8567 @ args = 0, pretend = 0, frame = 0 8568 @ frame_needed = 0, uses_anonymous_args = 0 8569 .LVL784: 8570 0000 70B5 push {r4, r5, r6, lr} 8571 .LCFI62: 8572 .cfi_def_cfa_offset 16 8573 .cfi_offset 4, -16 8574 .cfi_offset 5, -12 8575 .cfi_offset 6, -8 8576 .cfi_offset 14, -4 8577 0002 0400 movs r4, r0 8578 0004 0D00 movs r5, r1 4048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8579 .loc 1 4048 0 8580 0006 0368 ldr r3, [r0] 8581 0008 2022 movs r2, #32 8582 000a DA61 str r2, [r3, #28] 4051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ARM GAS /tmp/ccpuPECZ.s page 257 8583 .loc 1 4051 0 8584 000c 0368 ldr r3, [r0] 8585 000e 183A subs r2, r2, #24 8586 0010 DA61 str r2, [r3, #28] 4054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8587 .loc 1 4054 0 8588 0012 0721 movs r1, #7 8589 .LVL785: 8590 0014 FFF7FEFF bl I2C_Disable_IRQ 8591 .LVL786: 4057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8592 .loc 1 4057 0 8593 0018 2268 ldr r2, [r4] 8594 001a 5168 ldr r1, [r2, #4] 8595 001c 8023 movs r3, #128 8596 001e 1B02 lsls r3, r3, #8 8597 0020 0B43 orrs r3, r1 8598 0022 5360 str r3, [r2, #4] 4060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8599 .loc 1 4060 0 8600 0024 2268 ldr r2, [r4] 8601 0026 5368 ldr r3, [r2, #4] 8602 0028 3E49 ldr r1, .L601 8603 002a 0B40 ands r3, r1 8604 002c 5360 str r3, [r2, #4] 8605 .LVL787: 8606 .LBB300: 8607 .LBB301: 4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8608 .loc 1 4301 0 8609 002e 2368 ldr r3, [r4] 8610 0030 9A69 ldr r2, [r3, #24] 8611 0032 9207 lsls r2, r2, #30 8612 0034 01D5 bpl .L585 4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8613 .loc 1 4303 0 8614 0036 0022 movs r2, #0 8615 0038 9A62 str r2, [r3, #40] 8616 .L585: 4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8617 .loc 1 4307 0 8618 003a 2368 ldr r3, [r4] 8619 003c 9A69 ldr r2, [r3, #24] 8620 003e D207 lsls r2, r2, #31 8621 0040 03D4 bmi .L586 4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8622 .loc 1 4309 0 8623 0042 9A69 ldr r2, [r3, #24] 8624 0044 0121 movs r1, #1 8625 0046 0A43 orrs r2, r1 8626 0048 9A61 str r2, [r3, #24] 8627 .L586: 8628 .LVL788: 8629 .LBE301: 8630 .LBE300: 4066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)) 8631 .loc 1 4066 0 ARM GAS /tmp/ccpuPECZ.s page 258 8632 004a 2268 ldr r2, [r4] 8633 004c 1368 ldr r3, [r2] 8634 004e 5B04 lsls r3, r3, #17 8635 0050 02D4 bmi .L587 4067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8636 .loc 1 4067 0 discriminator 1 8637 0052 1368 ldr r3, [r2] 4066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)) 8638 .loc 1 4066 0 discriminator 1 8639 0054 1B04 lsls r3, r3, #16 8640 0056 08D5 bpl .L588 8641 .L587: 4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8642 .loc 1 4069 0 8643 0058 4123 movs r3, #65 8644 005a E35C ldrb r3, [r4, r3] 8645 005c 212B cmp r3, #33 8646 005e 3AD0 beq .L597 4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8647 .loc 1 4069 0 is_stmt 0 discriminator 2 8648 0060 E36B ldr r3, [r4, #60] 8649 0062 1B68 ldr r3, [r3] 8650 0064 5B68 ldr r3, [r3, #4] 8651 0066 9BB2 uxth r3, r3 8652 .L590: 4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8653 .loc 1 4069 0 discriminator 4 8654 0068 6385 strh r3, [r4, #42] 8655 .L588: 4073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8656 .loc 1 4073 0 is_stmt 1 8657 006a 638D ldrh r3, [r4, #42] 8658 006c 9BB2 uxth r3, r3 8659 006e 002B cmp r3, #0 8660 0070 03D0 beq .L591 4076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8661 .loc 1 4076 0 8662 0072 636C ldr r3, [r4, #68] 8663 0074 0421 movs r1, #4 8664 0076 0B43 orrs r3, r1 8665 0078 6364 str r3, [r4, #68] 8666 .L591: 4080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8667 .loc 1 4080 0 8668 007a 6B07 lsls r3, r5, #29 8669 007c 11D5 bpl .L592 4083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8670 .loc 1 4083 0 8671 007e 526A ldr r2, [r2, #36] 8672 0080 636A ldr r3, [r4, #36] 8673 0082 591C adds r1, r3, #1 8674 0084 6162 str r1, [r4, #36] 8675 0086 1A70 strb r2, [r3] 4085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8676 .loc 1 4085 0 8677 0088 238D ldrh r3, [r4, #40] 8678 008a 002B cmp r3, #0 ARM GAS /tmp/ccpuPECZ.s page 259 8679 008c 09D0 beq .L592 4087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 8680 .loc 1 4087 0 8681 008e 013B subs r3, r3, #1 8682 0090 2385 strh r3, [r4, #40] 4088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8683 .loc 1 4088 0 8684 0092 638D ldrh r3, [r4, #42] 8685 0094 013B subs r3, r3, #1 8686 0096 9BB2 uxth r3, r3 8687 0098 6385 strh r3, [r4, #42] 4091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8688 .loc 1 4091 0 8689 009a 636C ldr r3, [r4, #68] 8690 009c 0422 movs r2, #4 8691 009e 1343 orrs r3, r2 8692 00a0 6364 str r3, [r4, #68] 8693 .L592: 4095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8694 .loc 1 4095 0 8695 00a2 0023 movs r3, #0 8696 00a4 2363 str r3, [r4, #48] 4096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 8697 .loc 1 4096 0 8698 00a6 4222 movs r2, #66 8699 00a8 A354 strb r3, [r4, r2] 4097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8700 .loc 1 4097 0 8701 00aa 6363 str r3, [r4, #52] 4099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8702 .loc 1 4099 0 8703 00ac 636C ldr r3, [r4, #68] 8704 00ae 002B cmp r3, #0 8705 00b0 16D1 bne .L598 4111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8706 .loc 1 4111 0 8707 00b2 E26A ldr r2, [r4, #44] 8708 00b4 1C4B ldr r3, .L601+4 8709 00b6 9A42 cmp r2, r3 8710 00b8 1FD1 bne .L599 4123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8711 .loc 1 4123 0 8712 00ba 4123 movs r3, #65 8713 00bc E35C ldrb r3, [r4, r3] 8714 00be 222B cmp r3, #34 8715 00c0 26D0 beq .L600 4135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8716 .loc 1 4135 0 8717 00c2 4123 movs r3, #65 8718 00c4 2022 movs r2, #32 8719 00c6 E254 strb r2, [r4, r3] 4138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8720 .loc 1 4138 0 8721 00c8 013B subs r3, r3, #1 8722 00ca 0022 movs r2, #0 8723 00cc E254 strb r2, [r4, r3] 4141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } ARM GAS /tmp/ccpuPECZ.s page 260 8724 .loc 1 4141 0 8725 00ce 2000 movs r0, r4 8726 00d0 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 8727 .LVL789: 4143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8728 .loc 1 4143 0 8729 00d4 1BE0 b .L584 8730 .L597: 4069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8731 .loc 1 4069 0 discriminator 1 8732 00d6 A36B ldr r3, [r4, #56] 8733 00d8 1B68 ldr r3, [r3] 8734 00da 5B68 ldr r3, [r3, #4] 8735 00dc 9BB2 uxth r3, r3 8736 00de C3E7 b .L590 8737 .L598: 4102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8738 .loc 1 4102 0 8739 00e0 616C ldr r1, [r4, #68] 8740 00e2 2000 movs r0, r4 8741 00e4 FFF7FEFF bl I2C_ITError 8742 .LVL790: 4105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8743 .loc 1 4105 0 8744 00e8 4123 movs r3, #65 8745 00ea E35C ldrb r3, [r4, r3] 8746 00ec 282B cmp r3, #40 8747 00ee 0ED1 bne .L584 4108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8748 .loc 1 4108 0 8749 00f0 2900 movs r1, r5 8750 00f2 2000 movs r0, r4 8751 00f4 FFF7FEFF bl I2C_ITListenCplt 8752 .LVL791: 8753 00f8 09E0 b .L584 8754 .L599: 4113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 8755 .loc 1 4113 0 8756 00fa E362 str r3, [r4, #44] 4114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8757 .loc 1 4114 0 8758 00fc 4123 movs r3, #65 8759 00fe 2022 movs r2, #32 8760 0100 E254 strb r2, [r4, r3] 4117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8761 .loc 1 4117 0 8762 0102 013B subs r3, r3, #1 8763 0104 0022 movs r2, #0 8764 0106 E254 strb r2, [r4, r3] 4120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8765 .loc 1 4120 0 8766 0108 2000 movs r0, r4 8767 010a FFF7FEFF bl HAL_I2C_ListenCpltCallback 8768 .LVL792: 8769 .L584: 4143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8770 .loc 1 4143 0 ARM GAS /tmp/ccpuPECZ.s page 261 8771 @ sp needed 8772 .LVL793: 8773 .LVL794: 8774 010e 70BD pop {r4, r5, r6, pc} 8775 .LVL795: 8776 .L600: 4125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8777 .loc 1 4125 0 8778 0110 1F33 adds r3, r3, #31 8779 0112 2022 movs r2, #32 8780 0114 E254 strb r2, [r4, r3] 4128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8781 .loc 1 4128 0 8782 0116 013B subs r3, r3, #1 8783 0118 0022 movs r2, #0 8784 011a E254 strb r2, [r4, r3] 4131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8785 .loc 1 4131 0 8786 011c 2000 movs r0, r4 8787 011e FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 8788 .LVL796: 8789 0122 F4E7 b .L584 8790 .L602: 8791 .align 2 8792 .L601: 8793 0124 00E800FE .word -33495040 8794 0128 0000FFFF .word -65536 8795 .cfi_endproc 8796 .LFE94: 8798 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 8799 .align 1 8800 .syntax unified 8801 .code 16 8802 .thumb_func 8803 .fpu softvfp 8805 I2C_Slave_ISR_IT: 8806 .LFB85: 3394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */ 8807 .loc 1 3394 0 8808 .cfi_startproc 8809 @ args = 0, pretend = 0, frame = 0 8810 @ frame_needed = 0, uses_anonymous_args = 0 8811 .LVL797: 8812 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8813 .LCFI63: 8814 .cfi_def_cfa_offset 24 8815 .cfi_offset 3, -24 8816 .cfi_offset 4, -20 8817 .cfi_offset 5, -16 8818 .cfi_offset 6, -12 8819 .cfi_offset 7, -8 8820 .cfi_offset 14, -4 8821 0002 CE46 mov lr, r9 8822 0004 4746 mov r7, r8 8823 0006 80B5 push {r7, lr} 8824 .LCFI64: 8825 .cfi_def_cfa_offset 32 ARM GAS /tmp/ccpuPECZ.s page 262 8826 .cfi_offset 8, -32 8827 .cfi_offset 9, -28 8828 0008 0400 movs r4, r0 8829 000a 0D00 movs r5, r1 8830 000c 1600 movs r6, r2 3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8831 .loc 1 3396 0 8832 000e 4023 movs r3, #64 8833 0010 C35C ldrb r3, [r0, r3] 8834 0012 012B cmp r3, #1 8835 0014 00D1 bne .LCB9391 8836 0016 EEE0 b .L622 @long jump 8837 .LCB9391: 3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8838 .loc 1 3396 0 is_stmt 0 discriminator 2 8839 0018 4023 movs r3, #64 8840 001a 0122 movs r2, #1 8841 .LVL798: 8842 001c C254 strb r2, [r0, r3] 3398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8843 .loc 1 3398 0 is_stmt 1 discriminator 2 8844 001e CB06 lsls r3, r1, #27 8845 0020 4BD5 bpl .L605 3398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8846 .loc 1 3398 0 is_stmt 0 discriminator 1 8847 0022 F306 lsls r3, r6, #27 8848 0024 49D5 bpl .L605 3404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8849 .loc 1 3404 0 is_stmt 1 8850 0026 438D ldrh r3, [r0, #42] 8851 0028 9BB2 uxth r3, r3 8852 002a 002B cmp r3, #0 8853 002c 31D1 bne .L606 3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN)) 8854 .loc 1 3406 0 8855 002e C26A ldr r2, [r0, #44] 8856 0030 8023 movs r3, #128 8857 0032 9B04 lsls r3, r3, #18 8858 0034 9A42 cmp r2, r3 8859 0036 02D0 beq .L607 3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN)) 8860 .loc 1 3406 0 is_stmt 0 discriminator 2 8861 0038 C26A ldr r2, [r0, #44] 8862 003a 9A42 cmp r2, r3 8863 003c 03D1 bne .L608 8864 .L607: 3407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8865 .loc 1 3407 0 is_stmt 1 discriminator 3 8866 003e 4123 movs r3, #65 8867 0040 E35C ldrb r3, [r4, r3] 3406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->State == HAL_I2C_STATE_LISTEN)) 8868 .loc 1 3406 0 discriminator 3 8869 0042 282B cmp r3, #40 8870 0044 0BD0 beq .L623 8871 .L608: 3412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8872 .loc 1 3412 0 ARM GAS /tmp/ccpuPECZ.s page 263 8873 0046 E26A ldr r2, [r4, #44] 8874 0048 6C4B ldr r3, .L628 8875 004a 9A42 cmp r2, r3 8876 004c 03D0 beq .L610 3412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8877 .loc 1 3412 0 is_stmt 0 discriminator 1 8878 004e 4123 movs r3, #65 8879 0050 E35C ldrb r3, [r4, r3] 8880 0052 292B cmp r3, #41 8881 0054 08D0 beq .L624 8882 .L610: 3427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8883 .loc 1 3427 0 is_stmt 1 8884 0056 2368 ldr r3, [r4] 8885 0058 1022 movs r2, #16 8886 005a DA61 str r2, [r3, #28] 8887 005c 20E0 b .L609 8888 .L623: 3410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8889 .loc 1 3410 0 8890 005e 2900 movs r1, r5 8891 .LVL799: 8892 0060 2000 movs r0, r4 8893 .LVL800: 8894 0062 FFF7FEFF bl I2C_ITListenCplt 8895 .LVL801: 8896 0066 1BE0 b .L609 8897 .LVL802: 8898 .L624: 3415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8899 .loc 1 3415 0 8900 0068 2368 ldr r3, [r4] 8901 006a 1022 movs r2, #16 8902 006c DA61 str r2, [r3, #28] 8903 .LVL803: 8904 .LBB306: 8905 .LBB307: 4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8906 .loc 1 4301 0 8907 006e 2368 ldr r3, [r4] 8908 0070 9A69 ldr r2, [r3, #24] 8909 0072 9207 lsls r2, r2, #30 8910 0074 01D5 bpl .L611 4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8911 .loc 1 4303 0 8912 0076 0022 movs r2, #0 8913 0078 9A62 str r2, [r3, #40] 8914 .L611: 4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8915 .loc 1 4307 0 8916 007a 2368 ldr r3, [r4] 8917 007c 9A69 ldr r2, [r3, #24] 8918 007e D207 lsls r2, r2, #31 8919 0080 03D4 bmi .L612 4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8920 .loc 1 4309 0 8921 0082 9A69 ldr r2, [r3, #24] ARM GAS /tmp/ccpuPECZ.s page 264 8922 0084 0121 movs r1, #1 8923 .LVL804: 8924 0086 0A43 orrs r2, r1 8925 0088 9A61 str r2, [r3, #24] 8926 .L612: 8927 .LVL805: 8928 .LBE307: 8929 .LBE306: 3422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8930 .loc 1 3422 0 8931 008a 2000 movs r0, r4 8932 .LVL806: 8933 008c FFF7FEFF bl I2C_ITSlaveSequentialCplt 8934 .LVL807: 8935 0090 06E0 b .L609 8936 .LVL808: 8937 .L606: 3434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8938 .loc 1 3434 0 8939 0092 0368 ldr r3, [r0] 8940 0094 1022 movs r2, #16 8941 0096 DA61 str r2, [r3, #28] 3437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8942 .loc 1 3437 0 8943 0098 436C ldr r3, [r0, #68] 8944 009a 0C3A subs r2, r2, #12 8945 009c 1343 orrs r3, r2 8946 009e 4364 str r3, [r0, #68] 8947 .LVL809: 8948 .L609: 3486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8949 .loc 1 3486 0 8950 00a0 AB06 lsls r3, r5, #26 8951 00a2 02D5 bpl .L621 3486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8952 .loc 1 3486 0 is_stmt 0 discriminator 1 8953 00a4 B306 lsls r3, r6, #26 8954 00a6 00D5 bpl .LCB9514 8955 00a8 A0E0 b .L625 @long jump 8956 .LCB9514: 8957 .L621: 3493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8958 .loc 1 3493 0 is_stmt 1 8959 00aa 4023 movs r3, #64 8960 00ac 0022 movs r2, #0 8961 00ae E254 strb r2, [r4, r3] 3495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8962 .loc 1 3495 0 8963 00b0 0020 movs r0, #0 8964 .L604: 3496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 8965 .loc 1 3496 0 8966 @ sp needed 8967 .LVL810: 8968 .LVL811: 8969 .LVL812: 8970 00b2 0CBC pop {r2, r3} ARM GAS /tmp/ccpuPECZ.s page 265 8971 00b4 9046 mov r8, r2 8972 00b6 9946 mov r9, r3 8973 00b8 F8BD pop {r3, r4, r5, r6, r7, pc} 8974 .LVL813: 8975 .L605: 3440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8976 .loc 1 3440 0 8977 00ba 6B07 lsls r3, r5, #29 8978 00bc 1ED5 bpl .L613 3440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8979 .loc 1 3440 0 is_stmt 0 discriminator 1 8980 00be 7307 lsls r3, r6, #29 8981 00c0 1CD5 bpl .L613 3442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 8982 .loc 1 3442 0 is_stmt 1 8983 00c2 638D ldrh r3, [r4, #42] 8984 00c4 9BB2 uxth r3, r3 8985 00c6 002B cmp r3, #0 8986 00c8 0CD0 beq .L614 3445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 8987 .loc 1 3445 0 8988 00ca 2368 ldr r3, [r4] 8989 00cc 5A6A ldr r2, [r3, #36] 8990 00ce 636A ldr r3, [r4, #36] 8991 00d0 591C adds r1, r3, #1 8992 .LVL814: 8993 00d2 6162 str r1, [r4, #36] 8994 00d4 1A70 strb r2, [r3] 3446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 8995 .loc 1 3446 0 8996 00d6 238D ldrh r3, [r4, #40] 8997 00d8 013B subs r3, r3, #1 8998 00da 2385 strh r3, [r4, #40] 3447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 8999 .loc 1 3447 0 9000 00dc 638D ldrh r3, [r4, #42] 9001 00de 013B subs r3, r3, #1 9002 00e0 9BB2 uxth r3, r3 9003 00e2 6385 strh r3, [r4, #42] 9004 .L614: 3450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferOptions != I2C_NO_OPTION_FRAME)) 9005 .loc 1 3450 0 9006 00e4 638D ldrh r3, [r4, #42] 9007 00e6 9BB2 uxth r3, r3 9008 00e8 002B cmp r3, #0 9009 00ea D9D1 bne .L609 3451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9010 .loc 1 3451 0 discriminator 1 9011 00ec E26A ldr r2, [r4, #44] 3450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferOptions != I2C_NO_OPTION_FRAME)) 9012 .loc 1 3450 0 discriminator 1 9013 00ee 434B ldr r3, .L628 9014 00f0 9A42 cmp r2, r3 9015 00f2 D5D0 beq .L609 3454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9016 .loc 1 3454 0 9017 00f4 2000 movs r0, r4 ARM GAS /tmp/ccpuPECZ.s page 266 9018 .LVL815: 9019 00f6 FFF7FEFF bl I2C_ITSlaveSequentialCplt 9020 .LVL816: 9021 00fa D1E7 b .L609 9022 .LVL817: 9023 .L613: 3457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9024 .loc 1 3457 0 9025 00fc 2B07 lsls r3, r5, #28 9026 00fe 01D5 bpl .L615 3457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9027 .loc 1 3457 0 is_stmt 0 discriminator 1 9028 0100 3307 lsls r3, r6, #28 9029 0102 15D4 bmi .L626 9030 .L615: 3461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9031 .loc 1 3461 0 is_stmt 1 9032 0104 AB07 lsls r3, r5, #30 9033 0106 CBD5 bpl .L609 3461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9034 .loc 1 3461 0 is_stmt 0 discriminator 1 9035 0108 B307 lsls r3, r6, #30 9036 010a C9D5 bpl .L609 3467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9037 .loc 1 3467 0 is_stmt 1 9038 010c 638D ldrh r3, [r4, #42] 9039 010e 9BB2 uxth r3, r3 9040 0110 002B cmp r3, #0 9041 0112 5ED0 beq .L619 3470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 9042 .loc 1 3470 0 9043 0114 636A ldr r3, [r4, #36] 9044 0116 5A1C adds r2, r3, #1 9045 0118 6262 str r2, [r4, #36] 9046 011a 2268 ldr r2, [r4] 9047 011c 1B78 ldrb r3, [r3] 9048 011e 9362 str r3, [r2, #40] 3471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 9049 .loc 1 3471 0 9050 0120 638D ldrh r3, [r4, #42] 9051 0122 013B subs r3, r3, #1 9052 0124 9BB2 uxth r3, r3 9053 0126 6385 strh r3, [r4, #42] 3472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9054 .loc 1 3472 0 9055 0128 238D ldrh r3, [r4, #40] 9056 012a 013B subs r3, r3, #1 9057 012c 2385 strh r3, [r4, #40] 9058 012e B7E7 b .L609 9059 .L626: 9060 .LVL818: 9061 .LBB308: 9062 .LBB309: 3792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9063 .loc 1 3792 0 9064 0130 4123 movs r3, #65 9065 0132 E35C ldrb r3, [r4, r3] ARM GAS /tmp/ccpuPECZ.s page 267 9066 0134 2822 movs r2, #40 9067 0136 1340 ands r3, r2 9068 0138 282B cmp r3, #40 9069 013a 06D0 beq .L627 3852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9070 .loc 1 3852 0 9071 013c 2368 ldr r3, [r4] 9072 013e 0822 movs r2, #8 9073 0140 DA61 str r2, [r3, #28] 3855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9074 .loc 1 3855 0 9075 0142 4023 movs r3, #64 9076 0144 0022 movs r2, #0 9077 0146 E254 strb r2, [r4, r3] 9078 0148 AAE7 b .L609 9079 .L627: 3794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 9080 .loc 1 3794 0 9081 014a 2368 ldr r3, [r4] 9082 014c 9A69 ldr r2, [r3, #24] 9083 014e 120C lsrs r2, r2, #16 9084 0150 0121 movs r1, #1 9085 .LVL819: 9086 0152 0A40 ands r2, r1 9087 0154 9046 mov r8, r2 9088 .LVL820: 3795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 9089 .loc 1 3795 0 9090 0156 9F69 ldr r7, [r3, #24] 9091 0158 3F0C lsrs r7, r7, #16 9092 015a FD31 adds r1, r1, #253 9093 015c 0F40 ands r7, r1 9094 .LVL821: 3796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 9095 .loc 1 3796 0 9096 015e 9A68 ldr r2, [r3, #8] 9097 0160 9205 lsls r2, r2, #22 9098 0162 920D lsrs r2, r2, #22 9099 .LVL822: 3797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9100 .loc 1 3797 0 9101 0164 D868 ldr r0, [r3, #12] 9102 .LVL823: 9103 0166 0840 ands r0, r1 9104 0168 8146 mov r9, r0 9105 .LVL824: 3800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9106 .loc 1 3800 0 9107 016a E168 ldr r1, [r4, #12] 9108 016c 0229 cmp r1, #2 9109 016e 23D1 bne .L617 3802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9110 .loc 1 3802 0 9111 0170 D109 lsrs r1, r2, #7 9112 0172 4F40 eors r7, r1 9113 .LVL825: 9114 0174 0621 movs r1, #6 ARM GAS /tmp/ccpuPECZ.s page 268 9115 0176 3942 tst r1, r7 9116 0178 11D1 bne .L618 9117 .LVL826: 3805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 9118 .loc 1 3805 0 9119 017a A16C ldr r1, [r4, #72] 9120 017c 0131 adds r1, r1, #1 9121 017e A164 str r1, [r4, #72] 3806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9122 .loc 1 3806 0 9123 0180 A16C ldr r1, [r4, #72] 9124 0182 0229 cmp r1, #2 9125 0184 00D0 beq .LCB9707 9126 0186 8BE7 b .L609 @long jump 9127 .LCB9707: 3809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9128 .loc 1 3809 0 9129 0188 0021 movs r1, #0 9130 018a A164 str r1, [r4, #72] 3812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9131 .loc 1 3812 0 9132 018c 0820 movs r0, #8 9133 018e D861 str r0, [r3, #28] 3815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9134 .loc 1 3815 0 9135 0190 4023 movs r3, #64 9136 0192 E154 strb r1, [r4, r3] 3818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9137 .loc 1 3818 0 9138 0194 4146 mov r1, r8 9139 0196 2000 movs r0, r4 9140 0198 FFF7FEFF bl HAL_I2C_AddrCallback 9141 .LVL827: 9142 019c 80E7 b .L609 9143 .LVL828: 9144 .L618: 3826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9145 .loc 1 3826 0 9146 019e 0421 movs r1, #4 9147 01a0 2000 movs r0, r4 9148 01a2 FFF7FEFF bl I2C_Disable_IRQ 9149 .LVL829: 3829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9150 .loc 1 3829 0 9151 01a6 4023 movs r3, #64 9152 01a8 0022 movs r2, #0 9153 01aa E254 strb r2, [r4, r3] 3832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9154 .loc 1 3832 0 9155 01ac 4A46 mov r2, r9 9156 01ae 4146 mov r1, r8 9157 01b0 2000 movs r0, r4 9158 01b2 FFF7FEFF bl HAL_I2C_AddrCallback 9159 .LVL830: 9160 01b6 73E7 b .L609 9161 .LVL831: 9162 .L617: ARM GAS /tmp/ccpuPECZ.s page 269 3839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9163 .loc 1 3839 0 9164 01b8 0421 movs r1, #4 9165 01ba 2000 movs r0, r4 9166 01bc FFF7FEFF bl I2C_Disable_IRQ 9167 .LVL832: 3842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9168 .loc 1 3842 0 9169 01c0 4023 movs r3, #64 9170 01c2 0022 movs r2, #0 9171 01c4 E254 strb r2, [r4, r3] 3845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9172 .loc 1 3845 0 9173 01c6 3A00 movs r2, r7 9174 01c8 4146 mov r1, r8 9175 01ca 2000 movs r0, r4 9176 01cc FFF7FEFF bl HAL_I2C_AddrCallback 9177 .LVL833: 9178 01d0 66E7 b .L609 9179 .LVL834: 9180 .L619: 9181 .LBE309: 9182 .LBE308: 3476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9183 .loc 1 3476 0 9184 01d2 E26A ldr r2, [r4, #44] 9185 01d4 8023 movs r3, #128 9186 01d6 5B04 lsls r3, r3, #17 9187 01d8 9A42 cmp r2, r3 9188 01da 03D0 beq .L620 3476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9189 .loc 1 3476 0 is_stmt 0 discriminator 1 9190 01dc E36A ldr r3, [r4, #44] 9191 01de 002B cmp r3, #0 9192 01e0 00D0 beq .LCB9783 9193 01e2 5DE7 b .L609 @long jump 9194 .LCB9783: 9195 .L620: 3480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9196 .loc 1 3480 0 is_stmt 1 9197 01e4 2000 movs r0, r4 9198 .LVL835: 9199 01e6 FFF7FEFF bl I2C_ITSlaveSequentialCplt 9200 .LVL836: 9201 01ea 59E7 b .L609 9202 .L625: 3489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9203 .loc 1 3489 0 9204 01ec 2900 movs r1, r5 9205 01ee 2000 movs r0, r4 9206 01f0 FFF7FEFF bl I2C_ITSlaveCplt 9207 .LVL837: 9208 01f4 59E7 b .L621 9209 .LVL838: 9210 .L622: 3396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9211 .loc 1 3396 0 ARM GAS /tmp/ccpuPECZ.s page 270 9212 01f6 0220 movs r0, #2 9213 .LVL839: 9214 01f8 5BE7 b .L604 9215 .L629: 9216 01fa C046 .align 2 9217 .L628: 9218 01fc 0000FFFF .word -65536 9219 .cfi_endproc 9220 .LFE85: 9222 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 9223 .align 1 9224 .syntax unified 9225 .code 16 9226 .thumb_func 9227 .fpu softvfp 9229 I2C_Slave_ISR_DMA: 9230 .LFB87: 3596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Process locked */ 9231 .loc 1 3596 0 9232 .cfi_startproc 9233 @ args = 0, pretend = 0, frame = 0 9234 @ frame_needed = 0, uses_anonymous_args = 0 9235 .LVL840: 9236 0000 10B5 push {r4, lr} 9237 .LCFI65: 9238 .cfi_def_cfa_offset 8 9239 .cfi_offset 4, -8 9240 .cfi_offset 14, -4 9241 0002 0400 movs r4, r0 3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9242 .loc 1 3598 0 9243 0004 4023 movs r3, #64 9244 0006 C35C ldrb r3, [r0, r3] 9245 0008 012B cmp r3, #1 9246 000a 3AD0 beq .L638 3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9247 .loc 1 3598 0 is_stmt 0 discriminator 2 9248 000c 4023 movs r3, #64 9249 000e 0120 movs r0, #1 9250 .LVL841: 9251 0010 E054 strb r0, [r4, r3] 3600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9252 .loc 1 3600 0 is_stmt 1 discriminator 2 9253 0012 CB06 lsls r3, r1, #27 9254 0014 20D5 bpl .L632 3600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9255 .loc 1 3600 0 is_stmt 0 discriminator 1 9256 0016 D306 lsls r3, r2, #27 9257 0018 1ED5 bpl .L632 3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9258 .loc 1 3606 0 is_stmt 1 9259 001a 4123 movs r3, #65 9260 001c E35C ldrb r3, [r4, r3] 9261 001e 212B cmp r3, #33 9262 0020 0BD0 beq .L639 3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9263 .loc 1 3606 0 is_stmt 0 discriminator 2 ARM GAS /tmp/ccpuPECZ.s page 271 9264 0022 E36B ldr r3, [r4, #60] 9265 0024 1B68 ldr r3, [r3] 9266 0026 5B68 ldr r3, [r3, #4] 9267 0028 5A42 rsbs r2, r3, #0 9268 002a 5341 adcs r3, r3, r2 9269 .LVL842: 9270 002c DBB2 uxtb r3, r3 9271 .L634: 3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9272 .loc 1 3606 0 discriminator 4 9273 002e 002B cmp r3, #0 9274 0030 0AD0 beq .L635 3609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9275 .loc 1 3609 0 is_stmt 1 9276 0032 2368 ldr r3, [r4] 9277 0034 1022 movs r2, #16 9278 0036 DA61 str r2, [r3, #28] 9279 0038 1AE0 b .L636 9280 .LVL843: 9281 .L639: 3606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9282 .loc 1 3606 0 discriminator 1 9283 003a A36B ldr r3, [r4, #56] 9284 003c 1B68 ldr r3, [r3] 9285 003e 5B68 ldr r3, [r3, #4] 9286 0040 5A42 rsbs r2, r3, #0 9287 0042 5341 adcs r3, r3, r2 9288 .LVL844: 9289 0044 DBB2 uxtb r3, r3 9290 0046 F2E7 b .L634 9291 .L635: 3615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9292 .loc 1 3615 0 9293 0048 2368 ldr r3, [r4] 9294 004a 1022 movs r2, #16 9295 004c DA61 str r2, [r3, #28] 3618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9296 .loc 1 3618 0 9297 004e 636C ldr r3, [r4, #68] 9298 0050 0C3A subs r2, r2, #12 9299 0052 1343 orrs r3, r2 9300 0054 6364 str r3, [r4, #68] 9301 0056 0BE0 b .L636 9302 .LVL845: 9303 .L632: 3621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9304 .loc 1 3621 0 9305 0058 0B07 lsls r3, r1, #28 9306 005a 05D5 bpl .L637 3621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9307 .loc 1 3621 0 is_stmt 0 discriminator 1 9308 005c 1307 lsls r3, r2, #28 9309 005e 03D5 bpl .L637 3624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9310 .loc 1 3624 0 is_stmt 1 9311 0060 2368 ldr r3, [r4] 9312 0062 0822 movs r2, #8 ARM GAS /tmp/ccpuPECZ.s page 272 9313 .LVL846: 9314 0064 DA61 str r2, [r3, #28] 9315 0066 03E0 b .L636 9316 .LVL847: 9317 .L637: 3626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9318 .loc 1 3626 0 9319 0068 8B06 lsls r3, r1, #26 9320 006a 01D5 bpl .L636 3626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9321 .loc 1 3626 0 is_stmt 0 discriminator 1 9322 006c 9306 lsls r3, r2, #26 9323 006e 04D4 bmi .L640 9324 .LVL848: 9325 .L636: 3633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9326 .loc 1 3633 0 is_stmt 1 9327 0070 4023 movs r3, #64 9328 0072 0022 movs r2, #0 9329 0074 E254 strb r2, [r4, r3] 3635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9330 .loc 1 3635 0 9331 0076 0020 movs r0, #0 9332 .L631: 3636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9333 .loc 1 3636 0 9334 @ sp needed 9335 .LVL849: 9336 0078 10BD pop {r4, pc} 9337 .LVL850: 9338 .L640: 3629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9339 .loc 1 3629 0 9340 007a 2000 movs r0, r4 9341 007c FFF7FEFF bl I2C_ITSlaveCplt 9342 .LVL851: 9343 0080 F6E7 b .L636 9344 .LVL852: 9345 .L638: 3598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9346 .loc 1 3598 0 9347 0082 0220 movs r0, #2 9348 .LVL853: 9349 0084 F8E7 b .L631 9350 .cfi_endproc 9351 .LFE87: 9353 .section .text.I2C_ITMasterCplt,"ax",%progbits 9354 .align 1 9355 .syntax unified 9356 .code 16 9357 .thumb_func 9358 .fpu softvfp 9360 I2C_ITMasterCplt: 9361 .LFB93: 3954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Clear STOP Flag */ 9362 .loc 1 3954 0 9363 .cfi_startproc ARM GAS /tmp/ccpuPECZ.s page 273 9364 @ args = 0, pretend = 0, frame = 0 9365 @ frame_needed = 0, uses_anonymous_args = 0 9366 .LVL854: 9367 0000 10B5 push {r4, lr} 9368 .LCFI66: 9369 .cfi_def_cfa_offset 8 9370 .cfi_offset 4, -8 9371 .cfi_offset 14, -4 9372 0002 0400 movs r4, r0 3956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9373 .loc 1 3956 0 9374 0004 0368 ldr r3, [r0] 9375 0006 2022 movs r2, #32 9376 0008 DA61 str r2, [r3, #28] 3959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9377 .loc 1 3959 0 9378 000a 0268 ldr r2, [r0] 9379 000c 5368 ldr r3, [r2, #4] 9380 000e 3448 ldr r0, .L654 9381 .LVL855: 9382 0010 0340 ands r3, r0 9383 0012 5360 str r3, [r2, #4] 3962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferISR = NULL; 9384 .loc 1 3962 0 9385 0014 0023 movs r3, #0 9386 0016 2363 str r3, [r4, #48] 3963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 9387 .loc 1 3963 0 9388 0018 6363 str r3, [r4, #52] 3964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9389 .loc 1 3964 0 9390 001a 324B ldr r3, .L654+4 9391 001c E362 str r3, [r4, #44] 3966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9392 .loc 1 3966 0 9393 001e CB06 lsls r3, r1, #27 9394 0020 06D5 bpl .L642 3969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9395 .loc 1 3969 0 9396 0022 2368 ldr r3, [r4] 9397 0024 1022 movs r2, #16 9398 0026 DA61 str r2, [r3, #28] 3972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9399 .loc 1 3972 0 9400 0028 636C ldr r3, [r4, #68] 9401 002a 0C3A subs r2, r2, #12 9402 002c 1343 orrs r3, r2 9403 002e 6364 str r3, [r4, #68] 9404 .L642: 9405 .LVL856: 9406 .LBB310: 9407 .LBB311: 4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9408 .loc 1 4301 0 9409 0030 2368 ldr r3, [r4] 9410 0032 9A69 ldr r2, [r3, #24] 9411 0034 9207 lsls r2, r2, #30 ARM GAS /tmp/ccpuPECZ.s page 274 9412 0036 01D5 bpl .L643 4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9413 .loc 1 4303 0 9414 0038 0022 movs r2, #0 9415 003a 9A62 str r2, [r3, #40] 9416 .L643: 4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9417 .loc 1 4307 0 9418 003c 2368 ldr r3, [r4] 9419 003e 9A69 ldr r2, [r3, #24] 9420 0040 D207 lsls r2, r2, #31 9421 0042 03D4 bmi .L644 4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9422 .loc 1 4309 0 9423 0044 9A69 ldr r2, [r3, #24] 9424 0046 0121 movs r1, #1 9425 .LVL857: 9426 0048 0A43 orrs r2, r1 9427 004a 9A61 str r2, [r3, #24] 9428 .L644: 9429 .LVL858: 9430 .LBE311: 9431 .LBE310: 3979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9432 .loc 1 3979 0 9433 004c 0321 movs r1, #3 9434 004e 2000 movs r0, r4 9435 0050 FFF7FEFF bl I2C_Disable_IRQ 9436 .LVL859: 3982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9437 .loc 1 3982 0 9438 0054 636C ldr r3, [r4, #68] 9439 0056 002B cmp r3, #0 9440 0058 1BD1 bne .L645 3982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9441 .loc 1 3982 0 is_stmt 0 discriminator 1 9442 005a 4133 adds r3, r3, #65 9443 005c E35C ldrb r3, [r4, r3] 9444 005e 602B cmp r3, #96 9445 0060 17D0 beq .L645 3988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9446 .loc 1 3988 0 is_stmt 1 9447 0062 4123 movs r3, #65 9448 0064 E35C ldrb r3, [r4, r3] 9449 0066 212B cmp r3, #33 9450 0068 18D0 beq .L651 4014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9451 .loc 1 4014 0 9452 006a 4123 movs r3, #65 9453 006c E35C ldrb r3, [r4, r3] 9454 006e 222B cmp r3, #34 9455 0070 13D1 bne .L641 4016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9456 .loc 1 4016 0 9457 0072 1F33 adds r3, r3, #31 9458 0074 2022 movs r2, #32 9459 0076 E254 strb r2, [r4, r3] ARM GAS /tmp/ccpuPECZ.s page 275 4018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9460 .loc 1 4018 0 9461 0078 0133 adds r3, r3, #1 9462 007a E35C ldrb r3, [r4, r3] 9463 007c 402B cmp r3, #64 9464 007e 26D0 beq .L652 4029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9465 .loc 1 4029 0 9466 0080 0023 movs r3, #0 9467 0082 4222 movs r2, #66 9468 0084 A354 strb r3, [r4, r2] 4032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9469 .loc 1 4032 0 9470 0086 023A subs r2, r2, #2 9471 0088 A354 strb r3, [r4, r2] 4034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9472 .loc 1 4034 0 9473 008a 2000 movs r0, r4 9474 008c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 9475 .LVL860: 4037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9476 .loc 1 4037 0 9477 0090 03E0 b .L641 9478 .L645: 3985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9479 .loc 1 3985 0 9480 0092 616C ldr r1, [r4, #68] 9481 0094 2000 movs r0, r4 9482 0096 FFF7FEFF bl I2C_ITError 9483 .LVL861: 9484 .L641: 4037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9485 .loc 1 4037 0 9486 @ sp needed 9487 .LVL862: 9488 009a 10BD pop {r4, pc} 9489 .LVL863: 9490 .L651: 3990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9491 .loc 1 3990 0 9492 009c 2033 adds r3, r3, #32 9493 009e 2022 movs r2, #32 9494 00a0 E254 strb r2, [r4, r3] 3992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9495 .loc 1 3992 0 9496 00a2 0133 adds r3, r3, #1 9497 00a4 E35C ldrb r3, [r4, r3] 9498 00a6 402B cmp r3, #64 9499 00a8 08D0 beq .L653 4004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9500 .loc 1 4004 0 9501 00aa 0023 movs r3, #0 9502 00ac 4222 movs r2, #66 9503 00ae A354 strb r3, [r4, r2] 4007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9504 .loc 1 4007 0 9505 00b0 023A subs r2, r2, #2 ARM GAS /tmp/ccpuPECZ.s page 276 9506 00b2 A354 strb r3, [r4, r2] 4010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9507 .loc 1 4010 0 9508 00b4 2000 movs r0, r4 9509 00b6 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 9510 .LVL864: 9511 00ba EEE7 b .L641 9512 .L653: 3994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9513 .loc 1 3994 0 9514 00bc 0023 movs r3, #0 9515 00be 2232 adds r2, r2, #34 9516 00c0 A354 strb r3, [r4, r2] 3997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9517 .loc 1 3997 0 9518 00c2 023A subs r2, r2, #2 9519 00c4 A354 strb r3, [r4, r2] 4000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9520 .loc 1 4000 0 9521 00c6 2000 movs r0, r4 9522 00c8 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 9523 .LVL865: 9524 00cc E5E7 b .L641 9525 .L652: 4020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9526 .loc 1 4020 0 9527 00ce 0023 movs r3, #0 9528 00d0 2232 adds r2, r2, #34 9529 00d2 A354 strb r3, [r4, r2] 4023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9530 .loc 1 4023 0 9531 00d4 023A subs r2, r2, #2 9532 00d6 A354 strb r3, [r4, r2] 4025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9533 .loc 1 4025 0 9534 00d8 2000 movs r0, r4 9535 00da FFF7FEFF bl HAL_I2C_MemRxCpltCallback 9536 .LVL866: 9537 00de DCE7 b .L641 9538 .L655: 9539 .align 2 9540 .L654: 9541 00e0 00E800FE .word -33495040 9542 00e4 0000FFFF .word -65536 9543 .cfi_endproc 9544 .LFE93: 9546 .section .text.I2C_Master_ISR_IT,"ax",%progbits 9547 .align 1 9548 .syntax unified 9549 .code 16 9550 .thumb_func 9551 .fpu softvfp 9553 I2C_Master_ISR_IT: 9554 .LFB84: 3273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U; 9555 .loc 1 3273 0 9556 .cfi_startproc ARM GAS /tmp/ccpuPECZ.s page 277 9557 @ args = 0, pretend = 0, frame = 0 9558 @ frame_needed = 0, uses_anonymous_args = 0 9559 .LVL867: 9560 0000 F0B5 push {r4, r5, r6, r7, lr} 9561 .LCFI67: 9562 .cfi_def_cfa_offset 20 9563 .cfi_offset 4, -20 9564 .cfi_offset 5, -16 9565 .cfi_offset 6, -12 9566 .cfi_offset 7, -8 9567 .cfi_offset 14, -4 9568 0002 C646 mov lr, r8 9569 0004 00B5 push {lr} 9570 .LCFI68: 9571 .cfi_def_cfa_offset 24 9572 .cfi_offset 8, -24 9573 0006 0400 movs r4, r0 9574 0008 0D00 movs r5, r1 9575 000a 1600 movs r6, r2 9576 .LVL868: 3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9577 .loc 1 3277 0 9578 000c 4023 movs r3, #64 9579 000e C35C ldrb r3, [r0, r3] 9580 0010 012B cmp r3, #1 9581 0012 00D1 bne .LCB10164 9582 0014 C1E0 b .L671 @long jump 9583 .LCB10164: 3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9584 .loc 1 3277 0 is_stmt 0 discriminator 2 9585 0016 4023 movs r3, #64 9586 0018 0122 movs r2, #1 9587 .LVL869: 9588 001a C254 strb r2, [r0, r3] 3279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9589 .loc 1 3279 0 is_stmt 1 discriminator 2 9590 001c CB06 lsls r3, r1, #27 9591 001e 17D5 bpl .L658 3279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9592 .loc 1 3279 0 is_stmt 0 discriminator 1 9593 0020 F306 lsls r3, r6, #27 9594 0022 15D5 bpl .L658 3282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9595 .loc 1 3282 0 is_stmt 1 9596 0024 0368 ldr r3, [r0] 9597 0026 0F32 adds r2, r2, #15 9598 0028 DA61 str r2, [r3, #28] 3287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9599 .loc 1 3287 0 9600 002a 436C ldr r3, [r0, #68] 9601 002c 0C3A subs r2, r2, #12 9602 002e 1343 orrs r3, r2 9603 0030 4364 str r3, [r0, #68] 9604 .LVL870: 9605 .LBB312: 9606 .LBB313: 4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { ARM GAS /tmp/ccpuPECZ.s page 278 9607 .loc 1 4301 0 9608 0032 0368 ldr r3, [r0] 9609 0034 9A69 ldr r2, [r3, #24] 9610 0036 9207 lsls r2, r2, #30 9611 0038 01D5 bpl .L659 4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9612 .loc 1 4303 0 9613 003a 0022 movs r2, #0 9614 003c 9A62 str r2, [r3, #40] 9615 .L659: 4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9616 .loc 1 4307 0 9617 003e 2368 ldr r3, [r4] 9618 0040 9A69 ldr r2, [r3, #24] 9619 0042 D207 lsls r2, r2, #31 9620 0044 15D4 bmi .L660 4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9621 .loc 1 4309 0 9622 0046 9A69 ldr r2, [r3, #24] 9623 0048 0121 movs r1, #1 9624 .LVL871: 9625 004a 0A43 orrs r2, r1 9626 004c 9A61 str r2, [r3, #24] 9627 004e 10E0 b .L660 9628 .LVL872: 9629 .L658: 9630 .LBE313: 9631 .LBE312: 3292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9632 .loc 1 3292 0 9633 0050 6B07 lsls r3, r5, #29 9634 0052 1AD5 bpl .L661 3292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9635 .loc 1 3292 0 is_stmt 0 discriminator 1 9636 0054 7307 lsls r3, r6, #29 9637 0056 18D5 bpl .L661 3295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 9638 .loc 1 3295 0 is_stmt 1 9639 0058 2368 ldr r3, [r4] 9640 005a 5A6A ldr r2, [r3, #36] 9641 005c 636A ldr r3, [r4, #36] 9642 005e 591C adds r1, r3, #1 9643 .LVL873: 9644 0060 6162 str r1, [r4, #36] 9645 0062 1A70 strb r2, [r3] 3296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 9646 .loc 1 3296 0 9647 0064 238D ldrh r3, [r4, #40] 9648 0066 013B subs r3, r3, #1 9649 0068 2385 strh r3, [r4, #40] 3297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9650 .loc 1 3297 0 9651 006a 638D ldrh r3, [r4, #42] 9652 006c 013B subs r3, r3, #1 9653 006e 9BB2 uxth r3, r3 9654 0070 6385 strh r3, [r4, #42] 9655 .LVL874: ARM GAS /tmp/ccpuPECZ.s page 279 9656 .L660: 3373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9657 .loc 1 3373 0 9658 0072 AB06 lsls r3, r5, #26 9659 0074 02D5 bpl .L670 3373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9660 .loc 1 3373 0 is_stmt 0 discriminator 1 9661 0076 B306 lsls r3, r6, #26 9662 0078 00D5 bpl .LCB10251 9663 007a 89E0 b .L672 @long jump 9664 .LCB10251: 9665 .L670: 3380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9666 .loc 1 3380 0 is_stmt 1 9667 007c 4023 movs r3, #64 9668 007e 0022 movs r2, #0 9669 0080 E254 strb r2, [r4, r3] 3382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9670 .loc 1 3382 0 9671 0082 0020 movs r0, #0 9672 .L657: 3383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9673 .loc 1 3383 0 9674 @ sp needed 9675 .LVL875: 9676 .LVL876: 9677 .LVL877: 9678 0084 04BC pop {r2} 9679 0086 9046 mov r8, r2 9680 0088 F0BD pop {r4, r5, r6, r7, pc} 9681 .LVL878: 9682 .L661: 3299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9683 .loc 1 3299 0 9684 008a AB07 lsls r3, r5, #30 9685 008c 0FD5 bpl .L662 3299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9686 .loc 1 3299 0 is_stmt 0 discriminator 1 9687 008e B307 lsls r3, r6, #30 9688 0090 0DD5 bpl .L662 3302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferSize--; 9689 .loc 1 3302 0 is_stmt 1 9690 0092 636A ldr r3, [r4, #36] 9691 0094 5A1C adds r2, r3, #1 9692 0096 6262 str r2, [r4, #36] 9693 0098 2268 ldr r2, [r4] 9694 009a 1B78 ldrb r3, [r3] 9695 009c 9362 str r3, [r2, #40] 3303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->XferCount--; 9696 .loc 1 3303 0 9697 009e 238D ldrh r3, [r4, #40] 9698 00a0 013B subs r3, r3, #1 9699 00a2 2385 strh r3, [r4, #40] 3304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9700 .loc 1 3304 0 9701 00a4 638D ldrh r3, [r4, #42] 9702 00a6 013B subs r3, r3, #1 ARM GAS /tmp/ccpuPECZ.s page 280 9703 00a8 9BB2 uxth r3, r3 9704 00aa 6385 strh r3, [r4, #42] 9705 00ac E1E7 b .L660 9706 .L662: 3306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9707 .loc 1 3306 0 9708 00ae 2B06 lsls r3, r5, #24 9709 00b0 4CD5 bpl .L663 3306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9710 .loc 1 3306 0 is_stmt 0 discriminator 1 9711 00b2 7306 lsls r3, r6, #25 9712 00b4 4AD5 bpl .L663 3308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9713 .loc 1 3308 0 is_stmt 1 9714 00b6 238D ldrh r3, [r4, #40] 9715 00b8 002B cmp r3, #0 9716 00ba 3AD1 bne .L664 3308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9717 .loc 1 3308 0 is_stmt 0 discriminator 1 9718 00bc 638D ldrh r3, [r4, #42] 9719 00be 9BB2 uxth r3, r3 9720 00c0 002B cmp r3, #0 9721 00c2 36D0 beq .L664 3310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9722 .loc 1 3310 0 is_stmt 1 9723 00c4 2068 ldr r0, [r4] 9724 .LVL879: 9725 00c6 4368 ldr r3, [r0, #4] 9726 00c8 9B05 lsls r3, r3, #22 9727 00ca 9F0D lsrs r7, r3, #22 9728 .LVL880: 3312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9729 .loc 1 3312 0 9730 00cc 618D ldrh r1, [r4, #42] 9731 .LVL881: 9732 00ce 89B2 uxth r1, r1 9733 00d0 FF29 cmp r1, #255 9734 00d2 0DD9 bls .L665 3314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 9735 .loc 1 3314 0 9736 00d4 FF23 movs r3, #255 9737 00d6 2385 strh r3, [r4, #40] 9738 .LVL882: 9739 .LBB314: 9740 .LBB315: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 9741 .loc 1 4713 0 9742 00d8 4368 ldr r3, [r0, #4] 9743 00da 3149 ldr r1, .L673 9744 00dc 1940 ands r1, r3 9745 00de FF23 movs r3, #255 9746 00e0 1B04 lsls r3, r3, #16 9747 00e2 1F43 orrs r7, r3 9748 .LVL883: 9749 00e4 8023 movs r3, #128 9750 00e6 5B04 lsls r3, r3, #17 9751 00e8 3B43 orrs r3, r7 ARM GAS /tmp/ccpuPECZ.s page 281 9752 00ea 0B43 orrs r3, r1 9753 00ec 4360 str r3, [r0, #4] 9754 00ee C0E7 b .L660 9755 .LVL884: 9756 .L665: 9757 .LBE315: 9758 .LBE314: 3319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 9759 .loc 1 3319 0 9760 00f0 638D ldrh r3, [r4, #42] 9761 00f2 9BB2 uxth r3, r3 9762 00f4 2385 strh r3, [r4, #40] 3320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9763 .loc 1 3320 0 9764 00f6 E16A ldr r1, [r4, #44] 9765 00f8 2A4A ldr r2, .L673+4 9766 00fa 9142 cmp r1, r2 9767 00fc 0CD0 beq .L666 3322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9768 .loc 1 3322 0 9769 00fe DBB2 uxtb r3, r3 9770 0100 9846 mov r8, r3 9771 0102 E16A ldr r1, [r4, #44] 9772 .LVL885: 9773 .LBB316: 9774 .LBB317: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 9775 .loc 1 4713 0 9776 0104 4268 ldr r2, [r0, #4] 9777 0106 264B ldr r3, .L673 9778 0108 1A40 ands r2, r3 9779 010a 4346 mov r3, r8 9780 010c 1B04 lsls r3, r3, #16 9781 010e 3B43 orrs r3, r7 9782 0110 0B43 orrs r3, r1 9783 0112 1343 orrs r3, r2 9784 0114 4360 str r3, [r0, #4] 9785 0116 ACE7 b .L660 9786 .LVL886: 9787 .L666: 9788 .LBE317: 9789 .LBE316: 3326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9790 .loc 1 3326 0 9791 0118 DAB2 uxtb r2, r3 9792 .LVL887: 9793 .LBB318: 9794 .LBB319: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 9795 .loc 1 4713 0 9796 011a 4368 ldr r3, [r0, #4] 9797 011c 2049 ldr r1, .L673 9798 011e 1940 ands r1, r3 9799 0120 1204 lsls r2, r2, #16 9800 .LVL888: 9801 0122 3B00 movs r3, r7 9802 0124 1343 orrs r3, r2 ARM GAS /tmp/ccpuPECZ.s page 282 9803 0126 8027 movs r7, #128 9804 .LVL889: 9805 0128 BF04 lsls r7, r7, #18 9806 012a 3B43 orrs r3, r7 9807 012c 0B43 orrs r3, r1 9808 012e 4360 str r3, [r0, #4] 9809 0130 9FE7 b .L660 9810 .LVL890: 9811 .L664: 9812 .LBE319: 9813 .LBE318: 3333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9814 .loc 1 3333 0 9815 0132 2368 ldr r3, [r4] 9816 0134 5B68 ldr r3, [r3, #4] 9817 0136 9B01 lsls r3, r3, #6 9818 0138 03D4 bmi .L667 3336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9819 .loc 1 3336 0 9820 013a 2000 movs r0, r4 9821 .LVL891: 9822 013c FFF7FEFF bl I2C_ITMasterSequentialCplt 9823 .LVL892: 9824 0140 97E7 b .L660 9825 .LVL893: 9826 .L667: 3342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9827 .loc 1 3342 0 9828 0142 4021 movs r1, #64 9829 .LVL894: 9830 0144 2000 movs r0, r4 9831 .LVL895: 9832 0146 FFF7FEFF bl I2C_ITError 9833 .LVL896: 9834 014a 92E7 b .L660 9835 .LVL897: 9836 .L663: 3346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9837 .loc 1 3346 0 9838 014c 6B06 lsls r3, r5, #25 9839 014e 00D4 bmi .LCB10478 9840 0150 8FE7 b .L660 @long jump 9841 .LCB10478: 3346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9842 .loc 1 3346 0 is_stmt 0 discriminator 1 9843 0152 7306 lsls r3, r6, #25 9844 0154 00D4 bmi .LCB10482 9845 0156 8CE7 b .L660 @long jump 9846 .LCB10482: 3348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9847 .loc 1 3348 0 is_stmt 1 9848 0158 638D ldrh r3, [r4, #42] 9849 015a 9BB2 uxth r3, r3 9850 015c 002B cmp r3, #0 9851 015e 12D1 bne .L668 3350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9852 .loc 1 3350 0 ARM GAS /tmp/ccpuPECZ.s page 283 9853 0160 2368 ldr r3, [r4] 9854 0162 5A68 ldr r2, [r3, #4] 9855 0164 9201 lsls r2, r2, #6 9856 0166 00D5 bpl .LCB10492 9857 0168 83E7 b .L660 @long jump 9858 .LCB10492: 3353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9859 .loc 1 3353 0 9860 016a E16A ldr r1, [r4, #44] 9861 .LVL898: 9862 016c 0D4A ldr r2, .L673+4 9863 016e 9142 cmp r1, r2 9864 0170 05D1 bne .L669 3356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9865 .loc 1 3356 0 9866 0172 5968 ldr r1, [r3, #4] 9867 0174 8022 movs r2, #128 9868 0176 D201 lsls r2, r2, #7 9869 0178 0A43 orrs r2, r1 9870 017a 5A60 str r2, [r3, #4] 9871 017c 79E7 b .L660 9872 .L669: 3361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9873 .loc 1 3361 0 9874 017e 2000 movs r0, r4 9875 .LVL899: 9876 0180 FFF7FEFF bl I2C_ITMasterSequentialCplt 9877 .LVL900: 9878 0184 75E7 b .L660 9879 .LVL901: 9880 .L668: 3369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9881 .loc 1 3369 0 9882 0186 4021 movs r1, #64 9883 .LVL902: 9884 0188 2000 movs r0, r4 9885 .LVL903: 9886 018a FFF7FEFF bl I2C_ITError 9887 .LVL904: 9888 018e 70E7 b .L660 9889 .LVL905: 9890 .L672: 3376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9891 .loc 1 3376 0 9892 0190 2900 movs r1, r5 9893 0192 2000 movs r0, r4 9894 0194 FFF7FEFF bl I2C_ITMasterCplt 9895 .LVL906: 9896 0198 70E7 b .L670 9897 .LVL907: 9898 .L671: 3277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9899 .loc 1 3277 0 9900 019a 0220 movs r0, #2 9901 .LVL908: 9902 019c 72E7 b .L657 9903 .L674: ARM GAS /tmp/ccpuPECZ.s page 284 9904 019e C046 .align 2 9905 .L673: 9906 01a0 009C00FC .word -67068928 9907 01a4 0000FFFF .word -65536 9908 .cfi_endproc 9909 .LFE84: 9911 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 9912 .align 1 9913 .syntax unified 9914 .code 16 9915 .thumb_func 9916 .fpu softvfp 9918 I2C_Master_ISR_DMA: 9919 .LFB86: 3507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint16_t devaddress = 0U; 9920 .loc 1 3507 0 9921 .cfi_startproc 9922 @ args = 0, pretend = 0, frame = 0 9923 @ frame_needed = 0, uses_anonymous_args = 0 9924 .LVL909: 9925 0000 70B5 push {r4, r5, r6, lr} 9926 .LCFI69: 9927 .cfi_def_cfa_offset 16 9928 .cfi_offset 4, -16 9929 .cfi_offset 5, -12 9930 .cfi_offset 6, -8 9931 .cfi_offset 14, -4 9932 0002 0400 movs r4, r0 9933 .LVL910: 3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9934 .loc 1 3512 0 9935 0004 4023 movs r3, #64 9936 0006 C35C ldrb r3, [r0, r3] 9937 0008 012B cmp r3, #1 9938 000a 00D1 bne .LCB10573 9939 000c 7DE0 b .L686 @long jump 9940 .LCB10573: 3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9941 .loc 1 3512 0 is_stmt 0 discriminator 2 9942 000e 4023 movs r3, #64 9943 0010 0120 movs r0, #1 9944 .LVL911: 9945 0012 E054 strb r0, [r4, r3] 3514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9946 .loc 1 3514 0 is_stmt 1 discriminator 2 9947 0014 CB06 lsls r3, r1, #27 9948 0016 27D5 bpl .L677 3514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9949 .loc 1 3514 0 is_stmt 0 discriminator 1 9950 0018 D306 lsls r3, r2, #27 9951 001a 25D5 bpl .L677 3517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9952 .loc 1 3517 0 is_stmt 1 9953 001c 2368 ldr r3, [r4] 9954 001e 1022 movs r2, #16 9955 .LVL912: 9956 0020 DA61 str r2, [r3, #28] ARM GAS /tmp/ccpuPECZ.s page 285 3520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9957 .loc 1 3520 0 9958 0022 636C ldr r3, [r4, #68] 9959 0024 0C3A subs r2, r2, #12 9960 0026 1343 orrs r3, r2 9961 0028 6364 str r3, [r4, #68] 9962 .LVL913: 9963 .LBB320: 9964 .LBB321: 4728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA)) 9965 .loc 1 4728 0 9966 002a 636B ldr r3, [r4, #52] 9967 002c 384A ldr r2, .L692 9968 002e 9342 cmp r3, r2 9969 0030 18D0 beq .L687 9970 0032 384A ldr r2, .L692+4 9971 0034 9342 cmp r3, r2 9972 0036 13D0 beq .L689 4778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9973 .loc 1 4778 0 9974 0038 F421 movs r1, #244 9975 .LVL914: 9976 .L678: 4785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 9977 .loc 1 4785 0 9978 003a 2268 ldr r2, [r4] 9979 003c 1368 ldr r3, [r2] 9980 003e 0B43 orrs r3, r1 9981 0040 1360 str r3, [r2] 9982 .LVL915: 9983 .LBE321: 9984 .LBE320: 9985 .LBB323: 9986 .LBB324: 4301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9987 .loc 1 4301 0 9988 0042 2368 ldr r3, [r4] 9989 0044 9A69 ldr r2, [r3, #24] 9990 0046 9207 lsls r2, r2, #30 9991 0048 01D5 bpl .L679 4303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 9992 .loc 1 4303 0 9993 004a 0022 movs r2, #0 9994 004c 9A62 str r2, [r3, #40] 9995 .L679: 4307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 9996 .loc 1 4307 0 9997 004e 2368 ldr r3, [r4] 9998 0050 9A69 ldr r2, [r3, #24] 9999 0052 D207 lsls r2, r2, #31 10000 0054 50D4 bmi .L680 4309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10001 .loc 1 4309 0 10002 0056 9A69 ldr r2, [r3, #24] 10003 0058 0121 movs r1, #1 10004 005a 0A43 orrs r2, r1 10005 005c 9A61 str r2, [r3, #24] ARM GAS /tmp/ccpuPECZ.s page 286 10006 005e 4BE0 b .L680 10007 .LVL916: 10008 .L689: 10009 .LBE324: 10010 .LBE323: 10011 .LBB325: 10012 .LBB322: 4752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10013 .loc 1 4752 0 10014 0060 6021 movs r1, #96 10015 .LVL917: 10016 0062 EAE7 b .L678 10017 .LVL918: 10018 .L687: 10019 0064 6021 movs r1, #96 10020 .LVL919: 10021 0066 E8E7 b .L678 10022 .LVL920: 10023 .L677: 10024 .LBE322: 10025 .LBE325: 3530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10026 .loc 1 3530 0 10027 0068 0B06 lsls r3, r1, #24 10028 006a 41D5 bpl .L681 3530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10029 .loc 1 3530 0 is_stmt 0 discriminator 1 10030 006c 5306 lsls r3, r2, #25 10031 006e 3FD5 bpl .L681 3533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10032 .loc 1 3533 0 is_stmt 1 10033 0070 2268 ldr r2, [r4] 10034 .LVL921: 10035 0072 1368 ldr r3, [r2] 10036 0074 4021 movs r1, #64 10037 .LVL922: 10038 0076 8B43 bics r3, r1 10039 0078 1360 str r3, [r2] 3535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10040 .loc 1 3535 0 10041 007a 638D ldrh r3, [r4, #42] 10042 007c 9BB2 uxth r3, r3 10043 007e 002B cmp r3, #0 10044 0080 31D0 beq .L682 3538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10045 .loc 1 3538 0 10046 0082 2668 ldr r6, [r4] 10047 0084 7268 ldr r2, [r6, #4] 10048 0086 9205 lsls r2, r2, #22 10049 0088 950D lsrs r5, r2, #22 10050 .LVL923: 3541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10051 .loc 1 3541 0 10052 008a 638D ldrh r3, [r4, #42] 10053 008c 9BB2 uxth r3, r3 10054 008e FF2B cmp r3, #255 10055 0090 1DD9 bls .L683 ARM GAS /tmp/ccpuPECZ.s page 287 3543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 10056 .loc 1 3543 0 10057 0092 FF23 movs r3, #255 10058 0094 2385 strh r3, [r4, #40] 10059 .LVL924: 3544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10060 .loc 1 3544 0 10061 0096 8020 movs r0, #128 10062 0098 4004 lsls r0, r0, #17 10063 .LVL925: 10064 .L684: 3553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10065 .loc 1 3553 0 10066 009a 228D ldrh r2, [r4, #40] 10067 009c D2B2 uxtb r2, r2 10068 .LVL926: 10069 .LBB326: 10070 .LBB327: 4713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | (((uint32_t)Size << I2C_CR2_NBYTES_ 10071 .loc 1 4713 0 10072 009e 7368 ldr r3, [r6, #4] 10073 00a0 1D49 ldr r1, .L692+8 10074 00a2 0B40 ands r3, r1 10075 00a4 1204 lsls r2, r2, #16 10076 .LVL927: 10077 00a6 2A43 orrs r2, r5 10078 00a8 0243 orrs r2, r0 10079 00aa 1343 orrs r3, r2 10080 00ac 7360 str r3, [r6, #4] 10081 .LVL928: 10082 .LBE327: 10083 .LBE326: 3556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10084 .loc 1 3556 0 10085 00ae 638D ldrh r3, [r4, #42] 10086 00b0 228D ldrh r2, [r4, #40] 10087 00b2 9B1A subs r3, r3, r2 10088 00b4 9BB2 uxth r3, r3 10089 00b6 6385 strh r3, [r4, #42] 3559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10090 .loc 1 3559 0 10091 00b8 4123 movs r3, #65 10092 00ba E35C ldrb r3, [r4, r3] 10093 00bc 222B cmp r3, #34 10094 00be 0BD0 beq .L690 3565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10095 .loc 1 3565 0 10096 00c0 2268 ldr r2, [r4] 10097 00c2 1168 ldr r1, [r2] 10098 00c4 8023 movs r3, #128 10099 00c6 DB01 lsls r3, r3, #7 10100 00c8 0B43 orrs r3, r1 10101 00ca 1360 str r3, [r2] 10102 00cc 14E0 b .L680 10103 .LVL929: 10104 .L683: 3548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; ARM GAS /tmp/ccpuPECZ.s page 288 10105 .loc 1 3548 0 10106 00ce 638D ldrh r3, [r4, #42] 10107 00d0 2385 strh r3, [r4, #40] 10108 .LVL930: 3549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10109 .loc 1 3549 0 10110 00d2 8020 movs r0, #128 10111 00d4 8004 lsls r0, r0, #18 10112 00d6 E0E7 b .L684 10113 .LVL931: 10114 .L690: 3561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10115 .loc 1 3561 0 10116 00d8 2268 ldr r2, [r4] 10117 00da 1168 ldr r1, [r2] 10118 00dc 8023 movs r3, #128 10119 00de 1B02 lsls r3, r3, #8 10120 00e0 0B43 orrs r3, r1 10121 00e2 1360 str r3, [r2] 10122 00e4 08E0 b .L680 10123 .LVL932: 10124 .L682: 3572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10125 .loc 1 3572 0 10126 00e6 4021 movs r1, #64 10127 00e8 2000 movs r0, r4 10128 00ea FFF7FEFF bl I2C_ITError 10129 .LVL933: 10130 00ee 03E0 b .L680 10131 .LVL934: 10132 .L681: 3575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10133 .loc 1 3575 0 10134 00f0 8B06 lsls r3, r1, #26 10135 00f2 01D5 bpl .L680 3575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10136 .loc 1 3575 0 is_stmt 0 discriminator 1 10137 00f4 9306 lsls r3, r2, #26 10138 00f6 04D4 bmi .L691 10139 .LVL935: 10140 .L680: 3582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10141 .loc 1 3582 0 is_stmt 1 10142 00f8 4023 movs r3, #64 10143 00fa 0022 movs r2, #0 10144 00fc E254 strb r2, [r4, r3] 3584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10145 .loc 1 3584 0 10146 00fe 0020 movs r0, #0 10147 .L676: 3585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10148 .loc 1 3585 0 10149 @ sp needed 10150 .LVL936: 10151 0100 70BD pop {r4, r5, r6, pc} 10152 .LVL937: 10153 .L691: ARM GAS /tmp/ccpuPECZ.s page 289 3578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10154 .loc 1 3578 0 10155 0102 2000 movs r0, r4 10156 0104 FFF7FEFF bl I2C_ITMasterCplt 10157 .LVL938: 10158 0108 F6E7 b .L680 10159 .LVL939: 10160 .L686: 3512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10161 .loc 1 3512 0 10162 010a 0220 movs r0, #2 10163 .LVL940: 10164 010c F8E7 b .L676 10165 .L693: 10166 010e C046 .align 2 10167 .L692: 10168 0110 00000000 .word I2C_Master_ISR_DMA 10169 0114 00000000 .word I2C_Slave_ISR_DMA 10170 0118 009C00FC .word -67068928 10171 .cfi_endproc 10172 .LFE86: 10174 .section .text.I2C_DMAError,"ax",%progbits 10175 .align 1 10176 .syntax unified 10177 .code 16 10178 .thumb_func 10179 .fpu softvfp 10181 I2C_DMAError: 10182 .LFB102: 4433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 10183 .loc 1 4433 0 10184 .cfi_startproc 10185 @ args = 0, pretend = 0, frame = 0 10186 @ frame_needed = 0, uses_anonymous_args = 0 10187 .LVL941: 10188 0000 10B5 push {r4, lr} 10189 .LCFI70: 10190 .cfi_def_cfa_offset 8 10191 .cfi_offset 4, -8 10192 .cfi_offset 14, -4 4434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10193 .loc 1 4434 0 10194 0002 806A ldr r0, [r0, #40] 10195 .LVL942: 4437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10196 .loc 1 4437 0 10197 0004 0268 ldr r2, [r0] 10198 0006 5168 ldr r1, [r2, #4] 10199 0008 8023 movs r3, #128 10200 000a 1B02 lsls r3, r3, #8 10201 000c 0B43 orrs r3, r1 10202 000e 5360 str r3, [r2, #4] 4440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10203 .loc 1 4440 0 10204 0010 1021 movs r1, #16 10205 0012 FFF7FEFF bl I2C_ITError 10206 .LVL943: ARM GAS /tmp/ccpuPECZ.s page 290 4441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10207 .loc 1 4441 0 10208 @ sp needed 10209 0016 10BD pop {r4, pc} 10210 .cfi_endproc 10211 .LFE102: 10213 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 10214 .align 1 10215 .global HAL_I2C_ER_IRQHandler 10216 .syntax unified 10217 .code 16 10218 .thumb_func 10219 .fpu softvfp 10221 HAL_I2C_ER_IRQHandler: 10222 .LFB70: 2998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 10223 .loc 1 2998 0 10224 .cfi_startproc 10225 @ args = 0, pretend = 0, frame = 0 10226 @ frame_needed = 0, uses_anonymous_args = 0 10227 .LVL944: 10228 0000 70B5 push {r4, r5, r6, lr} 10229 .LCFI71: 10230 .cfi_def_cfa_offset 16 10231 .cfi_offset 4, -16 10232 .cfi_offset 5, -12 10233 .cfi_offset 6, -8 10234 .cfi_offset 14, -4 2999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10235 .loc 1 2999 0 10236 0002 0268 ldr r2, [r0] 10237 0004 9369 ldr r3, [r2, #24] 10238 .LVL945: 3000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10239 .loc 1 3000 0 10240 0006 1168 ldr r1, [r2] 10241 .LVL946: 3003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10242 .loc 1 3003 0 10243 0008 DC05 lsls r4, r3, #23 10244 000a 08D5 bpl .L696 3003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10245 .loc 1 3003 0 is_stmt 0 discriminator 1 10246 000c 0C06 lsls r4, r1, #24 10247 000e 06D5 bpl .L696 3005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10248 .loc 1 3005 0 is_stmt 1 10249 0010 446C ldr r4, [r0, #68] 10250 0012 0125 movs r5, #1 10251 0014 2C43 orrs r4, r5 10252 0016 4464 str r4, [r0, #68] 3008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10253 .loc 1 3008 0 10254 0018 8024 movs r4, #128 10255 001a 6400 lsls r4, r4, #1 10256 001c D461 str r4, [r2, #28] 10257 .L696: ARM GAS /tmp/ccpuPECZ.s page 291 3012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10258 .loc 1 3012 0 10259 001e 5A05 lsls r2, r3, #21 10260 0020 09D5 bpl .L697 3012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10261 .loc 1 3012 0 is_stmt 0 discriminator 1 10262 0022 0A06 lsls r2, r1, #24 10263 0024 07D5 bpl .L697 3014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10264 .loc 1 3014 0 is_stmt 1 10265 0026 426C ldr r2, [r0, #68] 10266 0028 0824 movs r4, #8 10267 002a 2243 orrs r2, r4 10268 002c 4264 str r2, [r0, #68] 3017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10269 .loc 1 3017 0 10270 002e 0268 ldr r2, [r0] 10271 0030 8024 movs r4, #128 10272 0032 E400 lsls r4, r4, #3 10273 0034 D461 str r4, [r2, #28] 10274 .L697: 3021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10275 .loc 1 3021 0 10276 0036 9B05 lsls r3, r3, #22 10277 0038 09D5 bpl .L698 10278 .LVL947: 3021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10279 .loc 1 3021 0 is_stmt 0 discriminator 1 10280 003a 0B06 lsls r3, r1, #24 10281 003c 07D5 bpl .L698 3023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10282 .loc 1 3023 0 is_stmt 1 10283 003e 436C ldr r3, [r0, #68] 10284 0040 0222 movs r2, #2 10285 0042 1343 orrs r3, r2 10286 0044 4364 str r3, [r0, #68] 3026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10287 .loc 1 3026 0 10288 0046 0368 ldr r3, [r0] 10289 0048 FF32 adds r2, r2, #255 10290 004a FF32 adds r2, r2, #255 10291 004c DA61 str r2, [r3, #28] 10292 .L698: 3030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10293 .loc 1 3030 0 10294 004e 436C ldr r3, [r0, #68] 10295 0050 0B22 movs r2, #11 10296 0052 1A42 tst r2, r3 10297 0054 00D1 bne .L700 10298 .LVL948: 10299 .L695: 3034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10300 .loc 1 3034 0 10301 @ sp needed 10302 0056 70BD pop {r4, r5, r6, pc} 10303 .LVL949: 10304 .L700: ARM GAS /tmp/ccpuPECZ.s page 292 3032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10305 .loc 1 3032 0 10306 0058 416C ldr r1, [r0, #68] 10307 .LVL950: 10308 005a FFF7FEFF bl I2C_ITError 10309 .LVL951: 3034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10310 .loc 1 3034 0 10311 005e FAE7 b .L695 10312 .cfi_endproc 10313 .LFE70: 10315 .section .text.I2C_DMAAbort,"ax",%progbits 10316 .align 1 10317 .syntax unified 10318 .code 16 10319 .thumb_func 10320 .fpu softvfp 10322 I2C_DMAAbort: 10323 .LFB103: 4450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 10324 .loc 1 4450 0 10325 .cfi_startproc 10326 @ args = 0, pretend = 0, frame = 0 10327 @ frame_needed = 0, uses_anonymous_args = 0 10328 .LVL952: 10329 0000 10B5 push {r4, lr} 10330 .LCFI72: 10331 .cfi_def_cfa_offset 8 10332 .cfi_offset 4, -8 10333 .cfi_offset 14, -4 4451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10334 .loc 1 4451 0 10335 0002 806A ldr r0, [r0, #40] 10336 .LVL953: 4454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10337 .loc 1 4454 0 10338 0004 0268 ldr r2, [r0] 10339 0006 5168 ldr r1, [r2, #4] 10340 0008 8023 movs r3, #128 10341 000a 1B02 lsls r3, r3, #8 10342 000c 0B43 orrs r3, r1 10343 000e 5360 str r3, [r2, #4] 4457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 10344 .loc 1 4457 0 10345 0010 826B ldr r2, [r0, #56] 10346 0012 0023 movs r3, #0 10347 0014 9363 str r3, [r2, #56] 4458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10348 .loc 1 4458 0 10349 0016 C26B ldr r2, [r0, #60] 10350 0018 9363 str r3, [r2, #56] 4461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** { 10351 .loc 1 4461 0 10352 001a 4133 adds r3, r3, #65 10353 001c C35C ldrb r3, [r0, r3] 10354 001e 602B cmp r3, #96 10355 0020 02D0 beq .L704 ARM GAS /tmp/ccpuPECZ.s page 293 4471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10356 .loc 1 4471 0 10357 0022 FFF7FEFF bl HAL_I2C_ErrorCallback 10358 .LVL954: 10359 .L701: 4473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10360 .loc 1 4473 0 10361 @ sp needed 10362 0026 10BD pop {r4, pc} 10363 .LVL955: 10364 .L704: 4463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10365 .loc 1 4463 0 10366 0028 1F3B subs r3, r3, #31 10367 002a 2022 movs r2, #32 10368 002c C254 strb r2, [r0, r3] 4466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10369 .loc 1 4466 0 10370 002e FFF7FEFF bl HAL_I2C_AbortCpltCallback 10371 .LVL956: 10372 0032 F8E7 b .L701 10373 .cfi_endproc 10374 .LFE103: 10376 .section .text.HAL_I2C_GetState,"ax",%progbits 10377 .align 1 10378 .global HAL_I2C_GetState 10379 .syntax unified 10380 .code 16 10381 .thumb_func 10382 .fpu softvfp 10384 HAL_I2C_GetState: 10385 .LFB81: 3225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** /* Return I2C handle state */ 10386 .loc 1 3225 0 10387 .cfi_startproc 10388 @ args = 0, pretend = 0, frame = 0 10389 @ frame_needed = 0, uses_anonymous_args = 0 10390 @ link register save eliminated. 10391 .LVL957: 3227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10392 .loc 1 3227 0 10393 0000 4123 movs r3, #65 10394 0002 C05C ldrb r0, [r0, r3] 10395 .LVL958: 10396 0004 C0B2 uxtb r0, r0 3228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10397 .loc 1 3228 0 10398 @ sp needed 10399 0006 7047 bx lr 10400 .cfi_endproc 10401 .LFE81: 10403 .section .text.HAL_I2C_GetMode,"ax",%progbits 10404 .align 1 10405 .global HAL_I2C_GetMode 10406 .syntax unified 10407 .code 16 10408 .thumb_func ARM GAS /tmp/ccpuPECZ.s page 294 10409 .fpu softvfp 10411 HAL_I2C_GetMode: 10412 .LFB82: 3237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->Mode; 10413 .loc 1 3237 0 10414 .cfi_startproc 10415 @ args = 0, pretend = 0, frame = 0 10416 @ frame_needed = 0, uses_anonymous_args = 0 10417 @ link register save eliminated. 10418 .LVL959: 3238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10419 .loc 1 3238 0 10420 0000 4223 movs r3, #66 10421 0002 C05C ldrb r0, [r0, r3] 10422 .LVL960: 10423 0004 C0B2 uxtb r0, r0 3239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10424 .loc 1 3239 0 10425 @ sp needed 10426 0006 7047 bx lr 10427 .cfi_endproc 10428 .LFE82: 10430 .section .text.HAL_I2C_GetError,"ax",%progbits 10431 .align 1 10432 .global HAL_I2C_GetError 10433 .syntax unified 10434 .code 16 10435 .thumb_func 10436 .fpu softvfp 10438 HAL_I2C_GetError: 10439 .LFB83: 3248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** return hi2c->ErrorCode; 10440 .loc 1 3248 0 10441 .cfi_startproc 10442 @ args = 0, pretend = 0, frame = 0 10443 @ frame_needed = 0, uses_anonymous_args = 0 10444 @ link register save eliminated. 10445 .LVL961: 3249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** } 10446 .loc 1 3249 0 10447 0000 406C ldr r0, [r0, #68] 10448 .LVL962: 3250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_i2c.c **** 10449 .loc 1 3250 0 10450 @ sp needed 10451 0002 7047 bx lr 10452 .cfi_endproc 10453 .LFE83: 10455 .section .rodata.HAL_I2C_Mem_Read.str1.4,"aMS",%progbits,1 10456 .align 2 10457 .LC38: 10458 0000 42616420 .ascii "Bad pData or Size=0\015\012\000" 10458 70446174 10458 61206F72 10458 2053697A 10458 653D300D 10459 0016 0000 .space 2 ARM GAS /tmp/ccpuPECZ.s page 295 10460 .LC40: 10461 0018 54696D65 .ascii "Timeout\015\012\000" 10461 6F75740D 10461 0A00 10462 0022 0000 .space 2 10463 .LC42: 10464 0024 4572726F .ascii "Error in memory read - %d\015\012\000" 10464 7220696E 10464 206D656D 10464 6F727920 10464 72656164 10465 .LC44: 10466 0040 77616974 .ascii "waiting for flag timeout1\015\012\000" 10466 696E6720 10466 666F7220 10466 666C6167 10466 2074696D 10467 .LC46: 10468 005c 77616974 .ascii "waiting for flag timeout2\015\012\000" 10468 696E6720 10468 666F7220 10468 666C6167 10468 2074696D 10469 .LC48: 10470 0078 77616974 .ascii "waiting for stop error %d\015\012\000" 10470 696E6720 10470 666F7220 10470 73746F70 10470 20657272 10471 .LC50: 10472 0094 62757379 .ascii "busy!!\015\012\000" 10472 21210D0A 10472 00 10473 .section .rodata.I2C_RequestMemoryRead.str1.4,"aMS",%progbits,1 10474 .align 2 10475 .LC4: 10476 0000 4932435F .ascii "I2C_RequestMemoryRead error %d\015\012\000" 10476 52657175 10476 6573744D 10476 656D6F72 10476 79526561 10477 0021 000000 .space 3 10478 .LC6: 10479 0024 4932435F .ascii "I2C_RequestMemoryRead error2 %d\015\012\000" 10479 52657175 10479 6573744D 10479 656D6F72 10479 79526561 10480 0046 0000 .space 2 10481 .LC8: 10482 0048 4932435F .ascii "I2C_RequestMemoryRead TIMEOUT\015\012\000" 10482 52657175 10482 6573744D 10482 656D6F72 10482 79526561 10483 .section .rodata.I2C_WaitOnTXISFlagUntilTimeout.str1.4,"aMS",%progbits,1 10484 .align 2 ARM GAS /tmp/ccpuPECZ.s page 296 10485 .LC0: 10486 0000 4932435F .ascii "I2C_WaitOnTXISFlagUntilTimeout ->I2C_IsAcknowledgeF" 10486 57616974 10486 4F6E5458 10486 4953466C 10486 6167556E 10487 0033 61696C65 .ascii "ailed error\015\012\000" 10487 64206572 10487 726F720D 10487 0A00 10488 0041 000000 .space 3 10489 .LC2: 10490 0044 4932435F .ascii "I2C_WaitOnTXISFlagUntilTimeout timeout\015\012\000" 10490 57616974 10490 4F6E5458 10490 4953466C 10490 6167556E 10491 .text 10492 .Letext0: 10493 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h" 10494 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h" 10495 .file 4 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h" 10496 .file 5 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h" 10497 .file 6 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h" 10498 .file 7 "/usr/arm-none-eabi/include/sys/lock.h" 10499 .file 8 "/usr/arm-none-eabi/include/sys/_types.h" 10500 .file 9 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h" 10501 .file 10 "/usr/arm-none-eabi/include/sys/reent.h" 10502 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h" 10503 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_dma.h" 10504 .file 13 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_i2c.h" 10505 .file 14 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal.h" 10506 .file 15 "Inc/vcom.h" ARM GAS /tmp/ccpuPECZ.s page 297 DEFINED SYMBOLS *ABS*:0000000000000000 stm32l0xx_hal_i2c.c /tmp/ccpuPECZ.s:16 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t /tmp/ccpuPECZ.s:22 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt /tmp/ccpuPECZ.s:38 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t /tmp/ccpuPECZ.s:44 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt /tmp/ccpuPECZ.s:59 .text.I2C_Disable_IRQ:0000000000000000 $t /tmp/ccpuPECZ.s:65 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ /tmp/ccpuPECZ.s:186 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t /tmp/ccpuPECZ.s:192 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed /tmp/ccpuPECZ.s:321 .text.I2C_IsAcknowledgeFailed:000000000000008c $d /tmp/ccpuPECZ.s:326 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/ccpuPECZ.s:332 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout /tmp/ccpuPECZ.s:405 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t /tmp/ccpuPECZ.s:411 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccpuPECZ.s:490 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t /tmp/ccpuPECZ.s:496 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccpuPECZ.s:601 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000074 $d /tmp/ccpuPECZ.s:606 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t /tmp/ccpuPECZ.s:612 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccpuPECZ.s:700 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000060 $d /tmp/ccpuPECZ.s:706 .text.I2C_RequestMemoryWrite:0000000000000000 $t /tmp/ccpuPECZ.s:712 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite /tmp/ccpuPECZ.s:839 .text.I2C_RequestMemoryWrite:0000000000000090 $d /tmp/ccpuPECZ.s:845 .text.I2C_RequestMemoryRead:0000000000000000 $t /tmp/ccpuPECZ.s:851 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead /tmp/ccpuPECZ.s:994 .text.I2C_RequestMemoryRead:00000000000000a8 $d /tmp/ccpuPECZ.s:1003 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t /tmp/ccpuPECZ.s:1009 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt /tmp/ccpuPECZ.s:1142 .text.I2C_DMAMasterTransmitCplt:0000000000000084 $d /tmp/ccpuPECZ.s:9918 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA /tmp/ccpuPECZ.s:9229 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA /tmp/ccpuPECZ.s:1151 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t /tmp/ccpuPECZ.s:1157 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt /tmp/ccpuPECZ.s:1290 .text.I2C_DMAMasterReceiveCplt:0000000000000084 $d /tmp/ccpuPECZ.s:1299 .text.HAL_I2C_MspInit:0000000000000000 $t /tmp/ccpuPECZ.s:1306 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit /tmp/ccpuPECZ.s:1321 .text.HAL_I2C_Init:0000000000000000 $t /tmp/ccpuPECZ.s:1328 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init /tmp/ccpuPECZ.s:1476 .text.HAL_I2C_Init:00000000000000c0 $d /tmp/ccpuPECZ.s:1483 .text.HAL_I2C_MspDeInit:0000000000000000 $t /tmp/ccpuPECZ.s:1490 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit /tmp/ccpuPECZ.s:1505 .text.HAL_I2C_DeInit:0000000000000000 $t /tmp/ccpuPECZ.s:1512 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit /tmp/ccpuPECZ.s:1572 .text.HAL_I2C_Master_Transmit:0000000000000000 $t /tmp/ccpuPECZ.s:1579 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit /tmp/ccpuPECZ.s:1925 .text.HAL_I2C_Master_Transmit:00000000000001a8 $d /tmp/ccpuPECZ.s:1934 .text.HAL_I2C_Master_Receive:0000000000000000 $t /tmp/ccpuPECZ.s:1941 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive /tmp/ccpuPECZ.s:2287 .text.HAL_I2C_Master_Receive:00000000000001a8 $d /tmp/ccpuPECZ.s:2296 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t /tmp/ccpuPECZ.s:2303 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit /tmp/ccpuPECZ.s:2617 .text.HAL_I2C_Slave_Transmit:000000000000019c $d /tmp/ccpuPECZ.s:2622 .text.HAL_I2C_Slave_Receive:0000000000000000 $t /tmp/ccpuPECZ.s:2629 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive /tmp/ccpuPECZ.s:2928 .text.HAL_I2C_Slave_Receive:0000000000000188 $d /tmp/ccpuPECZ.s:2933 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t ARM GAS /tmp/ccpuPECZ.s page 298 /tmp/ccpuPECZ.s:2940 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT /tmp/ccpuPECZ.s:3113 .text.HAL_I2C_Master_Transmit_IT:00000000000000a8 $d /tmp/ccpuPECZ.s:9553 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT /tmp/ccpuPECZ.s:3123 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t /tmp/ccpuPECZ.s:3130 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT /tmp/ccpuPECZ.s:3303 .text.HAL_I2C_Master_Receive_IT:00000000000000a8 $d /tmp/ccpuPECZ.s:3313 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t /tmp/ccpuPECZ.s:3320 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT /tmp/ccpuPECZ.s:3417 .text.HAL_I2C_Slave_Transmit_IT:000000000000005c $d /tmp/ccpuPECZ.s:8805 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT /tmp/ccpuPECZ.s:3424 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t /tmp/ccpuPECZ.s:3431 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT /tmp/ccpuPECZ.s:3528 .text.HAL_I2C_Slave_Receive_IT:000000000000005c $d /tmp/ccpuPECZ.s:3535 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:3542 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA /tmp/ccpuPECZ.s:3830 .text.HAL_I2C_Master_Transmit_DMA:0000000000000138 $d /tmp/ccpuPECZ.s:10181 .text.I2C_DMAError:0000000000000000 I2C_DMAError /tmp/ccpuPECZ.s:3843 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:3850 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA /tmp/ccpuPECZ.s:4137 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d /tmp/ccpuPECZ.s:4150 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:4157 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccpuPECZ.s:4299 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000098 $d /tmp/ccpuPECZ.s:4308 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:4315 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA /tmp/ccpuPECZ.s:4460 .text.HAL_I2C_Slave_Receive_DMA:000000000000009c $d /tmp/ccpuPECZ.s:4469 .text.HAL_I2C_Mem_Write:0000000000000000 $t /tmp/ccpuPECZ.s:4476 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write /tmp/ccpuPECZ.s:4886 .text.HAL_I2C_Mem_Write:0000000000000200 $d /tmp/ccpuPECZ.s:4892 .text.HAL_I2C_Mem_Read:0000000000000000 $t /tmp/ccpuPECZ.s:4899 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read /tmp/ccpuPECZ.s:5320 .text.HAL_I2C_Mem_Read:0000000000000218 $d /tmp/ccpuPECZ.s:5336 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t /tmp/ccpuPECZ.s:5343 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT /tmp/ccpuPECZ.s:5602 .text.HAL_I2C_Mem_Write_IT:0000000000000118 $d /tmp/ccpuPECZ.s:5611 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t /tmp/ccpuPECZ.s:5618 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT /tmp/ccpuPECZ.s:5881 .text.HAL_I2C_Mem_Read_IT:0000000000000120 $d /tmp/ccpuPECZ.s:5891 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:5898 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA /tmp/ccpuPECZ.s:6183 .text.HAL_I2C_Mem_Write_DMA:0000000000000150 $d /tmp/ccpuPECZ.s:6193 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:6200 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA /tmp/ccpuPECZ.s:6487 .text.HAL_I2C_Mem_Read_DMA:0000000000000154 $d /tmp/ccpuPECZ.s:6498 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t /tmp/ccpuPECZ.s:6505 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady /tmp/ccpuPECZ.s:6781 .text.HAL_I2C_IsDeviceReady:0000000000000154 $d /tmp/ccpuPECZ.s:6786 .text.HAL_I2C_Master_Sequential_Transmit_IT:0000000000000000 $t /tmp/ccpuPECZ.s:6793 .text.HAL_I2C_Master_Sequential_Transmit_IT:0000000000000000 HAL_I2C_Master_Sequential_Transmit_IT /tmp/ccpuPECZ.s:6982 .text.HAL_I2C_Master_Sequential_Transmit_IT:00000000000000bc $d /tmp/ccpuPECZ.s:6991 .text.HAL_I2C_Master_Sequential_Receive_IT:0000000000000000 $t /tmp/ccpuPECZ.s:6998 .text.HAL_I2C_Master_Sequential_Receive_IT:0000000000000000 HAL_I2C_Master_Sequential_Receive_IT /tmp/ccpuPECZ.s:7187 .text.HAL_I2C_Master_Sequential_Receive_IT:00000000000000bc $d /tmp/ccpuPECZ.s:7196 .text.HAL_I2C_Slave_Sequential_Transmit_IT:0000000000000000 $t /tmp/ccpuPECZ.s:7203 .text.HAL_I2C_Slave_Sequential_Transmit_IT:0000000000000000 HAL_I2C_Slave_Sequential_Transmit_IT /tmp/ccpuPECZ.s:7376 .text.HAL_I2C_Slave_Sequential_Transmit_IT:00000000000000b4 $d /tmp/ccpuPECZ.s:7384 .text.HAL_I2C_Slave_Sequential_Receive_IT:0000000000000000 $t ARM GAS /tmp/ccpuPECZ.s page 299 /tmp/ccpuPECZ.s:7391 .text.HAL_I2C_Slave_Sequential_Receive_IT:0000000000000000 HAL_I2C_Slave_Sequential_Receive_IT /tmp/ccpuPECZ.s:7564 .text.HAL_I2C_Slave_Sequential_Receive_IT:00000000000000b4 $d /tmp/ccpuPECZ.s:7572 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t /tmp/ccpuPECZ.s:7579 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT /tmp/ccpuPECZ.s:7627 .text.HAL_I2C_EnableListen_IT:0000000000000024 $d /tmp/ccpuPECZ.s:7632 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t /tmp/ccpuPECZ.s:7639 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT /tmp/ccpuPECZ.s:7698 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t /tmp/ccpuPECZ.s:7705 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT /tmp/ccpuPECZ.s:7828 .text.HAL_I2C_Master_Abort_IT:0000000000000074 $d /tmp/ccpuPECZ.s:7836 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t /tmp/ccpuPECZ.s:7843 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler /tmp/ccpuPECZ.s:7877 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:7884 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback /tmp/ccpuPECZ.s:7899 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:7906 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback /tmp/ccpuPECZ.s:7921 .text.I2C_ITMasterSequentialCplt:0000000000000000 $t /tmp/ccpuPECZ.s:7927 .text.I2C_ITMasterSequentialCplt:0000000000000000 I2C_ITMasterSequentialCplt /tmp/ccpuPECZ.s:8005 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8012 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccpuPECZ.s:8027 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8034 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccpuPECZ.s:8049 .text.I2C_ITSlaveSequentialCplt:0000000000000000 $t /tmp/ccpuPECZ.s:8055 .text.I2C_ITSlaveSequentialCplt:0000000000000000 I2C_ITSlaveSequentialCplt /tmp/ccpuPECZ.s:8137 .text.HAL_I2C_AddrCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8144 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback /tmp/ccpuPECZ.s:8159 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8166 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback /tmp/ccpuPECZ.s:8181 .text.I2C_ITListenCplt:0000000000000000 $t /tmp/ccpuPECZ.s:8187 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt /tmp/ccpuPECZ.s:8269 .text.I2C_ITListenCplt:0000000000000060 $d /tmp/ccpuPECZ.s:8274 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8281 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback /tmp/ccpuPECZ.s:8296 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8303 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback /tmp/ccpuPECZ.s:8318 .text.HAL_I2C_ErrorCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8325 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback /tmp/ccpuPECZ.s:8340 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t /tmp/ccpuPECZ.s:8347 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback /tmp/ccpuPECZ.s:8362 .text.I2C_ITError:0000000000000000 $t /tmp/ccpuPECZ.s:8368 .text.I2C_ITError:0000000000000000 I2C_ITError /tmp/ccpuPECZ.s:8548 .text.I2C_ITError:00000000000000e4 $d /tmp/ccpuPECZ.s:10322 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort /tmp/ccpuPECZ.s:8557 .text.I2C_ITSlaveCplt:0000000000000000 $t /tmp/ccpuPECZ.s:8563 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt /tmp/ccpuPECZ.s:8793 .text.I2C_ITSlaveCplt:0000000000000124 $d /tmp/ccpuPECZ.s:8799 .text.I2C_Slave_ISR_IT:0000000000000000 $t /tmp/ccpuPECZ.s:9218 .text.I2C_Slave_ISR_IT:00000000000001fc $d /tmp/ccpuPECZ.s:9223 .text.I2C_Slave_ISR_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:9354 .text.I2C_ITMasterCplt:0000000000000000 $t /tmp/ccpuPECZ.s:9360 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt /tmp/ccpuPECZ.s:9541 .text.I2C_ITMasterCplt:00000000000000e0 $d /tmp/ccpuPECZ.s:9547 .text.I2C_Master_ISR_IT:0000000000000000 $t /tmp/ccpuPECZ.s:9906 .text.I2C_Master_ISR_IT:00000000000001a0 $d /tmp/ccpuPECZ.s:9912 .text.I2C_Master_ISR_DMA:0000000000000000 $t /tmp/ccpuPECZ.s:10168 .text.I2C_Master_ISR_DMA:0000000000000110 $d /tmp/ccpuPECZ.s:10175 .text.I2C_DMAError:0000000000000000 $t ARM GAS /tmp/ccpuPECZ.s page 300 /tmp/ccpuPECZ.s:10214 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t /tmp/ccpuPECZ.s:10221 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler /tmp/ccpuPECZ.s:10316 .text.I2C_DMAAbort:0000000000000000 $t /tmp/ccpuPECZ.s:10377 .text.HAL_I2C_GetState:0000000000000000 $t /tmp/ccpuPECZ.s:10384 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState /tmp/ccpuPECZ.s:10404 .text.HAL_I2C_GetMode:0000000000000000 $t /tmp/ccpuPECZ.s:10411 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode /tmp/ccpuPECZ.s:10431 .text.HAL_I2C_GetError:0000000000000000 $t /tmp/ccpuPECZ.s:10438 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError /tmp/ccpuPECZ.s:10456 .rodata.HAL_I2C_Mem_Read.str1.4:0000000000000000 $d /tmp/ccpuPECZ.s:10474 .rodata.I2C_RequestMemoryRead.str1.4:0000000000000000 $d /tmp/ccpuPECZ.s:10484 .rodata.I2C_WaitOnTXISFlagUntilTimeout.str1.4:0000000000000000 $d .debug_frame:0000000000000010 $d UNDEFINED SYMBOLS HAL_GetTick vcom_Send HAL_DMA_Start_IT HAL_DMA_Abort_IT